Browse Source

alll commit

master
xuhuajiao 2 weeks ago
parent
commit
11f3f139b6
  1. 14
      .editorconfig
  2. 10
      .env.development
  3. 11
      .env.production
  4. 5
      .eslintignore
  5. 197
      .eslintrc.js
  6. 24
      .gitignore
  7. 5
      .travis.yml
  8. 191
      LICENSE
  9. 11
      babel.config.js
  10. 24
      jest.config.js
  11. 156
      package.json
  12. 7
      plopfile.js
  13. 5
      postcss.config.js
  14. 44
      public/favicon.svg
  15. 17
      public/index.html
  16. 3514
      public/static/adapter.min.js
  17. 5
      public/static/config.js
  18. 305
      public/static/webrtcstreamer.js
  19. 30
      src/App.vue
  20. 43
      src/api/RFID/RFID.js
  21. 52
      src/api/asset/index.js
  22. 92
      src/api/assetDevice/index.js
  23. 24
      src/api/assetFonds/index.js
  24. 43
      src/api/assetWarehouse/index.js
  25. 17
      src/api/data.js
  26. 99
      src/api/deviceVI/index.js
  27. 10
      src/api/home/alarm/index.js
  28. 11
      src/api/home/cpu/index.js
  29. 10
      src/api/home/securityDoor/securityDoor.js
  30. 36
      src/api/login.js
  31. 176
      src/api/stockTask/index.js
  32. 111
      src/api/stockTaskLog/index.js
  33. 15
      src/api/system/code.js
  34. 87
      src/api/system/dept.js
  35. 69
      src/api/system/dict.js
  36. 60
      src/api/system/dictDetail.js
  37. 83
      src/api/system/fonds.js
  38. 58
      src/api/system/job.js
  39. 73
      src/api/system/logs.js
  40. 67
      src/api/system/menu.js
  41. 30
      src/api/system/new.js
  42. 20
      src/api/system/notify.js
  43. 13
      src/api/system/param.js
  44. 68
      src/api/system/role.js
  45. 39
      src/api/system/sql.js
  46. 109
      src/api/system/user.js
  47. 25
      src/api/tools/alipay.js
  48. 24
      src/api/tools/email.js
  49. 27
      src/api/tools/localStorage.js
  50. 40
      src/api/tools/qiniu.js
  51. BIN
      src/assets/401_images/401.gif
  52. BIN
      src/assets/404_images/404.png
  53. BIN
      src/assets/404_images/404_cloud.png
  54. BIN
      src/assets/fonts/锐字潮牌可变真言2.0.ttf
  55. 291
      src/assets/iconfonts/iconfont.css
  56. 1
      src/assets/iconfonts/iconfont.js
  57. 492
      src/assets/iconfonts/iconfont.json
  58. BIN
      src/assets/iconfonts/iconfont.ttf
  59. BIN
      src/assets/iconfonts/iconfont.woff
  60. BIN
      src/assets/iconfonts/iconfont.woff2
  61. 751
      src/assets/iconfonts/light/iconfont.css
  62. 1
      src/assets/iconfonts/light/iconfont.js
  63. 1297
      src/assets/iconfonts/light/iconfont.json
  64. BIN
      src/assets/iconfonts/light/iconfont.ttf
  65. BIN
      src/assets/iconfonts/light/iconfont.woff
  66. BIN
      src/assets/iconfonts/light/iconfont.woff2
  67. 1
      src/assets/icons/iconfont.js
  68. 9
      src/assets/icons/index.js
  69. 1
      src/assets/icons/svg/Steve-Jobs.svg
  70. 18
      src/assets/icons/svg/alerm.svg
  71. 1
      src/assets/icons/svg/alipay.svg
  72. 1
      src/assets/icons/svg/anq.svg
  73. 1
      src/assets/icons/svg/app.svg
  74. 1
      src/assets/icons/svg/backup.svg
  75. 22
      src/assets/icons/svg/bindbiaoqian.svg
  76. 1
      src/assets/icons/svg/chain.svg
  77. 1
      src/assets/icons/svg/chart.svg
  78. 17
      src/assets/icons/svg/chehui.svg
  79. 138
      src/assets/icons/svg/co2.svg
  80. 1
      src/assets/icons/svg/codeConsole.svg
  81. 1
      src/assets/icons/svg/danganjieyue.svg
  82. 1
      src/assets/icons/svg/danganleibie.svg
  83. 1
      src/assets/icons/svg/dashboard.svg
  84. 1
      src/assets/icons/svg/database.svg
  85. 1
      src/assets/icons/svg/date.svg
  86. 18
      src/assets/icons/svg/dengji-fanbai.svg
  87. 1
      src/assets/icons/svg/deploy.svg
  88. 1
      src/assets/icons/svg/dept.svg
  89. 1
      src/assets/icons/svg/dev.svg
  90. 1
      src/assets/icons/svg/develop.svg
  91. 1
      src/assets/icons/svg/dictionary.svg
  92. 1
      src/assets/icons/svg/doc.svg
  93. 1
      src/assets/icons/svg/download.svg
  94. 1
      src/assets/icons/svg/edit.svg
  95. 1
      src/assets/icons/svg/education.svg
  96. 1
      src/assets/icons/svg/email.svg
  97. 190
      src/assets/icons/svg/empty.svg
  98. 1
      src/assets/icons/svg/error.svg
  99. 17
      src/assets/icons/svg/exception.svg
  100. 1
      src/assets/icons/svg/exit-fullscreen.svg

14
.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

10
.env.development

@ -0,0 +1,10 @@
ENV = 'development'
# 接口地址
# 许镇-本地服地址
VUE_APP_BASE_API = 'http://192.168.99.72:15000'
VUE_APP_WEBRTCSTREAMER_API = '127.0.0.1:8000'
# 是否启用 babel-plugin-dynamic-import-node插件
VUE_CLI_BABEL_TRANSPILE_MODULES = true

11
.env.production

@ -0,0 +1,11 @@
ENV = 'production'
# 如果使用 Nginx 代理后端接口,那么此处需要改为 '/',文件查看 Docker 部署篇,Nginx 配置
# 接口地址,注意协议,如果你没有配置 ssl,需要将 https 改为 http
VUE_APP_BASE_API = 'http://192.168.99.86:12010'
VUE_APP_WEBRTCSTREAMER_API = '192.168.99.100:8000'
# 如果接口是 http 形式, wss 需要改为 ws
#VUE_APP_WS_API = 'ws://27.16.212.58:11100'
#VUE_APP_CAMERA_API = '192.168.99.107:3000'

5
.eslintignore

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

197
.eslintrc.js

@ -0,0 +1,197 @@
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint',
sourceType: 'module'
},
env: {
browser: true,
node: true,
es6: true,
},
extends: ['plugin:vue/recommended', 'eslint:recommended'],
rules: {
"vue/max-attributes-per-line": [2, {
"singleline": 10,
"multiline": {
"max": 1,
"allowFirstLine": false
}
}],
"vue/singleline-html-element-content-newline": "off",
"vue/multiline-html-element-content-newline":"off",
"vue/name-property-casing": ["error", "PascalCase"],
"vue/no-v-html": "off",
'accessor-pairs': 2,
'arrow-spacing': [2, {
'before': true,
'after': true
}],
'block-spacing': [2, 'always'],
'brace-style': [2, '1tbs', {
'allowSingleLine': true
}],
'camelcase': [0, {
'properties': 'always'
}],
'comma-dangle': [2, 'never'],
'comma-spacing': [2, {
'before': false,
'after': true
}],
'comma-style': [2, 'last'],
'constructor-super': 2,
'curly': [2, 'multi-line'],
'dot-location': [2, 'property'],
'eol-last': 2,
'eqeqeq': ["error", "always", {"null": "ignore"}],
'generator-star-spacing': [2, {
'before': true,
'after': true
}],
'handle-callback-err': [2, '^(err|error)$'],
'indent': [2, 2, {
'SwitchCase': 1
}],
'jsx-quotes': [2, 'prefer-single'],
'key-spacing': [2, {
'beforeColon': false,
'afterColon': true
}],
'keyword-spacing': [2, {
'before': true,
'after': true
}],
'new-cap': [2, {
'newIsCap': true,
'capIsNew': false
}],
'new-parens': 2,
'no-array-constructor': 2,
'no-caller': 2,
'no-console': 'off',
'no-class-assign': 2,
'no-cond-assign': 2,
'no-const-assign': 2,
'no-control-regex': 0,
'no-delete-var': 2,
'no-dupe-args': 2,
'no-dupe-class-members': 2,
'no-dupe-keys': 2,
'no-duplicate-case': 2,
'no-empty-character-class': 2,
'no-empty-pattern': 2,
'no-eval': 2,
'no-ex-assign': 2,
'no-extend-native': 2,
'no-extra-bind': 2,
'no-extra-boolean-cast': 2,
'no-extra-parens': [2, 'functions'],
'no-fallthrough': 2,
'no-floating-decimal': 2,
'no-func-assign': 2,
'no-implied-eval': 2,
'no-inner-declarations': [2, 'functions'],
'no-invalid-regexp': 2,
'no-irregular-whitespace': 2,
'no-iterator': 2,
'no-label-var': 2,
'no-labels': [2, {
'allowLoop': false,
'allowSwitch': false
}],
'no-lone-blocks': 2,
'no-mixed-spaces-and-tabs': 2,
'no-multi-spaces': 2,
'no-multi-str': 2,
'no-multiple-empty-lines': [2, {
'max': 1
}],
'no-native-reassign': 2,
'no-negated-in-lhs': 2,
'no-new-object': 2,
'no-new-require': 2,
'no-new-symbol': 2,
'no-new-wrappers': 2,
'no-obj-calls': 2,
'no-octal': 2,
'no-octal-escape': 2,
'no-path-concat': 2,
'no-proto': 2,
'no-redeclare': 2,
'no-regex-spaces': 2,
'no-return-assign': [2, 'except-parens'],
'no-self-assign': 2,
'no-self-compare': 2,
'no-sequences': 2,
'no-shadow-restricted-names': 2,
'no-spaced-func': 2,
'no-sparse-arrays': 2,
'no-this-before-super': 2,
'no-throw-literal': 2,
'no-trailing-spaces': 2,
'no-undef': 2,
'no-undef-init': 2,
'no-unexpected-multiline': 2,
'no-unmodified-loop-condition': 2,
'no-unneeded-ternary': [2, {
'defaultAssignment': false
}],
'no-unreachable': 2,
'no-unsafe-finally': 2,
'no-unused-vars': [2, {
'vars': 'all',
'args': 'none'
}],
'no-useless-call': 2,
'no-useless-computed-key': 2,
'no-useless-constructor': 2,
'no-useless-escape': 0,
'no-whitespace-before-property': 2,
'no-with': 2,
'one-var': [2, {
'initialized': 'never'
}],
'operator-linebreak': [2, 'after', {
'overrides': {
'?': 'before',
':': 'before'
}
}],
'padded-blocks': [2, 'never'],
'quotes': [2, 'single', {
'avoidEscape': true,
'allowTemplateLiterals': true
}],
'semi': [2, 'never'],
'semi-spacing': [2, {
'before': false,
'after': true
}],
'space-before-blocks': [2, 'always'],
'space-before-function-paren': [2, 'never'],
'space-in-parens': [2, 'never'],
'space-infix-ops': 2,
'space-unary-ops': [2, {
'words': true,
'nonwords': false
}],
'spaced-comment': [2, 'always', {
'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
}],
'template-curly-spacing': [2, 'never'],
'use-isnan': 2,
'valid-typeof': 2,
'wrap-iife': [2, 'any'],
'yield-star-spacing': [2, 'both'],
'yoda': [2, 'never'],
'prefer-const': 2,
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'object-curly-spacing': [2, 'always', {
objectsInObjects: false
}],
'array-bracket-spacing': [2, 'never']
}
}

24
.gitignore

@ -0,0 +1,24 @@
.DS_Store
node_modules/
dist/
demo/
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

5
.travis.yml

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

191
LICENSE

@ -0,0 +1,191 @@
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:
You must give any other recipients of the Work or Derivative Works a copy of
this License; and
You must cause any modified files to carry prominent notices stating that You
changed the files; and
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
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 Zheng Jie
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.

11
babel.config.js

@ -0,0 +1,11 @@
const plugins = ['@vue/babel-plugin-transform-vue-jsx', '@babel/plugin-proposal-optional-chaining', '@babel/plugin-proposal-nullish-coalescing-operator']
// 生产环境移除console
if (process.env.NODE_ENV === 'production') {
plugins.push('transform-remove-console')
}
module.exports = {
plugins: plugins,
presets: [
['@vue/app', { useBuiltIns: 'entry' }]
]
}

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

156
package.json

@ -0,0 +1,156 @@
{
"name": "library-management-system",
"version": "1.0.0",
"description": "RFID资产管理后台",
"license": "",
"scripts": {
"dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
"build:prod": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview",
"lint": "eslint --ext .js,.vue src",
"test:unit": "jest --clearCache && vue-cli-service test:unit",
"svgo": "svgo -f src/assets/icons/svg --config=src/assets/icons/svgo.yml",
"new": "plop"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"src/**/*.{js,vue}": [
"eslint --fix",
"git add"
]
},
"dependencies": {
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
"@babel/plugin-proposal-optional-chaining": "^7.18.9",
"@handsontable/vue": "^14.1.0",
"@lapo/asn1js": "^1.2.1",
"@pdf-lib/fontkit": "^1.1.1",
"@riophae/vue-treeselect": "^0.4.0",
"@tinymce/tinymce-vue": "^3.0.1",
"@vue-office/docx": "^1.6.0",
"@vue-office/excel": "^1.6.5",
"axios": "^0.21.1",
"chokidar": "^3.5.3",
"clipboard": "2.0.4",
"codemirror": "^5.49.2",
"connect": "3.6.6",
"core-js": "^3.6.5",
"cropperjs": "^1.6.2",
"d3": "^4.12.0",
"dimple": "git+https://github.com/PMSI-AlignAlytics/dimple.git#2.3.0",
"docx-preview": "^0.1.8",
"echarts": "^4.2.1",
"echarts-gl": "^1.1.1",
"echarts-wordcloud": "^1.1.3",
"element-resize-detector": "^1.2.4",
"element-ui": "^2.15.6",
"exceljs": "^4.4.0",
"fabric": "2.5",
"file-saver": "^1.3.8",
"fuse.js": "3.4.4",
"handsontable": "^14.1.0",
"highlight.js": "^11.5.1",
"html2canvas": "^1.4.1",
"jquery": "^3.2.1",
"js-beautify": "^1.10.2",
"js-cookie": "2.2.0",
"js-md5": "^0.7.3",
"js-sha1": "^0.6.0",
"jsbarcode": "^3.11.6",
"jsencrypt": "^3.0.0-rc.1",
"jsrsasign": "^10.3.0",
"jszip": "^3.7.0",
"jszip-utils": "^0.1.0",
"mavon-editor": "^2.9.1",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
"ofd-xml-parser": "^0.0.2",
"path-to-regexp": "2.4.0",
"pdf-lib": "^1.17.1",
"pdfdist-mergeofd": "^2.2.228",
"pdfjs-dist": "^2.12.313",
"print-js": "^1.6.0",
"qrcodejs2": "^0.0.2",
"qs": "^6.10.1",
"quill": "^2.0.0-dev.3",
"quill-better-table": "^1.2.10",
"quill-image-resize-module": "^3.0.0",
"screenfull": "4.2.0",
"sm-crypto": "^0.3.2",
"sortablejs": "1.8.4",
"spark-md5": "^3.0.2",
"v-viewer": "^1.6.4",
"vconsole": "^3.15.1",
"vkbeautify": "^0.99.3",
"vue": "^2.6.14",
"vue-awesome-swiper": "^3.1.3",
"vue-count-to": "^1.0.13",
"vue-cropper": "^0.4.9",
"vue-cropperjs": "^5.0.0",
"vue-demi": "^0.14.7",
"vue-echarts": "^5.0.0-beta.0",
"vue-highlightjs": "^1.3.3",
"vue-image-crop-upload": "^2.5.0",
"vue-print-nb": "^1.7.5",
"vue-quill-editor": "^3.0.6",
"vue-resource": "^1.5.3",
"vue-router": "3.0.2",
"vue-simple-uploader": "^0.7.6",
"vue-splitpane": "1.0.4",
"vuedraggable": "2.20.0",
"vuex": "3.1.0",
"wangeditor": "^4.7.11",
"web-streams-polyfill": "^3.1.0",
"x2js": "^3.4.0",
"xlsx": "^0.17.4"
},
"devDependencies": {
"@babel/parser": "^7.7.4",
"@babel/register": "7.0.0",
"@vue/babel-plugin-transform-vue-jsx": "^1.2.1",
"@vue/cli-plugin-babel": "3.5.3",
"@vue/cli-plugin-eslint": "^3.9.1",
"@vue/cli-plugin-unit-jest": "3.5.3",
"@vue/cli-service": "3.5.3",
"@vue/test-utils": "1.0.0-beta.29",
"autoprefixer": "^9.5.1",
"babel-core": "7.0.0-bridge.0",
"babel-eslint": "10.0.1",
"babel-jest": "23.6.0",
"babel-plugin-dynamic-import-node": "2.3.0",
"babel-plugin-transform-remove-console": "^6.9.4",
"chalk": "2.4.2",
"chokidar": "2.1.5",
"connect": "3.6.6",
"eslint": "5.15.3",
"eslint-plugin-vue": "5.2.2",
"generate-asset-webpack-plugin": "^0.3.0",
"html-webpack-plugin": "^4.5.2",
"http-proxy-middleware": "^0.19.1",
"husky": "1.3.1",
"lint-staged": "8.1.5",
"plop": "2.3.0",
"sass": "1.32.13",
"sass-loader": "10.2.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",
"tasksfile": "^5.1.1",
"vue-template-compiler": "2.6.14"
},
"engines": {
"node": ">=8.9",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions"
]
}

7
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
postcss.config.js

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

44
public/favicon.svg

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1024 1024" style="enable-background:new 0 0 1024 1024;" xml:space="preserve">
<style type="text/css">
.st0{fill:url(#SVGID_1_);}
.st1{fill:#198CFF;}
.st2{fill:url(#SVGID_2_);}
.st3{fill:url(#SVGID_3_);}
.st4{fill:#33D0FF;}
.st5{fill:#0053EB;}
</style>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="216.1168" y1="856.3585" x2="216.1168" y2="345.3465">
<stop offset="0" style="stop-color:#1C78FF"/>
<stop offset="1" style="stop-color:#52C6FF"/>
</linearGradient>
<polygon class="st0" points="3.9,184.5 3.8,412.8 3.8,484.7 3.8,484.7 3.8,712.7 428.5,974.4 428.5,446.4 "/>
<path class="st1" d="M563.9,46.8L361,96.7c-15.7,3.8-18.9,24.6-5.2,33.1l119.1,73.5c24.2,14.9,56.1,4.9,67.3-21.2l45.9-106.6
C595,59.6,580.7,42.7,563.9,46.8z"/>
<path class="st1" d="M3.9,184.5l424.5,261.9l53-123.7c9.4-21.9,1.4-47.3-18.8-59.8L257.1,135.4c-10.9-6.8-24-8.8-36.5-5.8L3.9,184.5
z"/>
<g>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="708.7628" y1="415.2324" x2="723.4354" y2="785.7179">
<stop offset="0" style="stop-color:#4ABEFF"/>
<stop offset="1" style="stop-color:#198CFF"/>
</linearGradient>
<path class="st2" d="M887,632.9L428.5,746.4v228l511-126.3c49.6-12.1,84.5-56.5,84.5-107.6C1024,668.7,956.8,615.9,887,632.9z
M902.8,787.9c-19.5,0-35.4-18.8-35.4-42c0-23.2,15.8-42,35.4-42c19.5,0,35.4,18.8,35.4,42C938.2,769.1,922.3,787.9,902.8,787.9z"
/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="720.6134" y1="414.763" x2="735.2861" y2="785.2486">
<stop offset="0" style="stop-color:#4ABEFF"/>
<stop offset="1" style="stop-color:#198CFF"/>
</linearGradient>
<path class="st3" d="M1024,440.7c0-71.9-67.3-124.8-137.2-107.7L428.5,446.4v228.3l510.9-126.2C989,536.4,1024,491.9,1024,440.7z
M902.8,489.3c-19.5,0-35.4-18.8-35.4-42c0-23.2,15.8-42,35.4-42c19.5,0,35.4,18.8,35.4,42C938.2,470.5,922.3,489.3,902.8,489.3z"
/>
</g>
<path class="st4" d="M684.3,86.5L684.3,86.5c-15.7-9.8-36.4-3.3-43.7,13.7l-93.7,217.6c-9.9,22.9,10.8,47.2,35,41.2l0,0
c9.2-2.3,16.7-8.7,20.5-17.4L696,124C701.9,110.3,696.9,94.4,684.3,86.5z"/>
<path class="st1" d="M788.3,151.5l-0.8-0.5c-15.7-9.8-36.4-3.3-43.7,13.7l-50.3,116.8c-9.9,22.9,10.8,47.2,35,41.2l1.2-0.3
c9.2-2.3,16.7-8.7,20.5-17.4l49.9-116C806,175.3,801,159.4,788.3,151.5z"/>
<path class="st5" d="M896.6,219.2L896.6,219.2c-17.9-11.2-41.6-3.8-50,15.6l-0.8,1.8c-11.3,26.2,12.3,54,40,47.1h0
c10.5-2.6,19.1-9.9,23.4-19.8l0.8-1.8C916.8,246.4,911.1,228.2,896.6,219.2z"/>
</svg>

17
public/index.html

@ -0,0 +1,17 @@
<!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.svg" type="image/svg+xml">
<script src="/static/adapter.min.js"></script>
<script src="/static/webrtcstreamer.js"></script>
<title><%= webpackConfig.name %></title>
<script type="text/javascript" src="/static/config.js"></script>
</head>
<body>
<div id="app"></div>
</body>
</html>

3514
public/static/adapter.min.js
File diff suppressed because it is too large
View File

5
public/static/config.js

@ -0,0 +1,5 @@
window.g = {
AXIOS_TIMEOUT: 10000,
ApiUrl: 'http://192.168.99.72:15000', // 配置服务器地址
ApiWebRtcServerUrl: '127.0.0.1:8000', // 配置监控视频服务器地址
}

305
public/static/webrtcstreamer.js

@ -0,0 +1,305 @@
var WebRtcStreamer = (function() {
/**
* Interface with WebRTC-streamer API
* @constructor
* @param {string} videoElement - id of the video element tag
* @param {string} srvurl - url of webrtc-streamer (default is current location)
*/
var WebRtcStreamer = function WebRtcStreamer (videoElement, srvurl) {
if (typeof videoElement === "string") {
this.videoElement = document.getElementById(videoElement);
} else {
this.videoElement = videoElement;
}
this.srvurl = srvurl || location.protocol+"//"+window.location.hostname+":"+window.location.port;
this.pc = null;
this.mediaConstraints = { offerToReceiveAudio: true, offerToReceiveVideo: true };
this.iceServers = null;
this.earlyCandidates = [];
}
WebRtcStreamer.prototype._handleHttpErrors = function (response) {
if (!response.ok) {
throw Error(response.statusText);
}
return response;
}
/**
* Connect a WebRTC Stream to videoElement
* @param {string} videourl - id of WebRTC video stream
* @param {string} audiourl - id of WebRTC audio stream
* @param {string} options - options of WebRTC call
* @param {string} stream - local stream to send
*/
WebRtcStreamer.prototype.connect = function(videourl, audiourl, options, localstream) {
this.disconnect();
// getIceServers is not already received
if (!this.iceServers) {
console.log("Get IceServers");
fetch(this.srvurl + "/api/getIceServers")
.then(this._handleHttpErrors)
.then( (response) => (response.json()) )
.then( (response) => this.onReceiveGetIceServers(response, videourl, audiourl, options, localstream))
.catch( (error) => this.onError("getIceServers " + error ))
} else {
this.onReceiveGetIceServers(this.iceServers, videourl, audiourl, options, localstream);
}
}
/**
* Disconnect a WebRTC Stream and clear videoElement source
*/
WebRtcStreamer.prototype.disconnect = function() {
if (this.videoElement?.srcObject) {
this.videoElement.srcObject.getTracks().forEach(track => {
track.stop()
this.videoElement.srcObject.removeTrack(track);
});
}
if (this.pc) {
fetch(this.srvurl + "/api/hangup?peerid=" + this.pc.peerid)
.then(this._handleHttpErrors)
.catch( (error) => this.onError("hangup " + error ))
try {
this.pc.close();
}
catch (e) {
console.log ("Failure close peer connection:" + e);
}
this.pc = null;
}
}
/*
* GetIceServers callback
*/
WebRtcStreamer.prototype.onReceiveGetIceServers = function(iceServers, videourl, audiourl, options, stream) {
this.iceServers = iceServers;
this.pcConfig = iceServers || {"iceServers": [] };
try {
this.createPeerConnection();
var callurl = this.srvurl + "/api/call?peerid=" + this.pc.peerid + "&url=" + encodeURIComponent(videourl);
if (audiourl) {
callurl += "&audiourl="+encodeURIComponent(audiourl);
}
if (options) {
callurl += "&options="+encodeURIComponent(options);
}
if (stream) {
this.pc.addStream(stream);
}
// clear early candidates
this.earlyCandidates.length = 0;
// create Offer
this.pc.createOffer(this.mediaConstraints).then((sessionDescription) => {
console.log("Create offer:" + JSON.stringify(sessionDescription));
this.pc.setLocalDescription(sessionDescription)
.then(() => {
fetch(callurl, { method: "POST", body: JSON.stringify(sessionDescription) })
.then(this._handleHttpErrors)
.then( (response) => (response.json()) )
.catch( (error) => this.onError("call " + error ))
.then( (response) => this.onReceiveCall(response) )
.catch( (error) => this.onError("call " + error ))
}, (error) => {
console.log ("setLocalDescription error:" + JSON.stringify(error));
});
}, (error) => {
alert("Create offer error:" + JSON.stringify(error));
});
} catch (e) {
this.disconnect();
alert("connect error: " + e);
}
}
WebRtcStreamer.prototype.getIceCandidate = function() {
fetch(this.srvurl + "/api/getIceCandidate?peerid=" + this.pc.peerid)
.then(this._handleHttpErrors)
.then( (response) => (response.json()) )
.then( (response) => this.onReceiveCandidate(response))
.catch( (error) => this.onError("getIceCandidate " + error ))
}
/*
* create RTCPeerConnection
*/
WebRtcStreamer.prototype.createPeerConnection = function() {
console.log("createPeerConnection config: " + JSON.stringify(this.pcConfig));
this.pc = new RTCPeerConnection(this.pcConfig);
var pc = this.pc;
pc.peerid = Math.random();
pc.onicecandidate = (evt) => this.onIceCandidate(evt);
pc.onaddstream = (evt) => this.onAddStream(evt);
pc.oniceconnectionstatechange = (evt) => {
console.log("oniceconnectionstatechange state: " + pc.iceConnectionState);
if (this.videoElement) {
if (pc.iceConnectionState === "connected") {
this.videoElement.style.opacity = "1.0";
}
else if (pc.iceConnectionState === "disconnected") {
this.videoElement.style.opacity = "0.25";
}
else if ( (pc.iceConnectionState === "failed") || (pc.iceConnectionState === "closed") ) {
this.videoElement.style.opacity = "0.5";
} else if (pc.iceConnectionState === "new") {
this.getIceCandidate();
}
}
}
pc.ondatachannel = function(evt) {
console.log("remote datachannel created:"+JSON.stringify(evt));
evt.channel.onopen = function () {
console.log("remote datachannel open");
this.send("remote channel openned");
}
evt.channel.onmessage = function (event) {
console.log("remote datachannel recv:"+JSON.stringify(event.data));
}
}
pc.onicegatheringstatechange = function() {
if (pc.iceGatheringState === "complete") {
const recvs = pc.getReceivers();
recvs.forEach((recv) => {
if (recv.track && recv.track.kind === "video") {
console.log("codecs:" + JSON.stringify(recv.getParameters().codecs))
}
});
}
}
try {
var dataChannel = pc.createDataChannel("ClientDataChannel");
dataChannel.onopen = function() {
console.log("local datachannel open");
this.send("local channel openned");
}
dataChannel.onmessage = function(evt) {
console.log("local datachannel recv:"+JSON.stringify(evt.data));
}
} catch (e) {
console.log("Cannor create datachannel error: " + e);
}
console.log("Created RTCPeerConnnection with config: " + JSON.stringify(this.pcConfig) );
return pc;
}
/*
* RTCPeerConnection IceCandidate callback
*/
WebRtcStreamer.prototype.onIceCandidate = function (event) {
if (event.candidate) {
if (this.pc.currentRemoteDescription) {
this.addIceCandidate(this.pc.peerid, event.candidate);
} else {
this.earlyCandidates.push(event.candidate);
}
}
else {
console.log("End of candidates.");
}
}
WebRtcStreamer.prototype.addIceCandidate = function(peerid, candidate) {
fetch(this.srvurl + "/api/addIceCandidate?peerid="+peerid, { method: "POST", body: JSON.stringify(candidate) })
.then(this._handleHttpErrors)
.then( (response) => (response.json()) )
.then( (response) => {console.log("addIceCandidate ok:" + response)})
.catch( (error) => this.onError("addIceCandidate " + error ))
}
/*
* RTCPeerConnection AddTrack callback
*/
WebRtcStreamer.prototype.onAddStream = function(event) {
console.log("Remote track added:" + JSON.stringify(event));
this.videoElement.srcObject = event.stream;
var promise = this.videoElement.play();
if (promise !== undefined) {
promise.catch((error) => {
console.warn("error:"+error);
this.videoElement.setAttribute("controls", true);
});
}
}
/*
* AJAX /call callback
*/
WebRtcStreamer.prototype.onReceiveCall = function(dataJson) {
console.log("offer: " + JSON.stringify(dataJson));
var descr = new RTCSessionDescription(dataJson);
this.pc.setRemoteDescription(descr).then(() => {
console.log ("setRemoteDescription ok");
while (this.earlyCandidates.length) {
var candidate = this.earlyCandidates.shift();
this.addIceCandidate(this.pc.peerid, candidate);
}
this.getIceCandidate()
}
, (error) => {
console.log ("setRemoteDescription error:" + JSON.stringify(error));
});
}
/*
* AJAX /getIceCandidate callback
*/
WebRtcStreamer.prototype.onReceiveCandidate = function(dataJson) {
console.log("candidate: " + JSON.stringify(dataJson));
if (dataJson) {
for (var i=0; i<dataJson.length; i++) {
var candidate = new RTCIceCandidate(dataJson[i]);
console.log("Adding ICE candidate :" + JSON.stringify(candidate) );
this.pc.addIceCandidate(candidate).then( () => { console.log ("addIceCandidate OK"); }
, (error) => { console.log ("addIceCandidate error:" + JSON.stringify(error)); } );
}
this.pc.addIceCandidate();
}
}
/*
* AJAX callback for Error
*/
WebRtcStreamer.prototype.onError = function(status) {
console.log("onError:" + status);
}
return WebRtcStreamer;
})();
if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {
window.WebRtcStreamer = WebRtcStreamer;
}
if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
module.exports = WebRtcStreamer;
}

30
src/App.vue

@ -0,0 +1,30 @@
<template>
<div id="app">
<router-view v-if="isRouterAlive" />
</div>
</template>
<script>
export default {
name: 'App',
//
provide() {
return {
reload: this.reload
}
},
data() {
return {
isRouterAlive: true
}
},
methods: {
reload() {
this.isRouterAlive = false
this.$nextTick(() => {
this.isRouterAlive = true
})
}
}
}
</script>

43
src/api/RFID/RFID.js

@ -0,0 +1,43 @@
import request from '@/utils/request'
export function checkStatus(params) {
return request({
url: 'api/RFID/CheckStatus',
method: 'get',
params
})
}
export function readEpc(params) {
return request({
url: 'api/RFID/ReadEpc',
method: 'get',
params
})
}
export function writeEPC(params) {
return request({
url: 'api/RFID/WriteEPC',
method: 'get',
params
})
}
export function getDeviceMac() {
return request({
// url: 'api/RFID/getDeviceMac',
url: 'api/RFID/getDeviceMacLinux',
method: 'get'
})
}
export function getDeviceIdByMac(mac) {
const params = { mac: mac }
return request({
url: 'api/RFID/getDeviceIdByMac',
method: 'get',
params
})
}
export default { checkStatus, readEpc, writeEPC, getDeviceMac, getDeviceIdByMac }

52
src/api/asset/index.js

@ -0,0 +1,52 @@
import request from '@/utils/request'
export function FetchInitAssetInfo(params) {
return request({
url: 'api/asset/initAssetInfo',
method: 'get',
params
})
}
// 新增盘点单
export function add(data) {
return request({
url: 'api/stocktake/addStockTakeBill',
method: 'post',
data
})
}
// 获取盘点单详情
export function FetchStockTakeDetailsByTaskId(params) {
return request({
url: 'api/stocktake/getStockTakeDetailsByTaskId',
method: 'get',
params
})
}
// 结算盘点单
export function FetchStockSettle(ids) {
return request({
url: 'api/stocktake/stockSettle',
method: 'post',
data: ids
})
}
export function FetchDeleteStockTake(ids) {
return request({
url: 'api/stocktake/deleteStockTake',
method: 'post',
data: ids
})
}
export default {
FetchInitAssetInfo,
add,
FetchStockTakeDetailsByTaskId,
FetchStockSettle,
FetchDeleteStockTake
}

92
src/api/assetDevice/index.js

@ -0,0 +1,92 @@
import request from '@/utils/request'
// 获取仓库树
export function FetchWarehouseTree(params) {
return request({
url: 'api/warehouse/getWarehouseTree',
method: 'get',
params
})
}
// 获取市州-仓库树
export function FetchFondsWarehouseTree(params) {
return request({
url: 'api/warehouse/getFondsWarehouseTree',
method: 'get',
params
})
}
// 初始化设备列表
export function FetchInitDeviceInfo(params) {
return request({
url: 'api/device/initDeviceInfo',
method: 'get',
params
})
}
// 根据仓库iD获取全部设备
export function FetchDeviceAlllByWarehouseId(params) {
return request({
url: 'api/device/getDeviceAlllByWarehouseId',
method: 'get',
params
})
}
// 新增设备
export function add(data) {
return request({
url: 'api/device/editDevice',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/device/deleteDevice',
method: 'post',
data: ids
})
}
// 获取设备类型树
export function FetchDeviceTypeTree(params) {
return request({
url: 'api/device/deviceTypeTree',
method: 'get',
params
})
}
// 根据id获取设备详情
export function FetchDeviceDetailsById(params) {
return request({
url: 'api/device/getDeviceDetailsById',
method: 'get',
params
})
}
// 获取密码
export function FetchDevicePasswordById(params) {
return request({
url: 'api/device/getDevicePasswordById',
method: 'get',
params
})
}
export default {
FetchFondsWarehouseTree,
FetchWarehouseTree,
FetchInitDeviceInfo,
add,
edit: add,
del,
FetchDeviceTypeTree,
FetchDeviceDetailsById,
FetchDevicePasswordById,
FetchDeviceAlllByWarehouseId
}

24
src/api/assetFonds/index.js

@ -0,0 +1,24 @@
import request from '@/utils/request'
// 同步市州
export function FetchSyncFonds(data) {
return request({
url: 'api/fonds/syncFonds',
method: 'post',
data
})
}
// 同步存放地
export function FetchStorageLocation(data) {
return request({
url: '/api/storageLocation/syncStorageLocation',
method: 'post',
data
})
}
export default {
FetchSyncFonds,
FetchStorageLocation
}

43
src/api/assetWarehouse/index.js

@ -0,0 +1,43 @@
import request from '@/utils/request'
// 初始化仓库列表
export function FetchInitWarehouseList(params) {
return request({
url: 'api/warehouse/initWarehouseList',
method: 'get',
params
})
}
// 新增编辑仓库
export function add(data) {
return request({
url: 'api/warehouse/editWarehouse',
method: 'post',
data
})
}
export function FetchEditWarehouseStatus(data) {
return request({
url: 'api/warehouse/editWarehouseStatus',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/warehouse/deleteWarehouse',
method: 'post',
data: ids
})
}
export default {
FetchInitWarehouseList,
add,
edit: add,
FetchEditWarehouseStatus,
del
}

17
src/api/data.js

@ -0,0 +1,17 @@
import request from '@/utils/request'
import qs from 'qs'
export function initData(url, params) {
return request({
url: url + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
export function download(url, params) {
return request({
url: url + '?' + qs.stringify(params, { indices: false }),
method: 'get',
responseType: 'blob'
})
}

99
src/api/deviceVI/index.js

@ -0,0 +1,99 @@
import request from '@/utils/request'
// 获取区域树
export function FetchRegionTree(params) {
return request({
url: 'api/device/getRegionTree',
method: 'get',
params
})
}
// 设备列表
export function FetchinitDeviceInfoList(params) {
return request({
url: 'api/device/initDeviceInfoList',
method: 'get',
params
})
}
export function add(data) {
return request({
url: 'api/device/editDeviceInfo',
method: 'post',
data
})
}
export function edit(data) {
return request({
url: 'api/device/editDeviceInfo',
method: 'post',
data
})
}
export function del(data) {
return request({
url: 'api/device/delDeviceInfo',
method: 'post',
data
})
}
// 通过设备id获取设备详情
export function FetchDeviceById(params) {
return request({
url: 'api/device/getDeviceById',
method: 'get',
params
})
}
// 摄像头绑定书架
export function FetchDeviceShelfGridBinding(data) {
return request({
url: 'api/device/deviceShelfGridBinding',
method: 'post',
data
})
}
// 根据设备和条件获取已绑定书架
export function FetchBoundGridByDevice(params) {
return request({
url: 'api/device/getBoundGridByDevice',
method: 'get',
params
})
}
// 根据条件获取未绑定书架
export function FetchUnboundGrid(params) {
return request({
url: 'api/device/getUnboundGrid',
method: 'get',
params
})
}
// 根据摄像头信息获取摄像头状态2export function FetchBoundGridByDevice(params) {
export function FetchPingIP(params) {
return request({
url: 'api/queryDeviceAPI/pingIP',
method: 'get',
params
})
}
// 根据设备类别获取设备树
export function FetchDeviceTreeByType(params) {
return request({
url: 'api/device/getDeviceTreeByType',
method: 'get',
params
})
}
export default { add, edit, del, FetchRegionTree, FetchinitDeviceInfoList, FetchDeviceById, FetchDeviceShelfGridBinding, FetchBoundGridByDevice, FetchUnboundGrid, FetchPingIP, FetchDeviceTreeByType }

10
src/api/home/alarm/index.js

@ -0,0 +1,10 @@
import request from '@/utils/request'
export function info(params) {
return request({
url: 'api/alarm/info',
params,
method: 'get'
})
}
export default { info }

11
src/api/home/cpu/index.js

@ -0,0 +1,11 @@
import request from '@/utils/request'
// 获取服务器基础信息
export function FetchSystemInfo(params) {
return request({
url: '/api/home/getSystemInfo',
params,
method: 'get'
})
}
export default { FetchSystemInfo }

10
src/api/home/securityDoor/securityDoor.js

@ -0,0 +1,10 @@
import request from '@/utils/request'
export function securitydoor(params) {
return request({
url: 'api/securitydoor/initSecurityDoorLog',
method: 'get',
params
})
}
export default { securitydoor }

36
src/api/login.js

@ -0,0 +1,36 @@
import request from '@/utils/request'
export function login(username, password, code, uuid) {
return request({
url: 'api/auth/login',
method: 'post',
data: {
username,
password,
code,
uuid
}
})
}
export function getInfo() {
return request({
url: 'api/auth/info',
method: 'get'
})
}
export function getCodeImg(data) {
return request({
url: 'api/auth/captcha',
method: 'post',
data
})
}
export function logout() {
return request({
url: 'api/auth/logout',
method: 'post'
})
}

176
src/api/stockTask/index.js

@ -0,0 +1,176 @@
import request from '@/utils/request'
import qs from 'qs'
export function add(data) {
return request({
url: 'api/stocktask-task/editStockTask',
method: 'post',
data
})
}
export function edit(data) {
return request({
url: 'api/stocktask-task/editStockTask',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/stocktask-task/delStockTask',
method: 'post',
data: ids
})
}
// 修改盘点任务状态
export function FetchUpdateStockTaskStatus(data) {
return request({
url: 'api/stocktask-task/updateStockTaskStatus',
method: 'post',
data
})
}
// 统计分析-建议倒架
export function FetchInitSuggestTilting(params) {
return request({
url: 'api/stocktask-task/initSuggestTilting' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 盘点管理-初始化参数
export function FetchInitSetting(params) {
return request({
url: 'api/stocktask-task/initSetting' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 盘点管理-编辑初始化参数
export function FetchEditSetting(data) {
return request({
url: 'api/stocktask-task/editSetting',
method: 'post',
data
})
}
// 初始化统计基础数据
export function FetchInitHomeInfo(params) {
return request({
url: 'api/stocktask-task/initHomeInfo' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 初始化盘点概况
export function FetchInitStockInfo(params) {
return request({
url: 'api/stocktask-task/initStockInfo' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 初始化热门图书
export function FetchInitHotBookList(params) {
return request({
url: 'api/stocktask-task/initHotBookList' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 初始化热门架位
export function FetchInitHotShelfList(params) {
return request({
url: 'api/stocktask-task/initHotShelfList' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 根据层架位id获取架位图书
export function FetchInitBookDetailsByGrids(params) {
return request({
url: 'api/stocktask-task/initBookDetailsByGrids' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// AI处理终端状态查询
export function FetchAITerminalStatusQuery(params) {
return request({
url: 'api/stocktask-task/AITerminalStatusQuery' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 根据书架和书架层获取盘点单信息
export function FetchBillByShelfIdAndGridShelf(params) {
return request({
url: 'api/stocktask-task/getBillByShelfIdAndGridShelf' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 根据盘点单号和层架位id获取是否完美切割
export function FetchIsGoodcutByBillNoAndGridId(params) {
return request({
url: 'api/stocktask-task/getIsGoodcutByBillNoAndGridId' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 建议顺架
export function FetchInitErrorProbaDesc(params) {
return request({
url: 'api/stocktask-task/initErrorProbaDesc' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 根据盘点id书架id和书架架位查询总览数据
export function FetchShowByBillIdAndShelfIdAndGridShelf(params) {
return request({
url: 'api/stocktask-task/showByBillIdAndShelfIdAndGridShelf' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 运行/停止图书AI识别程序
export function FetchStartStopBookAIService(params) {
return request({
url: 'api/stocktask-task/startStopBookAIService' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 移动盘点
export function FetchMoveBills(data) {
return request({
url: 'api/stocktask-task/moveBill',
method: 'post',
data
})
}
// 根据层架位id获取最新盘点信息
export function FetchNewBillByGridId(params) {
return request({
url: 'api/stocktask-task/getNewBillByGridId' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 手动上架
export function FetchManualShelving(data) {
return request({
url: 'api/stocktask-task/manualShelving',
method: 'post',
data
})
}
export default { add, edit, del, FetchUpdateStockTaskStatus, FetchInitSuggestTilting, FetchInitSetting, FetchEditSetting, FetchInitHomeInfo, FetchInitStockInfo, FetchInitHotBookList, FetchInitHotShelfList, FetchInitBookDetailsByGrids, FetchAITerminalStatusQuery, FetchBillByShelfIdAndGridShelf, FetchIsGoodcutByBillNoAndGridId, FetchInitErrorProbaDesc, FetchShowByBillIdAndShelfIdAndGridShelf, FetchStartStopBookAIService, FetchMoveBills, FetchNewBillByGridId, FetchManualShelving }

111
src/api/stockTaskLog/index.js

@ -0,0 +1,111 @@
import request from '@/utils/request'
import qs from 'qs'
// export function add(data) {
// return request({
// url: 'api/stocktask-task/editStockTask',
// method: 'post',
// data
// })
// }
// export function edit(data) {
// return request({
// url: 'api/stocktask-task/editStockTask',
// method: 'post',
// data
// })
// }
// 盘点单删除
export function del(data) {
return request({
url: '/api/stocktask-task/delStockBill',
method: 'post',
data: data
})
}
// 终止盘点单
export function FetchStopStockBill(data) {
return request({
url: '/api/stocktask-task/stopStockBill',
method: 'post',
data: data
})
}
// 盘点日志列表
export function FetchInitStockLogList(params) {
return request({
url: 'api/stocktask-task/initStockLogList' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 盘点日志详情
export function FetchInitStockLogDetails(params) {
return request({
url: 'api/stocktask-task/initStockLogDetails' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 根据盘点单id查看各层位详情
export function FetchInitStockTaskDetails(params) {
return request({
url: 'api/stocktask-task/initStockTaskDetails' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 根据盘点单号和层架位编码查看进度
export function FetchProgressByStockBillAndGridCode(params) {
return request({
url: 'api/stocktask-task/getProgressByStockBillAndGridCode' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 获取最新的盘点单号
export function FetchNewBillNo(params) {
return request({
url: 'api/stocktask-task/getNewBillNo' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 获取目标最新层架位数量
export function FetchStockGirdNum(params) {
return request({
url: 'api/stocktask-task/getStockGirdNum' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 获取目标区域层架位总数量
export function FetchTotalGirdNum(params) {
return request({
url: 'api/stocktask-task/getTotalGirdNum' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 手动创建盘点任务
export function add(data) {
return request({
url: 'api/stocktask-task/createBill',
method: 'post',
data: data
})
}
// 获取目标可盘层架信息
export function FetchStockGirdSuccess(params) {
return request({
url: 'api/stocktask-task/getStockGirdSuccess' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
export default { del, FetchStopStockBill, FetchInitStockLogList, FetchInitStockLogDetails, FetchProgressByStockBillAndGridCode, FetchInitStockTaskDetails, FetchNewBillNo, FetchStockGirdNum, FetchTotalGirdNum, add, FetchStockGirdSuccess }

15
src/api/system/code.js

@ -0,0 +1,15 @@
import request from '@/utils/request'
export function resetEmail(data) {
return request({
url: 'api/code/resetEmail?email=' + data,
method: 'post'
})
}
export function updatePass(pass) {
return request({
url: 'api/users/updatePass/' + pass,
method: 'get'
})
}

87
src/api/system/dept.js

@ -0,0 +1,87 @@
import request from '@/utils/request'
export function getDepts(params) {
return request({
url: 'api/dept/initDeptInfo',
method: 'get',
params
})
}
export function getAssetDeptTree(params) {
return request({
url: 'api/asset/getAssetDeptTree',
method: 'get',
params
})
}
export function getInitDeptTree(params) {
return request({
url: 'api/dept/initDeptTree',
method: 'get',
params
})
}
// 同步部门
export function FetchSyncDepts(data) {
return request({
url: 'api/dept/syncDepts',
method: 'post',
data
})
}
// -----------------------------------------
export function getDeptSuperior(ids) {
const data = ids.length || ids.length === 0 ? ids : Array.of(ids)
return request({
url: 'api/dept/superior',
method: 'post',
data
})
}
export function add(data) {
return request({
url: 'api/depts/editDepts',
method: 'post',
data
})
}
export function del(data) {
return request({
url: 'api/depts/delDepts',
method: 'post',
data
})
}
export function edit(data) {
return request({
url: 'api/depts/editDepts',
method: 'post',
data
})
}
export function FetchUpdateDeptsStatus(data) {
return request({
url: '/api/depts/updateDeptsStatus',
method: 'post',
data
})
}
export function FetchSonDepts(params) {
return request({
url: '/api/depts/getSonDepts',
method: 'get',
params
})
}
export default { FetchSyncDepts, getDepts, getInitDeptTree, getAssetDeptTree, add, edit, del, getDeptSuperior, FetchUpdateDeptsStatus, FetchSonDepts }

69
src/api/system/dict.js

@ -0,0 +1,69 @@
import request from '@/utils/request'
export function FetchDictsList(params) {
return request({
url: 'api/dictionary/initDictionaryList',
method: 'get',
params
})
}
export function add(data) {
return request({
url: 'api/dictionary/editDictionary',
method: 'post',
data
})
}
export function del(data) {
return request({
url: 'api/dictionary/delDictionary',
method: 'post',
data
})
}
export function edit(data) {
return request({
url: 'api/dictionary/editDictionary',
method: 'post',
data
})
}
export function FetchDictionaryTree(params) {
return request({
url: 'api/dictionary/initDictionaryTree',
method: 'get',
params
})
}
export function FetchSonDictionaryList(params) {
return request({
url: 'api/dictionary/getSonDictionaryList',
method: 'get',
params
})
}
// 快速筛选
export function FetchDictionaryTreeByCategoryId(params) {
return request({
url: 'api/dictionary/getDictionaryTreeByCategoryId',
method: 'get',
params
})
}
// 根据父code查询子集
export function FetchSonDictionaryListByCode(params) {
return request({
url: '/api/dictionary/getSonDictionaryListByCode',
method: 'get',
params
})
}
export default { add, edit, del, FetchDictsList, FetchDictionaryTree, FetchSonDictionaryList, FetchDictionaryTreeByCategoryId, FetchSonDictionaryListByCode }

60
src/api/system/dictDetail.js

@ -0,0 +1,60 @@
import request from '@/utils/request'
export function FetchDictsList(params) {
return request({
url: 'api/dictionary/initDictionaryList',
method: 'get',
params
})
}
export function add(data) {
return request({
url: 'api/dictionary/editDictionary',
method: 'post',
data
})
}
export function del(data) {
return request({
url: 'api/dictionary/delDictionary',
method: 'post',
data
})
}
export function edit(data) {
return request({
url: 'api/dictionary/editDictionary',
method: 'post',
data
})
}
export function FetchDictionaryTree(params) {
return request({
url: 'api/dictionary/initDictionaryTree',
method: 'get',
params
})
}
export function FetchSonDictionaryList(params) {
return request({
url: 'api/dictionary/getSonDictionaryList',
method: 'get',
params
})
}
// 快速筛选
export function FetchDictionaryTreeByCategoryId(params) {
return request({
url: 'api/dictionary/getDictionaryTreeByCategoryId',
method: 'get',
params
})
}
export default { add, edit, del, FetchDictsList, FetchDictionaryTree, FetchSonDictionaryList, FetchDictionaryTreeByCategoryId }

83
src/api/system/fonds.js

@ -0,0 +1,83 @@
import request from '@/utils/request'
export function FetchInitFondsList(params) {
return request({
url: 'api/fonds/initFondsList',
method: 'get',
params
})
}
export function add(data) {
return request({
url: 'api/fonds/editFonds',
method: 'post',
data
})
}
export function edit(data) {
return request({
url: 'api/fonds/editFonds',
method: 'post',
data
})
}
export function del(data) {
return request({
url: 'api/fonds/delFonds',
method: 'post',
data
})
}
export function FetchUpdateFondsStatus(data) {
return request({
url: 'api/fonds/updateFondsStatus',
method: 'post',
data
})
}
export function FetchDownload(params) {
return request({
url: 'api/fonds/download',
method: 'get',
params
})
}
export function FetchFondsAll() {
return request({
url: 'api/fonds/getFondsAll',
method: 'get'
})
}
export function FetchFondsCategory(data) {
return request({
url: 'api/fonds/fondsCategory',
method: 'post',
data
})
}
export function FetchFondsDetail(params) {
return request({
url: 'api/fonds/getFondsDetail',
method: 'get',
params
})
}
// 根据门类和档案id获取显示全宗
export function FetchInitFondsByCategoryIdAndArchivesId(params) {
return request({
url: 'api/fonds/initFondsByCategoryIdAndArchivesId',
method: 'get',
params
})
}
export default { add, edit, del, FetchInitFondsList, FetchUpdateFondsStatus, FetchDownload, FetchFondsCategory, FetchFondsDetail, FetchInitFondsByCategoryIdAndArchivesId }

58
src/api/system/job.js

@ -0,0 +1,58 @@
import request from '@/utils/request'
export function getAllJob() {
const params = {
page: 0,
size: 9999,
enabled: true
}
return request({
url: 'api/posts/initPostList',
method: 'get',
params
})
}
export function add(data) {
return request({
url: 'api/posts/editPost',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/posts/delPosts',
method: 'post',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/posts/editPost',
method: 'post',
data
})
}
// 获取全部岗位
export function FetchPostAll(params) {
return request({
url: 'api/posts/getPostAll',
method: 'get',
params
})
}
// 根据岗位查询用户信息
export function FetchFindUserByPost(params) {
return request({
url: 'api/posts/findUserByPost',
method: 'get',
params
})
}
export default { add, edit, del, FetchPostAll, FetchFindUserByPost }

73
src/api/system/logs.js

@ -0,0 +1,73 @@
import request from '@/utils/request'
import qs from 'qs'
export function getErrDetail(id) {
return request({
url: 'api/log/getErrorLogDetail?id=' + id,
method: 'get'
})
}
// 清空登录日志
export function FetchClearLoginLog(data) {
return request({
url: '/api/log/clearLoginLog',
method: 'post',
data
})
}
// 清空操作日志
export function FetchClearLog(data) {
return request({
url: '/api/log/clearLog',
method: 'post',
data
})
}
// 清空报错日志
export function FetchClearErrorLog(data) {
return request({
url: '/api/log/clearErrorLog',
method: 'post',
data
})
}
// -------消息中心------
// 获取列表
export function getUserNotice(params) {
return request({
url: 'api/users/notice' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 标记已读
export function isread(data) {
return request({
url: 'api/users/isread',
method: 'put',
data
})
}
// 删除
export function userMsgDel(data) {
return request({
url: '/api/users/delnotice',
method: 'delete',
data
})
}
export default {
getErrDetail,
FetchClearLoginLog,
FetchClearLog,
FetchClearErrorLog,
getUserNotice,
isread,
userMsgDel
}

67
src/api/system/menu.js

@ -0,0 +1,67 @@
import request from '@/utils/request'
// 返回全部菜单
export function getMenusTree(pid) {
return request({
url: 'api/menu/lazy?pid=' + pid,
method: 'get'
})
}
export function getMenus(params) {
return request({
url: 'api/menu/initMenu',
method: 'get',
params
})
}
// 查询菜单:根据ID获取同级与上级数据
export function getMenuSuperior(ids) {
const data = Array.isArray(ids) || ids.length === 0 ? ids : Array.of(ids)
return request({
url: 'api/menu/superior',
method: 'post',
data
})
}
// 根据菜单ID返回所有子节点ID,包含自身ID
export function getChild(id) {
return request({
url: 'api/menu/child?id=' + id,
method: 'get'
})
}
export function buildMenus() {
return request({
url: 'api/menu/build',
method: 'get'
})
}
export function add(data) {
return request({
url: 'api/menu/editMenu',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/menu/deleteMenu',
method: 'post',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/menu/editMenu',
method: 'post',
data
})
}
export default { add, edit, del, getMenusTree, getMenuSuperior, getMenus, getChild }

30
src/api/system/new.js

@ -0,0 +1,30 @@
import request from '@/utils/request'
// 我的系统通知
export function FetchMySystemNotice(params) {
return request({
url: 'api/notice/mySystemNotice',
method: 'get',
params
})
}
// 通知详情
export function FetchInitNoticeDetails(data) {
return request({
url: 'api/notice/initNoticeDetails',
method: 'post',
data
})
}
// 全部已读
export function FetchReadedAll(data) {
return request({
url: 'api/notice/readedAll',
method: 'post',
data
})
}
export default { FetchMySystemNotice, FetchInitNoticeDetails, FetchReadedAll }

20
src/api/system/notify.js

@ -0,0 +1,20 @@
import request from '@/utils/request'
export function getNoticeList(params) {
return request({
url: 'api/notice/initNotice',
method: 'get',
params
})
}
// 发布
export function add(data) {
return request({
url: 'api/notice/create',
method: 'post',
data
})
}
export default { add, getNoticeList }

13
src/api/system/param.js

@ -0,0 +1,13 @@
import request from '@/utils/request'
export function verifyMaintenance(code) {
const params = {
code
}
return request({
url: 'api/dictionary/maintenanceVerification',
method: 'get',
params
})
}
export default { verifyMaintenance }

68
src/api/system/role.js

@ -0,0 +1,68 @@
import request from '@/utils/request'
// 获取所有的Role
export function getAll(params) {
return request({
url: 'api/role/initRoleList',
method: 'get',
params
})
}
export function add(data) {
return request({
url: 'api/role/editRole',
method: 'post',
data
})
}
export function edit(data) {
return request({
url: 'api/role/editRole',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/role/delRole',
method: 'post',
data: ids
})
}
export function editFonds(data) {
return request({
url: 'api/role/fonds',
method: 'put',
data
})
}
export function editMenu(data) {
return request({
url: 'api/role/menu',
method: 'post',
data
})
}
export function get(id) {
return request({
url: 'api/role/' + id,
method: 'get'
})
}
// ----------------------------------------
export function getLevel() {
return request({
url: 'api/roles/level',
method: 'get'
})
}
export default { add, edit, del, get, editMenu, editFonds }

39
src/api/system/sql.js

@ -0,0 +1,39 @@
import request from '@/utils/request'
// 备份数据库
export function add(data) {
return request({
url: 'api/database/backupSQL',
method: 'post',
data
})
}
// 获取备份数据库文件名
export function FetchBackupName(params) {
return request({
url: 'api/database/getBackupName',
method: 'get',
params
})
}
// 删除数据库备份
export function del(data) {
return request({
url: 'api/database/deleteDatabaseBackup',
method: 'post',
data
})
}
// 还原数据库
export function FetchrestoreDatabase(params) {
return request({
url: 'api/database/restoreDatabase',
method: 'get',
params
})
}
export default { add, FetchBackupName, del, FetchrestoreDatabase }

109
src/api/system/user.js

@ -0,0 +1,109 @@
import request from '@/utils/request'
import { encrypt } from '@/utils/rsaEncrypt'
import { getToken } from '@/utils/auth'
export function FetchInitUserList(params) {
return request({
url: 'api/user/initUserInfo',
method: 'get',
params
})
}
export function FetchSyncUser(data) {
return request({
url: 'api/user/syncUser',
method: 'post',
data
})
}
// 根据人员ID查询详情
export function FetchUserDetailsById(params) {
return request({
url: 'api/user/getUserDetailsById',
method: 'get',
params
})
}
export function add(data) {
return request({
url: 'api/user/editUser',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/user/deleteUser',
method: 'post',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/user/editUser',
method: 'post',
data
})
}
export function editUser(data) {
return request({
url: 'api/users/updateOwn',
method: 'put',
data
})
}
export function updatePass(user) {
const data = {
oldPass: encrypt(user.oldPass),
newPass: encrypt(user.newPass)
}
return request({
url: 'api/users/updatePass/',
method: 'post',
data
})
}
export function updateEmail(form) {
const data = {
password: encrypt(form.pass),
email: form.email
}
return request({
url: 'api/users/updateEmail/' + form.code,
method: 'post',
data
})
}
export function resetpassword(data) {
return request({
url: 'api/user/resetPassword',
method: 'post',
headers: {
Authorization: getToken()
},
data
})
}
export function FetchEditUserState(data) {
return request({
url: 'api/user/changeStatus',
method: 'post',
headers: {
Authorization: getToken()
},
data
})
}
export default { FetchSyncUser, FetchUserDetailsById, add, edit, del, resetpassword, FetchEditUserState, FetchInitUserList }

25
src/api/tools/alipay.js

@ -0,0 +1,25 @@
import request from '@/utils/request'
export function get() {
return request({
url: 'api/aliPay',
method: 'get'
})
}
export function update(data) {
return request({
url: 'api/aliPay',
data,
method: 'put'
})
}
// 支付
export function toAliPay(url, data) {
return request({
url: 'api/' + url,
data,
method: 'post'
})
}

24
src/api/tools/email.js

@ -0,0 +1,24 @@
import request from '@/utils/request'
export function get() {
return request({
url: 'api/email',
method: 'get'
})
}
export function update(data) {
return request({
url: 'api/email',
data,
method: 'put'
})
}
export function send(data) {
return request({
url: 'api/email',
data,
method: 'post'
})
}

27
src/api/tools/localStorage.js

@ -0,0 +1,27 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/localStorage',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/localStorage/',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/localStorage',
method: 'put',
data
})
}
export default { add, edit, del }

40
src/api/tools/qiniu.js

@ -0,0 +1,40 @@
import request from '@/utils/request'
export function get() {
return request({
url: 'api/qiNiuContent/config',
method: 'get'
})
}
export function update(data) {
return request({
url: 'api/qiNiuContent/config',
data,
method: 'put'
})
}
export function download(id) {
return request({
url: 'api/qiNiuContent/download/' + id,
method: 'get'
})
}
export function sync() {
return request({
url: 'api/qiNiuContent/synchronize',
method: 'post'
})
}
export function del(ids) {
return request({
url: 'api/qiNiuContent',
method: 'delete',
data: ids
})
}
export default { del, download, sync }

BIN
src/assets/401_images/401.gif

After

Width: 313  |  Height: 428  |  Size: 160 KiB

BIN
src/assets/404_images/404.png

After

Width: 1014  |  Height: 556  |  Size: 96 KiB

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

After

Width: 152  |  Height: 138  |  Size: 4.7 KiB

BIN
src/assets/fonts/锐字潮牌可变真言2.0.ttf

291
src/assets/iconfonts/iconfont.css

@ -0,0 +1,291 @@
@font-face {
font-family: "iconfont"; /* Project id 3409379 */
src: url('iconfont.woff2?t=1663406583019') format('woff2'),
url('iconfont.woff?t=1663406583019') format('woff'),
url('iconfont.ttf?t=1663406583019') format('truetype');
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-danganhezongliang:before {
content: "\e64a";
}
.icon-danganzongliang:before {
content: "\e64c";
}
.icon-zaijieshuliang:before {
content: "\e638";
}
.icon-zaikushuliang:before {
content: "\e649";
}
.icon-danganjieyue:before {
content: "\e636";
}
.icon-danganleixing:before {
content: "\e637";
}
.icon-quanbushebei:before {
content: "\e639";
}
.icon-lixianshebei:before {
content: "\e63a";
}
.icon-zaixianshebei:before {
content: "\e64b";
}
.icon-jiesuan-fanbai:before {
content: "\e648";
}
.icon-chuliyichang-fanbai:before {
content: "\e647";
}
.icon-fabu-fanbai:before {
content: "\e644";
}
.icon-biaojiyidu-fanbai:before {
content: "\e645";
}
.icon-shoudongchuli-fanbai:before {
content: "\e646";
}
.icon-zhenglishi:before {
content: "\e63c";
}
.icon-shebeizhuangtai:before {
content: "\e63d";
}
.icon-loushuijiance:before {
content: "\e63e";
}
.icon-loushuibaojing:before {
content: "\e63f";
}
.icon-loushuiweizhi:before {
content: "\e640";
}
.icon-weihubaojing:before {
content: "\e641";
}
.icon-kongqizhiliangshuju:before {
content: "\e642";
}
.icon-ganyingxianduanlie:before {
content: "\e643";
}
.icon-chuku-fanbai:before {
content: "\e63b";
}
.icon-a-3Dkufang:before {
content: "\e631";
}
.icon-baojingjilu:before {
content: "\e632";
}
.icon-menjinjilu:before {
content: "\e633";
}
.icon-tongzhigonggao:before {
content: "\e634";
}
.icon-xiaoxi:before {
content: "\e635";
}
.icon-bangdingcanshu-fanbai:before {
content: "\e61a";
}
.icon-chaihe-fanbai:before {
content: "\e61b";
}
.icon-bangding-fanbai:before {
content: "\e61c";
}
.icon-fenjuanzhuanghe-fanbai:before {
content: "\e61d";
}
.icon-jiechubangding-fanbai:before {
content: "\e61e";
}
.icon-chehui-fanbai:before {
content: "\e61f";
}
.icon-daochu-fanbai:before {
content: "\e620";
}
.icon-dengji-fanbai:before {
content: "\e621";
}
.icon-tishichenggong:before {
content: "\e622";
}
.icon-xiazai-fanbai:before {
content: "\e623";
}
.icon-jieyue-fanbai:before {
content: "\e624";
}
.icon-tishijinggao:before {
content: "\e625";
}
.icon-shuaxin:before {
content: "\e626";
}
.icon-guihuan-fanbai:before {
content: "\e627";
}
.icon-yichu-fanbai:before {
content: "\e628";
}
.icon-shangchuanfujian-fanbai:before {
content: "\e629";
}
.icon-ruku-fanbai:before {
content: "\e62a";
}
.icon-jiechu-fanbai:before {
content: "\e62b";
}
.icon-xinzengpandian-fanbai:before {
content: "\e62c";
}
.icon-huanyuan-fanbai:before {
content: "\e62d";
}
.icon-fujian:before {
content: "\e62e";
}
.icon-zhuanghe--fanbai:before {
content: "\e62f";
}
.icon-bangdingshebei-fanbai:before {
content: "\e630";
}
.icon-weibiaoti-2:before {
content: "\e619";
}
.icon-paixu-fanbai:before {
content: "\e618";
}
.icon-rili:before {
content: "\e617";
}
.icon-yonghuyouxiang-fanbai:before {
content: "\e616";
}
.icon-shoujihaoma-fanbai:before {
content: "\e615";
}
.icon-yonghunicheng-fanbai:before {
content: "\e614";
}
.icon-anquanshezhi-fanbai:before {
content: "\e613";
}
.icon-dengluzhanghao-fanbai:before {
content: "\e612";
}
.icon-suoshubumen-fanbai:before {
content: "\e611";
}
.icon-zhuangtai-fanbai:before {
content: "\e610";
}
.icon-a-zu33:before {
content: "\e60d";
}
.icon-a-lujing259:before {
content: "\e60c";
}
.icon-shouye5:before {
content: "\e60b";
}
.icon-shouye4:before {
content: "\e60a";
}
.icon-shouye3:before {
content: "\e609";
}
.icon-shouye2:before {
content: "\e608";
}
.icon-shouye1:before {
content: "\e607";
}
.icon-shouye:before {
content: "\e605";
}

1
src/assets/iconfonts/iconfont.js
File diff suppressed because it is too large
View File

492
src/assets/iconfonts/iconfont.json

@ -0,0 +1,492 @@
{
"id": "3409379",
"name": "库房综合管理系统",
"font_family": "iconfont",
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "31883356",
"name": "档案盒总量",
"font_class": "danganhezongliang",
"unicode": "e64a",
"unicode_decimal": 58954
},
{
"icon_id": "31883360",
"name": "档案总量",
"font_class": "danganzongliang",
"unicode": "e64c",
"unicode_decimal": 58956
},
{
"icon_id": "31883346",
"name": "在借数量",
"font_class": "zaijieshuliang",
"unicode": "e638",
"unicode_decimal": 58936
},
{
"icon_id": "31883347",
"name": "在库数量",
"font_class": "zaikushuliang",
"unicode": "e649",
"unicode_decimal": 58953
},
{
"icon_id": "31873467",
"name": "档案借阅",
"font_class": "danganjieyue",
"unicode": "e636",
"unicode_decimal": 58934
},
{
"icon_id": "31873468",
"name": "档案类型",
"font_class": "danganleixing",
"unicode": "e637",
"unicode_decimal": 58935
},
{
"icon_id": "31873470",
"name": "全部设备",
"font_class": "quanbushebei",
"unicode": "e639",
"unicode_decimal": 58937
},
{
"icon_id": "31873471",
"name": "离线设备",
"font_class": "lixianshebei",
"unicode": "e63a",
"unicode_decimal": 58938
},
{
"icon_id": "31873474",
"name": "在线设备",
"font_class": "zaixianshebei",
"unicode": "e64b",
"unicode_decimal": 58955
},
{
"icon_id": "31085501",
"name": "结算-反白",
"font_class": "jiesuan-fanbai",
"unicode": "e648",
"unicode_decimal": 58952
},
{
"icon_id": "31064921",
"name": "处理异常-反白",
"font_class": "chuliyichang-fanbai",
"unicode": "e647",
"unicode_decimal": 58951
},
{
"icon_id": "30765497",
"name": "发布-反白",
"font_class": "fabu-fanbai",
"unicode": "e644",
"unicode_decimal": 58948
},
{
"icon_id": "30765498",
"name": "标记已读-反白",
"font_class": "biaojiyidu-fanbai",
"unicode": "e645",
"unicode_decimal": 58949
},
{
"icon_id": "30765499",
"name": "手动处理-反白",
"font_class": "shoudongchuli-fanbai",
"unicode": "e646",
"unicode_decimal": 58950
},
{
"icon_id": "30660167",
"name": "整理室",
"font_class": "zhenglishi",
"unicode": "e63c",
"unicode_decimal": 58940
},
{
"icon_id": "30660168",
"name": "设备状态",
"font_class": "shebeizhuangtai",
"unicode": "e63d",
"unicode_decimal": 58941
},
{
"icon_id": "30660169",
"name": "漏水检测",
"font_class": "loushuijiance",
"unicode": "e63e",
"unicode_decimal": 58942
},
{
"icon_id": "30660170",
"name": "漏水报警",
"font_class": "loushuibaojing",
"unicode": "e63f",
"unicode_decimal": 58943
},
{
"icon_id": "30660171",
"name": "漏水位置",
"font_class": "loushuiweizhi",
"unicode": "e640",
"unicode_decimal": 58944
},
{
"icon_id": "30660173",
"name": "维护报警",
"font_class": "weihubaojing",
"unicode": "e641",
"unicode_decimal": 58945
},
{
"icon_id": "30660174",
"name": "空气质量数据",
"font_class": "kongqizhiliangshuju",
"unicode": "e642",
"unicode_decimal": 58946
},
{
"icon_id": "30660264",
"name": "感应线断裂",
"font_class": "ganyingxianduanlie",
"unicode": "e643",
"unicode_decimal": 58947
},
{
"icon_id": "30627119",
"name": "出库-反白",
"font_class": "chuku-fanbai",
"unicode": "e63b",
"unicode_decimal": 58939
},
{
"icon_id": "30256922",
"name": "3D库房",
"font_class": "a-3Dkufang",
"unicode": "e631",
"unicode_decimal": 58929
},
{
"icon_id": "30256923",
"name": "报警记录",
"font_class": "baojingjilu",
"unicode": "e632",
"unicode_decimal": 58930
},
{
"icon_id": "30256924",
"name": "门禁记录",
"font_class": "menjinjilu",
"unicode": "e633",
"unicode_decimal": 58931
},
{
"icon_id": "30256925",
"name": "通知公告",
"font_class": "tongzhigonggao",
"unicode": "e634",
"unicode_decimal": 58932
},
{
"icon_id": "30256926",
"name": "消息",
"font_class": "xiaoxi",
"unicode": "e635",
"unicode_decimal": 58933
},
{
"icon_id": "30256625",
"name": "绑定参数-反白",
"font_class": "bangdingcanshu-fanbai",
"unicode": "e61a",
"unicode_decimal": 58906
},
{
"icon_id": "30256626",
"name": "拆盒-反白",
"font_class": "chaihe-fanbai",
"unicode": "e61b",
"unicode_decimal": 58907
},
{
"icon_id": "30256627",
"name": "绑定参数-反白",
"font_class": "bangding-fanbai",
"unicode": "e61c",
"unicode_decimal": 58908
},
{
"icon_id": "30256628",
"name": "分卷装盒-反白",
"font_class": "fenjuanzhuanghe-fanbai",
"unicode": "e61d",
"unicode_decimal": 58909
},
{
"icon_id": "30256629",
"name": "解除绑定-反白",
"font_class": "jiechubangding-fanbai",
"unicode": "e61e",
"unicode_decimal": 58910
},
{
"icon_id": "30256630",
"name": "撤回-反白",
"font_class": "chehui-fanbai",
"unicode": "e61f",
"unicode_decimal": 58911
},
{
"icon_id": "30256631",
"name": "导出-反白",
"font_class": "daochu-fanbai",
"unicode": "e620",
"unicode_decimal": 58912
},
{
"icon_id": "30256632",
"name": "登记-反白",
"font_class": "dengji-fanbai",
"unicode": "e621",
"unicode_decimal": 58913
},
{
"icon_id": "30256633",
"name": "提示成功",
"font_class": "tishichenggong",
"unicode": "e622",
"unicode_decimal": 58914
},
{
"icon_id": "30256634",
"name": "下载-反白",
"font_class": "xiazai-fanbai",
"unicode": "e623",
"unicode_decimal": 58915
},
{
"icon_id": "30256635",
"name": "借阅-反白",
"font_class": "jieyue-fanbai",
"unicode": "e624",
"unicode_decimal": 58916
},
{
"icon_id": "30256636",
"name": "提示警告",
"font_class": "tishijinggao",
"unicode": "e625",
"unicode_decimal": 58917
},
{
"icon_id": "30256637",
"name": "刷新",
"font_class": "shuaxin",
"unicode": "e626",
"unicode_decimal": 58918
},
{
"icon_id": "30256638",
"name": "归还-反白",
"font_class": "guihuan-fanbai",
"unicode": "e627",
"unicode_decimal": 58919
},
{
"icon_id": "30256639",
"name": "移出-反白",
"font_class": "yichu-fanbai",
"unicode": "e628",
"unicode_decimal": 58920
},
{
"icon_id": "30256640",
"name": "上传附件-反白",
"font_class": "shangchuanfujian-fanbai",
"unicode": "e629",
"unicode_decimal": 58921
},
{
"icon_id": "30256641",
"name": "入库-反白",
"font_class": "ruku-fanbai",
"unicode": "e62a",
"unicode_decimal": 58922
},
{
"icon_id": "30256642",
"name": "借出-反白",
"font_class": "jiechu-fanbai",
"unicode": "e62b",
"unicode_decimal": 58923
},
{
"icon_id": "30256643",
"name": "新增盘点-反白",
"font_class": "xinzengpandian-fanbai",
"unicode": "e62c",
"unicode_decimal": 58924
},
{
"icon_id": "30256644",
"name": "还原-反白",
"font_class": "huanyuan-fanbai",
"unicode": "e62d",
"unicode_decimal": 58925
},
{
"icon_id": "30256645",
"name": "附件",
"font_class": "fujian",
"unicode": "e62e",
"unicode_decimal": 58926
},
{
"icon_id": "30256646",
"name": "装盒--反白",
"font_class": "zhuanghe--fanbai",
"unicode": "e62f",
"unicode_decimal": 58927
},
{
"icon_id": "30256647",
"name": "绑定设备-反白",
"font_class": "bangdingshebei-fanbai",
"unicode": "e630",
"unicode_decimal": 58928
},
{
"icon_id": "30032164",
"name": "更多",
"font_class": "weibiaoti-2",
"unicode": "e619",
"unicode_decimal": 58905
},
{
"icon_id": "30000502",
"name": "排序-反白",
"font_class": "paixu-fanbai",
"unicode": "e618",
"unicode_decimal": 58904
},
{
"icon_id": "30000487",
"name": "日历",
"font_class": "rili",
"unicode": "e617",
"unicode_decimal": 58903
},
{
"icon_id": "29943155",
"name": "用户邮箱-反白",
"font_class": "yonghuyouxiang-fanbai",
"unicode": "e616",
"unicode_decimal": 58902
},
{
"icon_id": "29943067",
"name": "手机号码-反白",
"font_class": "shoujihaoma-fanbai",
"unicode": "e615",
"unicode_decimal": 58901
},
{
"icon_id": "29943063",
"name": "用户昵称-反白",
"font_class": "yonghunicheng-fanbai",
"unicode": "e614",
"unicode_decimal": 58900
},
{
"icon_id": "29943055",
"name": "安全设置-反白",
"font_class": "anquanshezhi-fanbai",
"unicode": "e613",
"unicode_decimal": 58899
},
{
"icon_id": "29942791",
"name": "登录账号-反白",
"font_class": "dengluzhanghao-fanbai",
"unicode": "e612",
"unicode_decimal": 58898
},
{
"icon_id": "29942549",
"name": "所属部门-反白",
"font_class": "suoshubumen-fanbai",
"unicode": "e611",
"unicode_decimal": 58897
},
{
"icon_id": "29932079",
"name": "状态-反白",
"font_class": "zhuangtai-fanbai",
"unicode": "e610",
"unicode_decimal": 58896
},
{
"icon_id": "29795508",
"name": "定位",
"font_class": "a-zu33",
"unicode": "e60d",
"unicode_decimal": 58893
},
{
"icon_id": "29794660",
"name": "关闭",
"font_class": "a-lujing259",
"unicode": "e60c",
"unicode_decimal": 58892
},
{
"icon_id": "29794633",
"name": "系统管理",
"font_class": "shouye5",
"unicode": "e60b",
"unicode_decimal": 58891
},
{
"icon_id": "29794580",
"name": "档案配置",
"font_class": "shouye4",
"unicode": "e60a",
"unicode_decimal": 58890
},
{
"icon_id": "29794435",
"name": "库房管理",
"font_class": "shouye3",
"unicode": "e609",
"unicode_decimal": 58889
},
{
"icon_id": "29794316",
"name": "门类管理",
"font_class": "shouye2",
"unicode": "e608",
"unicode_decimal": 58888
},
{
"icon_id": "29794182",
"name": "档案管理",
"font_class": "shouye1",
"unicode": "e607",
"unicode_decimal": 58887
},
{
"icon_id": "29793951",
"name": "首页",
"font_class": "shouye",
"unicode": "e605",
"unicode_decimal": 58885
}
]
}

BIN
src/assets/iconfonts/iconfont.ttf

BIN
src/assets/iconfonts/iconfont.woff

BIN
src/assets/iconfonts/iconfont.woff2

751
src/assets/iconfonts/light/iconfont.css

@ -0,0 +1,751 @@
@font-face {
font-family: "iconfont"; /* Project id 3966148 */
src: url('iconfont.woff2?t=1776390500333') format('woff2'),
url('iconfont.woff?t=1776390500333') format('woff'),
url('iconfont.ttf?t=1776390500333') format('truetype');
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-cangku:before {
content: "\e927";
}
.icon-baojingjilu:before {
content: "\e6a8";
}
.icon-yitiji:before {
content: "\e6a2";
}
.icon-kufangguanli:before {
content: "\e6a3";
}
.icon-renlianshibiejiqi:before {
content: "\e759";
}
.icon-wangluoshexiangtou:before {
content: "\e754";
}
.icon-Dkufang:before {
content: "\e6a4";
}
.icon-rfidduxieqi:before {
content: "\e879";
}
.icon-shouchipandianyi:before {
content: "\e6a5";
}
.icon-zhinengyitiji:before {
content: "\e6a6";
}
.icon-a-3D-xidingtanceqi:before {
content: "\e6b7";
}
.icon-saomiao:before {
content: "\e6a7";
}
.icon-mimachakan:before {
content: "\e6a1";
}
.icon-d:before {
content: "\e6a0";
}
.icon-yooxi:before {
content: "\e69d";
}
.icon-heimingdan:before {
content: "\e69f";
}
.icon-caidan:before {
content: "\e69c";
}
.icon-lanmu1:before {
content: "\e69e";
}
.icon-yuzhuceqiye:before {
content: "\e69a";
}
.icon-yonghuzhuce:before {
content: "\e69b";
}
.icon-shenfen:before {
content: "\e698";
}
.icon-shenfenshimingrenzheng:before {
content: "\e699";
}
.icon-fuzhichenggong1:before {
content: "\e696";
}
.icon-fuzhi:before {
content: "\ec7a";
}
.icon-jiantou-sanjiao-shang:before {
content: "\e697";
}
.icon-tuoguanhetong:before {
content: "\e694";
}
.icon-weituo:before {
content: "\e695";
}
.icon-yijiantiquwenzi:before {
content: "\e692";
}
.icon-fasong-jiantou:before {
content: "\e9d6";
}
.icon-wenjianjiexi:before {
content: "\e82f";
}
.icon-shendusikao:before {
content: "\e876";
}
.icon-zhongduanjiankong:before {
content: "\e691";
}
.icon-lianjieduankai:before {
content: "\e600";
}
.icon-stop:before {
content: "\e714";
}
.icon-zhuangtai1:before {
content: "\e690";
}
.icon-zhuangtai2:before {
content: "\e6bc";
}
.icon-biaoqian:before {
content: "\e693";
}
.icon-_biaoqian-:before {
content: "\e68f";
}
.icon-shuju:before {
content: "\e68e";
}
.icon-duolouceng:before {
content: "\e87c";
}
.icon-shujia:before {
content: "\e68c";
}
.icon-hangzhengquyuguanli:before {
content: "\e68d";
}
.icon-quyu1:before {
content: "\e68b";
}
.icon-gongsi:before {
content: "\e689";
}
.icon-louceng:before {
content: "\e68a";
}
.icon-wodeshujia:before {
content: "\e688";
}
.icon-ceshi:before {
content: "\e687";
}
.icon-yuanchengkongzhi:before {
content: "\e7d4";
}
.icon-attachment:before {
content: "\e6a9";
}
.icon-zhuti:before {
content: "\e686";
}
.icon-gengduo:before {
content: "\e670";
}
.icon-huoqu:before {
content: "\e674";
}
.icon-dayin:before {
content: "\e67b";
}
.icon-guaqi:before {
content: "\e67c";
}
.icon-dangantongji:before {
content: "\e685";
}
.icon-sulan:before {
content: "\e63b";
}
.icon-jiesuan:before {
content: "\e649";
}
.icon-rengongqueren:before {
content: "\e659";
}
.icon-shengchengpandiandan:before {
content: "\e663";
}
.icon-yijiao:before {
content: "\e669";
}
.icon-shanchu1:before {
content: "\e66f";
}
.icon-jiarujieyueche:before {
content: "\e67d";
}
.icon-liuchengfaqi:before {
content: "\e67e";
}
.icon-cuowu1:before {
content: "\e67f";
}
.icon-danganliyong:before {
content: "\e680";
}
.icon-fou:before {
content: "\e681";
}
.icon-shi:before {
content: "\e682";
}
.icon-dengdai:before {
content: "\e683";
}
.icon-jieyueche-ding:before {
content: "\e684";
}
.icon-ruku:before {
content: "\e671";
}
.icon-yulan:before {
content: "\e672";
}
.icon-chuku:before {
content: "\e673";
}
.icon-mijijia:before {
content: "\e675";
}
.icon-shuaxin:before {
content: "\e676";
}
.icon-bangding:before {
content: "\e677";
}
.icon-quyu:before {
content: "\e678";
}
.icon-shebei:before {
content: "\e679";
}
.icon-danganbaoguan-fanbai:before {
content: "\e67a";
}
.icon-kufang:before {
content: "\e667";
}
.icon-chaihe:before {
content: "\e668";
}
.icon-zishebeiguanli:before {
content: "\e66a";
}
.icon-zidonggengxin:before {
content: "\e66b";
}
.icon-jiebang:before {
content: "\e66c";
}
.icon-you-fanbai:before {
content: "\e66d";
}
.icon-zuo-fanbai:before {
content: "\e66e";
}
.icon-duqu:before {
content: "\e664";
}
.icon-chexiao:before {
content: "\e665";
}
.icon-zhuanghe:before {
content: "\e666";
}
.icon-danganguanli-fanbai:before {
content: "\e662";
}
.icon-gengduo2:before {
content: "\e661";
}
.icon-gengduo1:before {
content: "\e660";
}
.icon-wancheng:before {
content: "\e65f";
}
.icon-zhengque:before {
content: "\e653";
}
.icon-cuowu:before {
content: "\e654";
}
.icon-huifu:before {
content: "\e655";
}
.icon-dian2:before {
content: "\e656";
}
.icon-dian:before {
content: "\e657";
}
.icon-shangchuanchenggong:before {
content: "\e658";
}
.icon-shangchuanshibai:before {
content: "\e65a";
}
.icon-xiaowenjian:before {
content: "\e65b";
}
.icon-bendiguajie:before {
content: "\e65c";
}
.icon-zhongxinjiance:before {
content: "\e65d";
}
.icon-tianjiawenjian:before {
content: "\e65e";
}
.icon-shangchuan2:before {
content: "\e650";
}
.icon-a-1:before {
content: "\e64f";
}
.icon-a-2:before {
content: "\e651";
}
.icon-xiazai:before {
content: "\e652";
}
.icon-zhengli:before {
content: "\e64e";
}
.icon-changgui:before {
content: "\e64d";
}
.icon-yuguidangku:before {
content: "\e64b";
}
.icon-shoujizhengbian:before {
content: "\e64c";
}
.icon-yidong:before {
content: "\e645";
}
.icon-piliangchengjian:before {
content: "\e646";
}
.icon-hebingchengjian:before {
content: "\e647";
}
.icon-danganfenlei:before {
content: "\e648";
}
.icon-fenlei:before {
content: "\e64a";
}
.icon-tupianyulan:before {
content: "\e644";
}
.icon-fabu:before {
content: "\e643";
}
.icon-jihuo:before {
content: "\e63d";
}
.icon-xiala-shouqi:before {
content: "\e63e";
}
.icon-xiala-chakanxinxi:before {
content: "\e63f";
}
.icon-chakan:before {
content: "\e640";
}
.icon-jiazaigengduo:before {
content: "\e641";
}
.icon-quanbuyidu:before {
content: "\e642";
}
.icon-shangchuan:before {
content: "\e62b";
}
.icon-yonghuyouxiang:before {
content: "\e635";
}
.icon-yonghuming:before {
content: "\e636";
}
.icon-suoshubumen:before {
content: "\e637";
}
.icon-suoshuquanzong:before {
content: "\e638";
}
.icon-shoujihaoma:before {
content: "\e639";
}
.icon-yonghujiaose:before {
content: "\e63a";
}
.icon-xingbie:before {
content: "\e63c";
}
.icon-dianzibiao:before {
content: "\e623";
}
.icon-yonghuguanli:before {
content: "\e624";
}
.icon-danganjieshou:before {
content: "\e625";
}
.icon-xitongshezhi2:before {
content: "\e626";
}
.icon-danganguanli:before {
content: "\e627";
}
.icon-yucundangguanli:before {
content: "\e628";
}
.icon-paixu-xia:before {
content: "\e629";
}
.icon-paixu-caozuo:before {
content: "\e62a";
}
.icon-paixu-shang:before {
content: "\e62c";
}
.icon-xinzeng:before {
content: "\e62d";
}
.icon-bianji:before {
content: "\e62e";
}
.icon-shezhi:before {
content: "\e62f";
}
.icon-kuaisushezhi:before {
content: "\e630";
}
.icon-shanchu:before {
content: "\e631";
}
.icon-paixu:before {
content: "\e632";
}
.icon-daochu:before {
content: "\e633";
}
.icon-zhongzhi2:before {
content: "\e634";
}
.icon-rili:before {
content: "\e604";
}
.icon-shouye:before {
content: "\e605";
}
.icon-xitongshezhi:before {
content: "\e606";
}
.icon-shouqi:before {
content: "\e607";
}
.icon-xiala-fanbai:before {
content: "\e608";
}
.icon-xiala:before {
content: "\e609";
}
.icon-zhuangtai:before {
content: "\e60a";
}
.icon-xiaoxi:before {
content: "\e60b";
}
.icon-zhongzhi:before {
content: "\e60c";
}
.icon-xiala-xia:before {
content: "\e60d";
}
.icon-xiala-you:before {
content: "\e60e";
}
.icon-xiala-shang:before {
content: "\e60f";
}
.icon-kuangxuan-jinyong2:before {
content: "\e610";
}
.icon-kuangxuan-xuanze:before {
content: "\e611";
}
.icon-kuangxuan-moren:before {
content: "\e612";
}
.icon-kuangxuan-jinyong1:before {
content: "\e613";
}
.icon-weizhi-copy:before {
content: "\e7d5";
}
.icon-xuanzhong:before {
content: "\e614";
}
.icon-weixuan:before {
content: "\e615";
}
.icon-sousuo:before {
content: "\e616";
}
.icon-guan:before {
content: "\e617";
}
.icon-kai:before {
content: "\e618";
}
.icon-weizhi:before {
content: "\e619";
}
.icon-biaoji:before {
content: "\e61a";
}
.icon-guanbixiao:before {
content: "\e61b";
}
.icon-guanbi:before {
content: "\e61c";
}
.icon-zhuyi-hong:before {
content: "\e61d";
}
.icon-zhuyi-lan:before {
content: "\e61e";
}
.icon-zhuyi-hong-xiao:before {
content: "\e61f";
}
.icon-wenjian-xiao:before {
content: "\e620";
}
.icon-wenjian-da:before {
content: "\e621";
}
.icon-dangan:before {
content: "\e622";
}
.icon-yanzhengma:before {
content: "\e602";
}
.icon-mima:before {
content: "\e603";
}
.icon-zhanghao:before {
content: "\e601";
}

1
src/assets/iconfonts/light/iconfont.js
File diff suppressed because it is too large
View File

1297
src/assets/iconfonts/light/iconfont.json
File diff suppressed because it is too large
View File

BIN
src/assets/iconfonts/light/iconfont.ttf

BIN
src/assets/iconfonts/light/iconfont.woff

BIN
src/assets/iconfonts/light/iconfont.woff2

1
src/assets/icons/iconfont.js
File diff suppressed because it is too large
View File

9
src/assets/icons/index.js

@ -0,0 +1,9 @@
import Vue from 'vue'
import SvgIcon from '@/components/SvgIcon'// svg component
// register globally
Vue.component('svg-icon', SvgIcon)
const req = require.context('./svg', false, /\.svg$/)
const requireAll = requireContext => requireContext.keys().map(requireContext)
requireAll(req)

1
src/assets/icons/svg/Steve-Jobs.svg
File diff suppressed because it is too large
View File

18
src/assets/icons/svg/alerm.svg

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1024 1022.1" style="enable-background:new 0 0 1024 1022.1;" xml:space="preserve">
<style type="text/css">
.st0{fill:#F65163;}
</style>
<path id="报警记录" class="st0" d="M247.2,520.4V727h546.6V505.5C786.9,354.5,658.9,237.8,508,244.7
c-141.2,6.5-254.3,119.5-260.7,260.7V520.4z M799.3,314l124.5-89.5c9.9-6.5,12.7-19.7,6.2-29.6c-6.5-9.9-19.7-12.7-29.6-6.2
c-0.3,0.2-0.5,0.3-0.7,0.5l-124.5,89.5c-9.6,6.9-11.8,20.2-5,29.9C776.9,317.9,789.7,320.3,799.3,314z M152.4,870v50.2h736.2v-48.3
c-0.1-43.2-35.1-78.1-78.3-78.3H232.1c-42.1-2-77.8,30.5-79.9,72.6c-0.1,1.2-0.1,2.4-0.1,3.7L152.4,870z M520.5,193.3
c11.3-0.1,20.3-9.2,20.4-20.4V20.3c0-11.3-9.1-20.5-20.4-20.5C509.2-0.2,500,9,500,20.2c0,0,0,0,0,0.1v152.4
c0.1,11.3,9.2,20.3,20.4,20.4L520.5,193.3z M241.5,321.4c9,7.4,22.3,6.1,29.7-2.9c7.1-8.6,6.3-21.2-1.8-28.8l-117.1-98.5
c-8.5-8-21.8-7.6-29.8,0.9c-8,8.5-7.6,21.8,0.9,29.8c0.3,0.3,0.7,0.6,1,0.9L241.5,321.4z M193.2,542.7c-0.1-11.3-9.2-20.3-20.4-20.4
H20.4C9.1,522.2,0,531.4,0,542.7c0,11.3,9.1,20.4,20.4,20.4h152.4c11.3-0.1,20.4-9.2,20.5-20.4H193.2z M103.8,921.9h836.9v100.4
H104.1L103.8,921.9z M1003.5,522.2H851.1c-11.3,0-20.4,9.2-20.4,20.5c0,11.3,9.1,20.4,20.4,20.4h152.4c11.3,0,20.5-9.1,20.5-20.4
C1024,531.4,1014.9,522.2,1003.5,522.2C1003.6,522.2,1003.5,522.2,1003.5,522.2z"/>
</svg>

1
src/assets/icons/svg/alipay.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" class="icon" p-id="1468" t="1546239206365" version="1.1" viewBox="0 0 1024 1024"><defs><style type="text/css"/></defs><path d="M907 378.05l-12.4-14.33c-61-70.41-166.93-177.81-236.2-239.4l-14.12-12.58C609.07 80.37 562.07 63.09 512 63.09s-97.08 17.28-132.32 48.65l-14.12 12.57c-69.28 61.61-175.24 169-236.2 239.41l-12.41 14.33c-63.92 73.87-63.92 194 0 267.87l12.41 14.33C190.24 730.6 296.2 838 365.54 899.69l14.14 12.57c35.24 31.37 82.23 48.65 132.32 48.65s97.06-17.28 132.32-48.65l14.13-12.57 8.15-7.25c21.93-19.46 31.93-28.35 62.69-58.93l7.27-7.36-1.16-1.22a28.35 28.35 0 0 0-45.87-32.14c-2.92 2.78-43.63 41.53-68.73 63.91l-14.1 12.56c-24.89 22.1-58.53 34.28-94.7 34.28s-69.82-12.19-94.69-34.31l-14.14-12.58c-67.85-60.34-171.47-165.38-231-234.14l-12.4-14.32c-21.73-25.12-33.7-59.29-33.7-96.2s12-71.07 33.7-96.17l12.41-14.33c59.5-68.75 163.12-173.79 231-234.15l14.1-12.57c24.86-22.12 58.49-34.31 94.68-34.31s69.83 12.19 94.7 34.3l14.12 12.58c67.86 60.37 171.49 165.41 231 234.14l12.39 14.34c45.22 52.21 45.34 143.76 0.26 192.07l-7.15 7.69c-20.35 21.94-32.64 35.19-45.62 39.1-12.3 3.71-27.89-0.23-57.53-14.54-49.55-23.94-119.64-64-144-78 9.87-19.61 32.46-67.6 43.11-115.62l2.86-12.87H534.5v-15.06h154.78v-57.37H534.5v-72.41h-56.89v72.41H322.83v57.37h154.78v15.05H358.54V491H573c-4.63 14.52-13.16 32.57-19.19 44.37-22.13-8.73-80.75-29.33-141-29.33-37.94 0-69.92 10.28-92.49 29.71-22.37 19.27-34.19 46-34.19 77.42s11.32 58.29 32.75 77.74c21.9 19.89 53 30.41 90 30.41 42.76 0 87.09-19 128.18-54.78a326.76 326.76 0 0 0 43.61-46.35c22.9 12.75 90 50 152.61 83.47 40.83 21.85 69.5 26.18 95.87 14.47 25.09-11.14 47.07-36.53 77.49-71.68l0.47-0.54C971 572.07 971 451.9 907 378.05zM407.83 662c-60.15 0-64.83-37.38-64.83-48.82a48.21 48.21 0 0 1 12.15-31.36c11.06-12.2 28.45-18.39 51.69-18.39 50 0 95 17.21 115.39 26.35C503.71 611.69 456 662 407.83 662z" p-id="1469"/></svg>

1
src/assets/icons/svg/anq.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" class="icon" p-id="6244" t="1553935360914" version="1.1" viewBox="0 0 1024 1024"><defs><style type="text/css"/></defs><path d="M957.217391 86.372174C957.217391 86.372174 957.217391 608.211478 957.217391 608.211478 957.217391 639.510261 949.782261 670.630957 934.956522 701.573565 920.086261 732.605217 900.674783 762.568348 876.633043 791.685565 852.591304 820.758261 825.121391 848.317217 794.267826 874.273391 763.369739 900.274087 732.070957 923.425391 700.326957 943.727304 668.538435 964.073739 637.68487 980.992 607.721739 994.437565 577.758609 1007.88313 551.490783 1017.09913 528.918261 1022.130087 528.918261 1022.130087 518.233043 1024 518.233043 1024 518.233043 1024 508.438261 1022.130087 508.438261 1022.130087 485.286957 1017.09913 458.440348 1007.88313 427.853913 994.437565 397.267478 980.992 365.523478 964.073739 332.577391 943.727304 299.631304 923.425391 267.308522 900.274087 235.52 874.273391 203.776 848.317217 175.415652 820.758261 150.483478 791.685565 125.551304 762.568348 105.382957 732.605217 89.978435 701.573565 74.48487 670.630957 66.782609 639.510261 66.782609 608.211478 66.782609 608.211478 66.782609 86.372174 66.782609 86.372174 66.782609 86.372174 103.290435 80.717913 103.290435 80.717913 103.290435 80.717913 512.890435 0 512.890435 0 512.890435 0 930.504348 80.717913 930.504348 80.717913 930.504348 80.717913 957.217391 86.372174 957.217391 86.372174 957.217391 86.372174 957.217391 86.372174 957.217391 86.372174ZM513.024 75.553391C513.024 75.553391 508.082087 74.529391 508.082087 74.529391 508.082087 74.529391 156.538435 137.527652 156.538435 137.527652 156.538435 137.527652 156.538435 466.765913 156.538435 466.765913 156.538435 466.765913 513.024 466.765913 513.024 466.765913 513.024 466.765913 513.024 75.553391 513.024 75.553391 513.024 75.553391 513.024 75.553391 513.024 75.553391ZM867.461565 466.765913C867.461565 466.765913 513.024 466.765913 513.024 466.765913 513.024 466.765913 513.024 935.401739 513.024 935.401739 535.81913 929.881043 560.617739 921.466435 587.419826 910.113391 614.177391 898.760348 640.623304 885.359304 666.713043 869.865739 692.847304 854.372174 717.957565 837.186783 742.13287 818.265043 766.308174 799.343304 787.634087 778.99687 806.288696 757.314783 824.898783 735.677217 839.724522 713.149217 850.810435 689.730783 861.94087 666.35687 867.461565 642.582261 867.461565 618.496 867.461565 618.496 867.461565 466.765913 867.461565 466.765913 867.461565 466.765913 867.461565 466.765913 867.461565 466.765913Z" p-id="6245"/></svg>

1
src/assets/icons/svg/app.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1574649142168" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1910" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M468.693333 16.725333a85.333333 85.333333 0 0 1 82.56 0l381.952 211.072a85.333333 85.333333 0 0 1 44.074667 74.666667v419.029333a85.333333 85.333333 0 0 1-44.074667 74.666667l-381.952 211.114667a85.333333 85.333333 0 0 1-82.56 0l-381.952-211.072A85.333333 85.333333 0 0 1 42.666667 721.493333V302.506667a85.333333 85.333333 0 0 1 44.074666-74.666667L468.693333 16.682667z m423.253334 285.781334l-381.994667-211.072L128 302.506667v418.986666l381.952 211.072 381.994667-211.072V302.506667z m-684.714667 42.197333a42.666667 42.666667 0 0 1 57.984-16.725333l244.736 135.253333 244.778667-135.253333a42.666667 42.666667 0 0 1 41.258666 74.666666l-243.370666 134.528v268.16a42.666667 42.666667 0 0 1-85.333334 0V537.173333L223.914667 402.688a42.666667 42.666667 0 0 1-16.682667-58.026667z" p-id="1911"></path></svg>

1
src/assets/icons/svg/backup.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1574649191790" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2774" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M646 1024H100A100 100 0 0 1 0 924V258a100 100 0 0 1 100-100h546a100 100 0 0 1 100 100v31a40 40 0 1 1-80 0v-31a20 20 0 0 0-20-20H100a20 20 0 0 0-20 20v666a20 20 0 0 0 20 20h546a20 20 0 0 0 20-20V713a40 40 0 0 1 80 0v211a100 100 0 0 1-100 100z" p-id="2775"></path><path d="M924 866H806a40 40 0 0 1 0-80h118a20 20 0 0 0 20-20V100a20 20 0 0 0-20-20H378a20 20 0 0 0-20 20v8a40 40 0 0 1-80 0v-8A100 100 0 0 1 378 0h546a100 100 0 0 1 100 100v666a100 100 0 0 1-100 100z" p-id="2776"></path><path d="M469 887a40 40 0 0 1-27-10L152 618a40 40 0 0 1 1-60l290-248a40 40 0 0 1 66 30v128a367 367 0 0 0 241-128l94-111a40 40 0 0 1 70 35l-26 109a430 430 0 0 1-379 332v142a40 40 0 0 1-40 40zM240 589l189 169v-91a40 40 0 0 1 40-40c144 0 269-85 323-214a447 447 0 0 1-323 137 40 40 0 0 1-40-40v-83z" p-id="2777"></path></svg>

22
src/assets/icons/svg/bindbiaoqian.svg

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1024 1024" style="enable-background:new 0 0 1024 1024;" xml:space="preserve">
<style type="text/css">
</style>
<g id="绑定" transform="translate(-2.788 -2.787)">
<path id="矩形_300" class="st0" d="M862.94,38.86L990.67,166.6c48.1,48.1,48.1,126.09,0,174.19L793.26,538.19
c-48.1,48.1-126.09,48.1-174.19,0L491.34,410.46c-48.1-48.1-48.1-126.09,0-174.19L688.75,38.86
C736.85-9.24,814.84-9.24,862.94,38.86z M677.14,480.13c16.03,16.03,42.03,16.03,58.06,0l197.41-197.41
c16.03-16.03,16.03-42.03,0-58.06L804.87,96.92c-16.03-16.03-42.03-16.03-58.06,0L549.4,294.33c-16.03,16.03-16.03,42.03,0,58.06
L677.14,480.13z"/>
<path id="矩形_301" class="st0" d="M410.5,491.38l127.74,127.74c48.1,48.1,48.1,126.09,0,174.19L340.83,990.71
c-48.1,48.1-126.09,48.1-174.19,0L38.9,862.98c-48.1-48.1-48.1-126.09,0-174.19l197.41-197.41
C284.41,443.28,362.4,443.28,410.5,491.38z M224.7,932.65c16.03,16.03,42.03,16.03,58.06,0l197.41-197.41
c16.03-16.03,16.03-42.03,0-58.06L352.44,549.44c-16.03-16.03-42.03-16.03-58.06,0L96.97,746.85c-16.03,16.03-16.03,42.03,0,58.06
L224.7,932.65z"/>
<path id="路径_623" class="st0" d="M288.59,781.76c-22.67,0.04-41.09-18.31-41.13-40.98c-0.02-10.93,4.32-21.42,12.06-29.14
L711.96,259.2c16.31-15.75,42.3-15.3,58.05,1.01c15.37,15.91,15.37,41.14,0,57.05L317.58,769.69
C309.9,777.4,299.47,781.74,288.59,781.76z"/>
</g>
</svg>

1
src/assets/icons/svg/chain.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" class="icon" p-id="654" t="1545959978831" version="1.1" viewBox="0 0 1024 1024"><defs><style type="text/css"/></defs><path d="M877.297288 553.796942L553.79643 877.298823c-54.370305 54.369282-126.656655 84.311221-203.547883 84.312245-76.890204-0.001023-149.177578-29.942963-203.546859-84.312245S62.389444 750.641145 62.389444 673.750941c0-76.890204 29.942963-149.177578 84.312244-203.547883l135.442762-135.441738c75.829036-75.829036 199.213157-75.829036 275.043217 0s75.830059 199.214181 0 275.043217L399.320173 767.674077c-17.620309 17.620309-46.188972 17.620309-63.809281 0-17.620309-17.621333-17.620309-46.188972 0-63.809281l157.867493-157.867494c40.645722-40.645722 40.645722-106.779955 0-147.424654-40.644699-40.645722-106.778932-40.645722-147.424654 0L210.51097 534.01234c-77.051887 77.05291-77.051887 202.423269 0 279.476179 77.051887 77.051887 202.423269 77.051887 279.475155 0l323.501882-323.501882c77.051887-77.050864 77.051887-202.423269 0-279.475156-77.05291-77.051887-202.424292-77.050864-279.476179 0-17.619286 17.620309-46.188972 17.620309-63.809281 0s-17.619286-46.189995 0-63.809281c54.369282-54.369282 126.657678-84.313268 203.546859-84.312244 76.892251 0 149.178601 29.942963 203.548906 84.312244 54.369282 54.369282 84.311221 126.656655 84.311221 203.547882 0 76.889181-29.942963 149.176554-84.312245 203.54686z" p-id="655"/></svg>

1
src/assets/icons/svg/chart.svg

@ -0,0 +1 @@
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M0 54.857h36.571V128H0V54.857zM91.429 27.43H128V128H91.429V27.429zM45.714 0h36.572v128H45.714V0z"/></svg>

17
src/assets/icons/svg/chehui.svg

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1024 861.3" style="enable-background:new 0 0 1024 861.3;" xml:space="preserve">
<style type="text/css">
</style>
<path class="st0" d="M939.7,474.4c-47.1-68.9-110.7-124.9-184.9-163c-73.2-38.2-152.6-63.5-234.5-74.7V72.1
c0.2-25.8-13.6-49.7-36-62.5c-22.3-12.8-49.8-12.8-72.1,0l-1.6,0.8c-1.1,0.5-2.3,1.2-3.3,2.1L32.7,358.9C12.3,372.4,0.2,395,0,419.4
c0,24.3,12.2,47,32.4,60.5l373.3,348.9c1,0.9,2,1.7,3.3,2.1l1.6,1.3c11,6.2,23.3,9.5,36,9.5c12.6,0,25-3.3,36-9.5
c22.7-12.6,36.6-36.6,36.5-62.5l1-231c122.2,0.2,240.4,43.5,333.9,122.2c43,36.3,79.2,79.9,107.1,128.7l30.7,62.1
c3,5.7,8.9,9.3,15.3,9.2c1.1,0,2.5,0,3.6,0c7.9-1.7,13.5-8.7,13.3-16.8v-69.1C1026.6,668.5,997.4,563.8,939.7,474.4z M897.5,611.4
c-49.1-42.2-105.1-75.6-165.5-98.9c-72.1-27.2-148.8-40.8-225.8-40.3h-2.6h-32.4c-9.2,0-16.8,7.6-16.8,16.8l-1.6,280.6
c0.2,2.2-1,4.3-3,5.4c-1.3,0.6-2.6,0.9-4.1,0.8l-372-347.6c-0.8-0.8-1.8-1.5-3-2.1l-1.6-0.8c-2.1-1.2-3.3-3.4-3.3-5.8
c0-2.3,1.3-4.3,3.3-5.4l1.6-0.8c0.8-0.8,2.1-1.3,3-2.5L447,66l0.7-0.6c1.1,0,2.1,0.4,3.1,1c2.1,1,3.3,3.1,3.3,5.4v211.1
c0,9.3,7.6,16.8,16.8,16.8h22.8c80.5,8.9,158.6,32.7,230.4,70c114.3,56.8,196.1,163,221.9,288.1
C930.7,641.3,914.6,625.9,897.5,611.4z"/>
</svg>

138
src/assets/icons/svg/co2.svg

@ -0,0 +1,138 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1024 1098.8" style="enable-background:new 0 0 1024 1098.8;" xml:space="preserve">
<style type="text/css">
.st0{fill:url(#路径_995_1_);}
.st1{fill:url(#路径_996_1_);}
.st2{fill:url(#路径_997_1_);}
.st3{fill:url(#路径_998_1_);}
.st4{fill:url(#路径_999_1_);}
.st5{fill:url(#路径_1000_1_);}
.st6{fill:url(#路径_1001_1_);}
.st7{fill:url(#路径_1002_1_);}
.st8{fill:url(#路径_1003_1_);}
.st9{fill:url(#路径_1004_1_);}
.st10{fill:url(#路径_1005_1_);}
.st11{fill:url(#路径_1006_1_);}
</style>
<g id="co2_" transform="translate(1619.939 -458.733)">
<linearGradient id="路径_995_1_" gradientUnits="userSpaceOnUse" x1="-1610.0128" y1="1454.1401" x2="-1581.7827" y2="1430.4572" gradientTransform="matrix(4.72 0 0 -4.7201 6022.5347 7690.9102)">
<stop offset="0" style="stop-color:#C8E4FF"/>
<stop offset="0.632" style="stop-color:#339CFF"/>
<stop offset="1" style="stop-color:#339CFF"/>
</linearGradient>
<path id="路径_995" class="st0" d="M-1583.4,868.5c0,30.8,25,55.9,55.9,55.9c30.9,0,55.9-25,55.9-55.9l0,0
c0-30.9-25-55.9-55.9-55.9l0,0C-1558.4,812.5-1583.5,837.5-1583.4,868.5L-1583.4,868.5z"/>
<linearGradient id="路径_996_1_" gradientUnits="userSpaceOnUse" x1="-1524.9565" y1="1491.9058" x2="-1496.7264" y2="1468.2228" gradientTransform="matrix(4.719 0 0 -4.72 6038.6494 7682.9121)">
<stop offset="0" style="stop-color:#C8E4FF"/>
<stop offset="0.632" style="stop-color:#339CFF"/>
<stop offset="1" style="stop-color:#339CFF"/>
</linearGradient>
<path id="路径_996" class="st1" d="M-1164.4,682.3c0,30.9,25,55.9,55.8,55.9c0,0,0,0,0,0c30.9,0,55.9-25,55.9-55.9
c0-30.9-25-55.9-55.9-55.9C-1139.4,626.4-1164.4,651.4-1164.4,682.3C-1164.4,682.3-1164.4,682.3-1164.4,682.3L-1164.4,682.3z"/>
<linearGradient id="路径_997_1_" gradientUnits="userSpaceOnUse" x1="-1565.5087" y1="1484.4666" x2="-1537.2787" y2="1460.7837" gradientTransform="matrix(3.933 0 0 -3.932 4756.2188 6484.8486)">
<stop offset="0" style="stop-color:#C8E4FF"/>
<stop offset="0.632" style="stop-color:#339CFF"/>
<stop offset="1" style="stop-color:#339CFF"/>
</linearGradient>
<path id="路径_997" class="st2" d="M-1406.5,682.2c0,25.7,20.8,46.6,46.6,46.6c25.7,0,46.6-20.8,46.6-46.6l0,0
c0-25.7-20.8-46.6-46.6-46.6C-1385.7,635.6-1406.5,656.5-1406.5,682.2C-1406.6,682.2-1406.6,682.2-1406.5,682.2L-1406.5,682.2z"/>
<linearGradient id="路径_998_1_" gradientUnits="userSpaceOnUse" x1="-1443.0332" y1="1482.1975" x2="-1414.8032" y2="1458.5146" gradientTransform="matrix(3.933 0 0 -3.932 4777.4551 6485.1948)">
<stop offset="0" style="stop-color:#C8E4FF"/>
<stop offset="0.632" style="stop-color:#339CFF"/>
<stop offset="1" style="stop-color:#339CFF"/>
</linearGradient>
<path id="路径_998" class="st3" d="M-903.6,691.5c0,25.7,20.8,46.6,46.6,46.6c25.7,0,46.6-20.8,46.6-46.6l0,0
c0-25.7-20.8-46.6-46.6-46.6C-882.8,644.9-903.6,665.8-903.6,691.5L-903.6,691.5z"/>
<linearGradient id="路径_999_1_" gradientUnits="userSpaceOnUse" x1="-1342.7882" y1="1478.9614" x2="-1314.5581" y2="1455.2786" gradientTransform="matrix(3.1461 0 0 -3.146 3511.7317 5288.9731)">
<stop offset="0" style="stop-color:#C8E4FF"/>
<stop offset="0.632" style="stop-color:#339CFF"/>
<stop offset="1" style="stop-color:#339CFF"/>
</linearGradient>
<path id="路径_999" class="st4" d="M-717.4,663.6c0,20.6,16.7,37.3,37.2,37.3l0,0c20.6,0,37.3-16.7,37.3-37.2l0,0
c0-20.6-16.7-37.3-37.2-37.3l0,0C-700.7,626.3-717.3,643-717.4,663.6z"/>
<linearGradient id="路径_1000_1_" gradientUnits="userSpaceOnUse" x1="-1606.4517" y1="1476.1067" x2="-1578.2216" y2="1452.4237" gradientTransform="matrix(3.1461 0 0 -3.145 3475.1616 5287.7891)">
<stop offset="0" style="stop-color:#C8E4FF"/>
<stop offset="0.632" style="stop-color:#339CFF"/>
<stop offset="1" style="stop-color:#339CFF"/>
</linearGradient>
<path id="路径_1000" class="st5" d="M-1583.4,672.9c0,20.6,16.7,37.3,37.2,37.3l0,0c20.6,0,37.3-16.7,37.3-37.2l0,0
c0-20.6-16.7-37.3-37.3-37.3C-1566.8,635.7-1583.4,652.3-1583.4,672.9L-1583.4,672.9z"/>
<linearGradient id="路径_1001_1_" gradientUnits="userSpaceOnUse" x1="-1473.2072" y1="1529.9905" x2="-1444.9772" y2="1506.3076" gradientTransform="matrix(3.1461 0 0 -3.145 3493.6426 5280.3184)">
<stop offset="0" style="stop-color:#C8E4FF"/>
<stop offset="0.632" style="stop-color:#339CFF"/>
<stop offset="1" style="stop-color:#339CFF"/>
</linearGradient>
<path id="路径_1001" class="st6" d="M-1145.8,495.9c0,20.6,16.7,37.3,37.2,37.3l0,0c20.6,0,37.3-16.7,37.3-37.2l0,0
c0-20.6-16.7-37.3-37.3-37.3C-1129.1,458.7-1145.7,475.4-1145.8,495.9z"/>
<linearGradient id="路径_1002_1_" gradientUnits="userSpaceOnUse" x1="-1500.8671" y1="1518.9338" x2="-1472.637" y2="1495.251" gradientTransform="matrix(2.3601 0 0 -2.36 2213.5728 4087.9387)">
<stop offset="0" style="stop-color:#C8E4FF"/>
<stop offset="0.632" style="stop-color:#339CFF"/>
<stop offset="1" style="stop-color:#339CFF"/>
</linearGradient>
<path id="路径_1002" class="st7" d="M-1332,523.9c0,15.4,12.5,27.9,27.9,27.9l0,0c15.4,0,27.9-12.5,27.9-27.9c0,0,0,0,0,0
c0-15.4-12.5-27.9-27.9-27.9l0,0C-1319.5,495.9-1332,508.4-1332,523.9C-1332,523.9-1332,523.9-1332,523.9z"/>
<linearGradient id="路径_1003_1_" gradientUnits="userSpaceOnUse" x1="-1349.5758" y1="1507.5928" x2="-1321.3457" y2="1483.9098" gradientTransform="matrix(2.3591 0 0 -2.36 2227.7219 4089.1189)">
<stop offset="0" style="stop-color:#C8E4FF"/>
<stop offset="0.632" style="stop-color:#339CFF"/>
<stop offset="1" style="stop-color:#339CFF"/>
</linearGradient>
<path id="路径_1003" class="st8" d="M-959.5,551.8c0,15.4,12.5,27.9,27.9,27.9c0,0,0,0,0,0c15.4,0,27.9-12.5,27.9-27.9
c0,0,0,0,0,0c0-15.4-12.5-27.9-27.9-27.9c0,0,0,0,0,0C-947,523.9-959.5,536.4-959.5,551.8C-959.5,551.8-959.5,551.8-959.5,551.8z"
/>
<linearGradient id="路径_1004_1_" gradientUnits="userSpaceOnUse" x1="-1438.0034" y1="1456.0077" x2="-1409.7733" y2="1432.3248" gradientTransform="matrix(4.719 0 0 -4.719 6056.7393 7688.8477)">
<stop offset="0" style="stop-color:#C8E4FF"/>
<stop offset="0.632" style="stop-color:#339CFF"/>
<stop offset="1" style="stop-color:#339CFF"/>
</linearGradient>
<path id="路径_1004" class="st9" d="M-736,859.2c0,30.9,25,55.9,55.9,55.9c0,0,0,0,0,0c30.9,0,55.9-25,55.9-55.9l0,0
c0-30.9-25-55.9-55.8-55.9c0,0,0,0,0,0C-711,803.3-736,828.3-736,859.2z"/>
<linearGradient id="路径_1005_1_" gradientUnits="userSpaceOnUse" x1="-1607.5946" y1="1471.4702" x2="-1579.3645" y2="1447.7872" gradientTransform="matrix(24.197 0 0 -11.496 37556.5313 18006.7031)">
<stop offset="0" style="stop-color:#C8E4FF"/>
<stop offset="0.632" style="stop-color:#339CFF"/>
<stop offset="1" style="stop-color:#339CFF"/>
</linearGradient>
<path id="路径_1005" class="st10" d="M-835.8,1285.7c4.3-3.4,8.8-6.5,13.5-9.3c9.1-5.8,17-13.2,23.4-21.9
c4.1-6.2,6.4-13.5,6.4-21c0.1-6.6-1.9-13.1-5.6-18.6c-3.8-5.6-9.2-9.9-15.5-12.3c-8.8-3-18.1-4.4-27.4-4c-9-0.4-17.9,1-26.4,4.2
c-6,2.5-11.2,6.7-14.8,12.1c-3.9,6.5-6.3,13.8-7.1,21.3l33.3,2.7c0.3-5.2,2.2-10.2,5.5-14.2c5.8-5.3,14.7-5.3,20.6,0
c2.6,2.4,4.1,5.8,4.1,9.3c-0.2,3.9-1.6,7.7-4.1,10.7c-5.4,6.3-11.7,11.9-18.6,16.6c-12.5,8.4-23.6,18.8-32.8,30.8
c-5.7,8.3-9.3,17.9-10.5,27.9h99.9v-27.2h-52c2.5-2.6,5.2-5,8-7.3L-835.8,1285.7z M-1222.5,1242.6c-9.1,8.2-20.9,12.6-33.2,12.4
c-16.4,0.5-32.1-6.6-42.6-19.3c-12.7-19.2-18.4-42.2-16.3-65.2c-1.9-22,4-44,16.6-62.1c10.8-12.6,26.7-19.6,43.3-19.1
c24.5-0.9,45.9,16.2,50.6,40.3l48-11.5c-4-16.7-12.5-31.9-24.5-44.1c-19.5-17.8-45.2-27.2-71.6-26.1c-30.6-1.2-60.3,10.9-81.3,33.2
c-22,25.9-33.1,59.2-31,93.1c-1.8,32.7,9.2,64.7,30.8,89.3c20.3,21.7,48.9,33.6,78.6,32.7c22.7,1,45.1-5.5,63.7-18.6
c18.4-14.9,31.2-35.5,36.4-58.6l-46.6-14.9C-1204.4,1218.8-1211.7,1232.3-1222.5,1242.6L-1222.5,1242.6z M-1024.7,1048.1
c-17.7-0.4-35.3,2.8-51.8,9.3c-11.7,5-22.3,12.4-31,21.6c-9.3,9.6-16.9,20.7-22.4,32.9c-7.8,19.6-11.6,40.5-11,61.6
c-1.9,33,9.5,65.4,31.7,90c22.5,22.4,53.4,34.3,85.1,32.7c31.5,1.4,62.2-10.5,84.5-32.8c22.2-24.9,33.5-57.7,31.6-91
c1.9-33.5-9.6-66.4-31.9-91.6C-962.3,1058.5-993.1,1046.7-1024.7,1048.1L-1024.7,1048.1z M-976.7,1234.4c-24.1,26.3-65,28.1-91.3,4
c0,0,0,0,0,0c-1.4-1.3-2.7-2.6-4-4c-13.6-17.6-20.2-39.6-18.6-61.7c-1.8-22.3,4.9-44.4,18.6-62c25.8-26.6,68.3-27.3,94.9-1.4
c0,0,0,0,0,0l1.4,1.4c13.2,17.3,19.6,38.8,17.8,60.5c1.5,22.5-5.1,44.8-18.6,62.9L-976.7,1234.4z"/>
<linearGradient id="路径_1006_1_" gradientUnits="userSpaceOnUse" x1="-1616.9319" y1="1510.0847" x2="-1588.7019" y2="1486.4019" gradientTransform="matrix(43.2379 0 0 -33.039 68364.5781 50760.9883)">
<stop offset="0" style="stop-color:#C8E4FF"/>
<stop offset="0.632" style="stop-color:#339CFF"/>
<stop offset="1" style="stop-color:#339CFF"/>
</linearGradient>
<path id="路径_1006" class="st11" d="M-745.3,986.4c-6.8-123.3-112.2-217.7-235.5-210.9c-42.7,2.4-83.8,16.9-118.4,41.9
c-100.3-72-239.9-49-311.9,51.2c0,0,0,0,0,0c-23.6,32.8-37.8,71.4-41.1,111.6c-123.4,36-194.3,165.2-158.4,288.7c0,0,0,0,0,0
c28.9,99,119.5,167.2,222.6,167.6c9.7,0,19.4-0.6,29-1.9c107,138.3,305.9,163.7,444.2,56.7c21.2-16.4,40.2-35.4,56.6-56.7
c9.6,1.2,19.3,1.9,29,1.9c128.6,0.2,233-103.8,233.2-232.4C-595.7,1107.6-655.2,1021-745.3,986.4z M-802.3,1360.2
c-6.4,0-12.8-0.4-19.2-1.2c-4.2-0.6-8.4-0.9-12.7-0.8c-31.5,0.1-61.2,14.7-80.5,39.6c-82.7,107.1-236.5,127-343.7,44.3
c-16.6-12.8-31.5-27.7-44.3-44.3c-19.3-25-49.1-39.6-80.7-39.6c-4.2,0-8.5,0.2-12.6,0.8c-6.3,0.8-12.6,1.2-18.9,1.2
c-84.6-0.1-153.1-68.7-153-153.3c0,0,0,0,0,0c0.1-68.1,45.2-128.1,110.6-147c40.8-11.7,70.1-47.4,73.6-89.6
c6.6-73.8,68.2-130.5,142.3-130.8c29.9-0.1,59.1,9.3,83.3,26.9c35.6,25.6,83.6,25.6,119.2,0c64.1-46.1,153.4-31.6,199.5,32.4
c15.9,22.1,25.2,48.3,26.7,75.6c2.1,40.1,27.6,75.2,65,89.8c78.9,30.4,118.3,119,88,197.9c0,0,0,0,0,0
C-682.2,1321.1-738.9,1360.1-802.3,1360.2L-802.3,1360.2z"/>
</g>
</svg>

1
src/assets/icons/svg/codeConsole.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" class="icon" p-id="6717" t="1547360688278" version="1.1" viewBox="0 0 1024 1024"><defs><style type="text/css"/></defs><path d="M890 120H134a70 70 0 0 0-70 70v500a70 70 0 0 0 70 70h756a70 70 0 0 0 70-70V190a70 70 0 0 0-70-70z m-10 520a40 40 0 0 1-40 40H712V448a40 40 0 0 0-80 0v232h-80V368a40 40 0 0 0-80 0v312h-80V512a40 40 0 0 0-80 0v168H184a40 40 0 0 1-40-40V240a40 40 0 0 1 40-40h656a40 40 0 0 1 40 40zM696 824H328a40 40 0 0 0 0 80h368a40 40 0 0 0 0-80z" p-id="6718"/></svg>

1
src/assets/icons/svg/danganjieyue.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1663379673747" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3890" xmlns:xlink="http://www.w3.org/1999/xlink" width="25" height="25"><path d="M219.796755 1023.98488C99.998523 1025.38486 1.799973 929.386277 0.499993 809.688044V219.796755C-7.099895 106.29843 78.698838 8.09988 192.297161 0.499993c9.199864-0.599991 18.399728-0.599991 27.499594 0h657.990284v731.089205h-657.990284c-74.698897 0-170.597481 46.299316-146.197842 146.197841 30.099556 50.999247 87.298711 79.698823 146.197842 73.098921h731.089205V146.697834h73.09892V1023.98488H219.796755z m0-219.296762h657.990284v73.098921h-657.990284v-73.098921z" p-id="3891"></path></svg>

1
src/assets/icons/svg/danganleibie.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1663379678313" class="icon" viewBox="0 0 1095 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4036" xmlns:xlink="http://www.w3.org/1999/xlink" width="26.7333984375" height="25"><path d="M866.406288 275.424112h-638.337102c-12.937821 0-23.416386 10.58549-23.416386 23.52331s10.478566 23.416386 23.416386 23.416386h638.444026c12.937821 0 23.416386-10.58549 23.416387-23.52331-0.106924-12.937821-10.58549-23.416386-23.523311-23.416386z m22.774842-118.792718H205.294345c-12.937821 0-23.416386 10.58549-23.416387 23.523311s10.478566 23.416386 23.416387 23.416386h684.207557c12.937821 0 23.416386-10.58549 23.416386-23.52331s-10.478566-23.416386-23.416386-23.416387h-0.320772z m193.211917 284.952828L992.362923 64.462788c-0.213848-0.748469-0.427697-1.603862-0.748469-2.352331-10.478566-39.989628-48.757407-66.186041-89.816276-61.588304L190.645738 2.446788c-40.631172-3.314648-77.947696 22.240221-89.495504 61.267531-0.320772 0.962317-0.641545 1.81771-0.855393 2.780027L11.333959 450.886622C4.276966 457.408994 0.213848 466.497546 0 476.120718v497.304165c3.849269 27.800276 26.731034 48.971255 54.745159 50.575117h1004.017653c25.020248 0 36.033434-24.913324 36.033435-50.575117V476.120718c0.962317-12.723972-3.314648-25.234097-12.082428-34.536496h-0.320772zM821.070454 821.485683H273.725793V648.803201h547.344661v172.682482z m-68.431448-347.182675s-48.436634 0.641545-72.280717 0.641545H425.771917c-23.844083 0-83.7216-0.641545-83.7216-0.641545h-294.041379l96.231724-394.122372c4.91851-21.170979 25.554869-34.750345 46.939696-30.901076L902.760495 47.248002c31.328772 0 37.958069 7.805462 46.939697 30.794151l97.621737 396.260855H752.639006z" fill="#F65163" p-id="4037"></path></svg>

1
src/assets/icons/svg/dashboard.svg

@ -0,0 +1 @@
<svg width="128" height="100" xmlns="http://www.w3.org/2000/svg"><path d="M27.429 63.638c0-2.508-.893-4.65-2.679-6.424-1.786-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.465 2.662-1.785 1.774-2.678 3.916-2.678 6.424 0 2.508.893 4.65 2.678 6.424 1.786 1.775 3.94 2.662 6.465 2.662 2.524 0 4.678-.887 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zm13.714-31.801c0-2.508-.893-4.65-2.679-6.424-1.785-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zM71.714 65.98l7.215-27.116c.285-1.23.107-2.378-.536-3.443-.643-1.064-1.56-1.762-2.75-2.094-1.19-.33-2.333-.177-3.429.462-1.095.639-1.81 1.573-2.143 2.804l-7.214 27.116c-2.857.237-5.405 1.266-7.643 3.088-2.238 1.822-3.738 4.152-4.5 6.992-.952 3.644-.476 7.098 1.429 10.364 1.905 3.265 4.69 5.37 8.357 6.317 3.667.947 7.143.474 10.429-1.42 3.285-1.892 5.404-4.66 6.357-8.305.762-2.84.619-5.607-.429-8.305-1.047-2.697-2.762-4.85-5.143-6.46zm47.143-2.342c0-2.508-.893-4.65-2.678-6.424-1.786-1.775-3.94-2.662-6.465-2.662-2.524 0-4.678.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.786 1.775 3.94 2.662 6.464 2.662 2.524 0 4.679-.887 6.465-2.662 1.785-1.775 2.678-3.916 2.678-6.424zm-45.714-45.43c0-2.509-.893-4.65-2.679-6.425C68.68 10.01 66.524 9.122 64 9.122c-2.524 0-4.679.887-6.464 2.661-1.786 1.775-2.679 3.916-2.679 6.425 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zm32 13.629c0-2.508-.893-4.65-2.679-6.424-1.785-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zM128 63.638c0 12.351-3.357 23.78-10.071 34.286-.905 1.372-2.19 2.058-3.858 2.058H13.93c-1.667 0-2.953-.686-3.858-2.058C3.357 87.465 0 76.037 0 63.638c0-8.613 1.69-16.847 5.071-24.703C8.452 31.08 13 24.312 18.714 18.634c5.715-5.68 12.524-10.199 20.429-13.559C47.048 1.715 55.333.035 64 .035c8.667 0 16.952 1.68 24.857 5.04 7.905 3.36 14.714 7.88 20.429 13.559 5.714 5.678 10.262 12.446 13.643 20.301 3.38 7.856 5.071 16.09 5.071 24.703z"/></svg>

1
src/assets/icons/svg/database.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1574649229600" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3752" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M942 191.9C939.8 128.9 748.1 78 512 78S84.2 128.9 82 191.9V831c0 63.5 192.5 115 430 115s430-51.5 430-115V191.9z m-56.7 393.8c-4.6 3.3-11.6 7.4-21.9 12.2-21.3 9.8-50.5 19.1-84.4 26.8-74 16.8-168.8 26-267 26s-193-9.2-267-26c-33.9-7.7-63.1-16.9-84.4-26.8-10.3-4.8-17.3-8.9-21.9-12.2 0.1-0.1 0.2-0.1 0.3-0.2h-7v-123c72.2 36.4 215.3 61.1 380 61.1s307.8-24.8 380-61.1v122.9h-7l0.3 0.3z m0-177c-4.6 3.3-11.6 7.4-21.9 12.2-21.3 9.8-50.5 19.1-84.4 26.8-74 16.8-168.8 26-267 26s-193-9.2-267-26c-33.9-7.7-63.1-16.9-84.4-26.8-10.3-4.8-17.3-8.9-21.9-12.2 0.1-0.1 0.2-0.1 0.3-0.2h-7V246.9c72.2 36.4 215.3 61.1 380 61.1s307.8-24.8 380-61.1v161.6h-7c0.1 0 0.2 0.1 0.3 0.2zM160.7 180.8C182 171 211.2 161.7 245 154c74-16.8 168.8-26 267-26s193 9.2 267 26c33.9 7.7 63.1 16.9 84.4 26.8 10.3 4.8 17.3 8.9 21.9 12.2-4.6 3.3-11.6 7.4-21.9 12.2C842 215 812.8 224.3 779 232c-74 16.8-168.8 26-267 26s-193-9.2-267-26c-33.9-7.7-63.1-16.9-84.4-26.8-10.3-4.8-17.3-8.9-21.9-12.2 4.7-3.3 11.7-7.4 22-12.2zM885.3 831c-4.6 3.3-11.6 7.4-21.9 12.2C842 853 812.8 862.3 779 870c-74 16.8-168.8 26-267 26s-193-9.2-267-26c-33.9-7.7-63.1-16.9-84.4-26.8-10.3-4.8-17.3-8.9-21.9-12.2 0.1-0.1 0.2-0.1 0.3-0.2h-7V639.5c72.2 36.4 215.3 61.1 380 61.1s307.8-24.8 380-61.1v191.3h-7c0.1 0.1 0.2 0.1 0.3 0.2z" p-id="3753"></path></svg>

1
src/assets/icons/svg/date.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" class="icon" p-id="5330" t="1553935012815" version="1.1" viewBox="0 0 1024 1024"><defs><style type="text/css"/></defs><path fill="#8a8a8a" d="M453.22752 781.67168 170.31936 781.67168 170.31936 409.18016l650.45632 0c11.6864 0 21.15968-9.47328 21.15968-21.15968L841.93536 218.68032l0-12.3904c0-11.6864-9.47328-21.15968-21.15968-21.15968l-11.8784 0L660.94464 185.13024l0-35.97184c0-11.6864-9.47328-21.15968-21.15968-21.15968-11.68768 0-21.15968 9.47328-21.15968 21.15968l0 35.97184L356.24704 185.13024l0-35.97184c0-11.6864-9.47328-21.15968-21.15968-21.15968s-21.15968 9.47328-21.15968 21.15968l0 35.97184L161.04064 185.13024l-11.88096 0c-11.6864 0-21.15968 9.47328-21.15968 21.15968l0 12.3904 0 169.34144 0 402.4192c0 18.49984 14.8224 33.55008 33.04064 33.55008l292.18816 0c11.6864 0 21.15968-9.472 21.15968-21.15968C474.38848 791.14496 464.91392 781.67168 453.22752 781.67168zM170.31936 227.4496l143.60832 0 0 35.97184c0 11.6864 9.47328 21.15968 21.15968 21.15968s21.15968-9.472 21.15968-21.15968l0-35.97184 262.37696 0 0 35.97184c0 11.6864 9.472 21.15968 21.15968 21.15968 11.6864 0 21.15968-9.472 21.15968-21.15968l0-35.97184L799.616 227.4496l0 139.41248L170.31936 366.86208 170.31936 227.4496zM690.49984 483.10016c-113.83808 0-206.44992 92.61312-206.44992 206.45248 0 113.83552 92.61184 206.44736 206.44992 206.44736s206.44992-92.61312 206.44992-206.44736C896.94976 575.71328 804.33792 483.10016 690.49984 483.10016zM690.49984 853.68064c-90.50112 0-164.13056-73.62816-164.13056-164.13184s73.62816-164.13184 164.13056-164.13184c90.5024 0 164.13184 73.62816 164.13184 164.13184S781.00224 853.68064 690.49984 853.68064zM390.10304 640.81536l-143.8848 0c-11.68768 0-21.15968 9.472-21.15968 21.15968 0 11.68512 9.472 21.1584 21.15968 21.1584l143.8848 0c11.6864 0 21.15968-9.47328 21.15968-21.1584C411.26144 650.28736 401.78816 640.81536 390.10304 640.81536zM390.10304 521.32608l-143.8848 0c-11.68768 0-21.15968 9.47328-21.15968 21.1584 0 11.68768 9.472 21.15968 21.15968 21.15968l143.8848 0c11.6864 0 21.15968-9.472 21.15968-21.15968C411.26144 530.80064 401.78816 521.32608 390.10304 521.32608zM803.1744 668.39296l-91.51488 0 0-50.78272c0-11.68768-9.472-21.15968-21.1584-21.15968s-21.15968 9.472-21.15968 21.15968l0 71.9424c0 11.68512 9.47328 21.1584 21.15968 21.1584l112.67328 0c11.6864 0 21.15968-9.47328 21.15968-21.1584C824.33536 677.86496 814.8608 668.39296 803.1744 668.39296z" p-id="5331"/></svg>

18
src/assets/icons/svg/dengji-fanbai.svg

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1024 1024" style="enable-background:new 0 0 1024 1024;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<g id="登记" transform="translate(-162.18 -159.75)">
<path id="路径_726" class="st0" d="M833.8,1183.8H333.4c-78.6,0-142.3-63.7-142.3-142.3V302c0-78.6,63.7-142.3,142.3-142.3h500.3
c78.6,0,142.3,63.7,142.3,142.3v48c0,21.1-17.1,38.2-38.2,38.2c-21.1,0-38.2-17.1-38.2-38.2v-48c0-36.4-29.5-66-66-66H333.4
c-36.4,0-66,29.5-66,66v739.5c0,36.4,29.5,66,66,66h500.3c36.4,0,66-29.5,66-66v-39.7c0-21.1,17.1-38.2,38.2-38.2
c21.1,0,38.2,17.1,38.2,38.2l0,0v39.7C976.1,1120.1,912.4,1183.8,833.8,1183.8C833.8,1183.8,833.8,1183.8,833.8,1183.8z"/>
<path id="路径_727" class="st0" d="M585.7,702l169.1,169.1c14.9,14.9,39.1,14.9,54,0c14.9-14.9,14.9-39.1,0-54L705.1,713.3
l-1.6-1.5h415.6c21.1,0,38.2-17.1,38.2-38.2s-17.1-38.2-38.2-38.2H706.1l115.7-115.7c13.1-12.3,13.8-32.9,1.5-46
c-1.5-1.6-3.2-3.1-5-4.4c-17.9-12.5-42.1-10.8-58.1,4.1L585.9,647.8c-15,14.7-15.3,38.9-0.6,53.9
C585.5,701.8,585.6,701.9,585.7,702z"/>
</g>
</svg>

1
src/assets/icons/svg/deploy.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1574649300337" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4312" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M877.952 447.616v-0.256a272 272 0 0 0-479.68-175.68 166.144 166.144 0 0 0-226.016 155.296c0 4.768 0.32 9.6 0.704 14.144A196.896 196.896 0 0 0 206.592 832H448v-256H304l208-208 208 208H576v256h241.408a196.96 196.96 0 0 0 60.544-384.384z" fill="#cdcdcd" p-id="4313"></path></svg>

1
src/assets/icons/svg/dept.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" class="icon" p-id="1799" t="1553478255619" version="1.1" viewBox="0 0 1024 1024"><defs><style type="text/css"/></defs><path d="M329.285097 317.714062l-8.422833 4.428869c-8.78099 4.584412-13.528108 14.84715-11.923564 24.415063 1.644453 4.909823 3.491521 9.864672 5.492084 14.747889 2.030239 4.854565 4.230348 9.652847 6.53688 14.293541 5.621021 7.891737 16.246009 11.824303 25.699312 8.858762l9.041934-2.868327c14.741749-3.860934 31.115672-0.056282 42.62582 11.512195 11.549034 11.526521 15.374152 27.863604 11.549034 42.570561l-2.882654 9.126868c-2.958378 9.438976 0.938372 20.042475 8.830109 25.706475 4.634554 2.328022 9.403161 4.52813 14.323217 6.529717 4.876054 2.043542 9.80839 3.846608 14.739702 5.478781 9.538237 1.603521 19.87363-3.123131 24.414039-11.910261l4.402263-8.388041c7.67889-13.144368 21.915126-22.002107 38.267559-22.002107 16.338107 0 30.547737 8.829086 38.255279 21.931498l4.41352 8.459672c4.584412 8.78713 14.84715 13.513782 24.414039 11.910261 4.91187-1.632173 9.851369-3.462868 14.734586-5.478781 4.882194-2.030239 9.66615-4.201695 14.322194-6.529717 7.891737-5.622044 11.809977-16.253172 8.843412-25.706475l-2.852978-9.041934c-3.859911-14.733563-0.069585-31.085996 11.484565-42.655496 11.55415-11.525498 27.878954-15.372106 42.599214-11.512195l9.097192 2.88163c9.426697 2.952238 20.044522-0.937348 25.693172-8.829086 2.313695-4.656043 4.527107-9.411347 6.54302-14.322194 2.029216-4.883217 3.847631-9.80839 5.495154-14.748912 1.616824-9.581216-3.108804-19.843954-11.911284-24.429389l-8.402367-4.400217c-13.132088-7.665587-21.98778-21.901823-21.98778-38.255279 0-16.32378 8.830109-30.589692 21.974477-38.268582l8.416693-4.443196c8.80248-4.571109 13.528108-14.832823 11.924587-24.400736-1.6465-4.910846-3.479241-9.850345-5.493108-14.733563-2.031263-4.868891-4.202719-9.680477-6.529717-14.308891-5.622044-7.890714-16.253172-11.82328-25.708522-8.842389l-9.05626 2.852978c-14.747889 3.861958-31.071669 0.057305-42.654472-11.512195-11.55415-11.55415-15.344476-27.877931-11.484565-42.612517l2.852978-9.05626c2.966565-9.44-0.951675-20.043499-8.856715-25.692149-4.641717-2.328022-9.397021-4.542456-14.307867-6.544043-4.883217-2.029216-9.82374-3.846608-14.734586-5.465478-9.567913-1.632173-19.872606 3.123131-24.414039 11.895935l-4.400217 8.389064c-7.67889 13.174044-21.931498 22.002107-38.268582 22.002107-16.309454 0-30.576389-8.828063-38.267559-22.002107l-4.387937-8.389064c-4.554736-8.771781-14.8318-13.528108-24.405853-11.895935-4.954849 1.604544-9.873882 3.435239-14.763239 5.4225-4.883217 2.044566-9.688663 4.217045-14.323217 6.545066-7.891737 5.649674-11.808954 16.266475-8.830109 25.735128l2.826372 9.05626c3.882424 14.762215 0.057305 31.085996-11.491729 42.612517-11.510148 11.5695-27.849278 15.373129-42.611493 11.526521l-9.070586-2.867304c-9.44-2.980891-20.063965 0.951675-25.686009 8.842389-2.342348 4.628414-4.52813 9.44-6.53688 14.308891-2.036379 4.882194-3.847631 9.822716-5.492084 14.733563-1.603521 9.581216 3.142573 19.85828 11.923564 24.443715l8.402367 4.400217c13.156648 7.67889 21.986757 21.944801 21.986757 38.268582C351.251388 295.79689 342.421278 310.019823 329.285097 317.714062zM511.977999 171.706687c59.532885 0 107.795075 48.275493 107.795075 107.779725 0 59.490929-48.26219 107.752096-107.795075 107.752096-59.533908 0-107.752096-48.26219-107.752096-107.752096C404.226926 219.98218 452.445114 171.706687 511.977999 171.706687z" p-id="1800"/><path d="M924.647713 689.174212 798.570249 689.174212 798.570249 581.650313c0-26.387997-21.476127-47.850821-47.864124-47.850821L276.2543 533.799492c-26.386974 0-47.851844 21.462824-47.851844 47.850821l0 107.523899L99.345124 689.174212c-20.419052 0-36.95568 16.550954-36.95568 36.948517l0 184.771237c0 20.399609 16.536628 36.962843 36.95568 36.962843l273.965675 0c20.397562 0 36.947494-16.564257 36.947494-36.962843L410.258293 726.122729c0-20.398586-16.550954-36.948517-36.947494-36.948517l-123.103736 0L250.207064 581.650313c0-14.366196 11.68104-26.047236 26.047236-26.047236l474.451826 0c14.364149 0 26.062586 11.68104 26.062586 26.047236l0 107.523899L650.689201 689.174212c-20.412912 0-36.962843 16.550954-36.962843 36.948517l0 184.771237c0 20.399609 16.549931 36.962843 36.962843 36.962843l273.958512 0c20.397562 0 36.96182-16.564257 36.96182-36.962843L961.609533 726.122729C961.609533 705.725166 945.044252 689.174212 924.647713 689.174212z" p-id="1801"/></svg>

1
src/assets/icons/svg/dev.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1546567861908" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2422" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M318.577778 819.2L17.066667 512l301.511111-307.2 45.511111 45.511111L96.711111 512l267.377778 261.688889zM705.422222 819.2l-45.511111-45.511111L927.288889 512l-267.377778-261.688889 45.511111-45.511111L1006.933333 512zM540.785778 221.866667l55.751111 11.150222L483.157333 802.133333l-55.751111-11.093333z" fill="#bfbfbf" p-id="2423"></path></svg>

1
src/assets/icons/svg/develop.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" class="icon" p-id="2807" t="1547195013953" version="1.1" viewBox="0 0 1024 1024"><defs><style type="text/css"/></defs><path fill="#cdcdcd" d="M529.0496 527.616l-30.7712-30.7456 85.0688-85.0944 30.7712 30.7712z" p-id="2808"/><path fill="#cdcdcd" d="M0 340.48l427.52 256 248.32 427.52L1024 0l-1024 340.48zM665.6 921.6l-207.36-355.84-355.84-212.48L911.36 81.92l-243.2 243.2 30.72 30.72 243.2-243.2L665.6 921.6z" p-id="2809"/></svg>

1
src/assets/icons/svg/dictionary.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" class="icon" p-id="1497" t="1554868028575" version="1.1" viewBox="0 0 1024 1024"><defs><style type="text/css"/></defs><path d="M558.409143 658.285714h-92.818286l-28.379428 62.427429a18.285714 18.285714 0 1 1-33.28-15.140572l91.428571-201.142857a18.285714 18.285714 0 0 1 33.28 0l91.428571 201.142857a18.285714 18.285714 0 1 1-33.28 15.140572L558.409143 658.285714z m-16.64-36.571428L512 556.178286 482.230857 621.714286h59.538286zM329.142857 128h475.428572a18.285714 18.285714 0 1 1 0 36.571429H329.142857a91.428571 91.428571 0 0 0 0 182.857142h475.428572a18.285714 18.285714 0 0 1 18.285714 18.285715v512a18.285714 18.285714 0 0 1-18.285714 18.285714H329.142857A128 128 0 0 1 201.142857 768V256A128 128 0 0 1 329.142857 128zM237.714286 345.6V768A91.428571 91.428571 0 0 0 329.142857 859.428571h457.142857v-475.428571H329.142857a127.634286 127.634286 0 0 1-91.428571-38.4zM329.142857 274.285714a18.285714 18.285714 0 0 1 0-36.571428h438.857143a18.285714 18.285714 0 1 1 0 36.571428H329.142857z" p-id="1498"/></svg>

1
src/assets/icons/svg/doc.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1583752001956" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9290" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M891.8 320H608V39.2L891.8 320zM704 384v260c0 133.6-73 200.2-226.6 200.2H288V169.6h189.4c24 0 46.2 1.6 66.2 5v-168C521.8 2.2 498.8 0 474.4 0H96v1024h378.4C755.4 1024 896 894.8 896 636.2V384h-192z" p-id="9291"></path></svg>

1
src/assets/icons/svg/download.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1583752303941" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16654" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M1024 896v128H0v-320h128v192h768v-192h128v192zM576 554.688L810.688 320 896 405.312l-384 384-384-384L213.312 320 448 554.688V0h128v554.688z" p-id="16655"></path></svg>

1
src/assets/icons/svg/edit.svg

@ -0,0 +1 @@
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M106.133 67.2a4.797 4.797 0 0 0-4.8 4.8c0 .187.014.36.027.533h-.027V118.4H9.6V26.667h50.133c2.654 0 4.8-2.147 4.8-4.8 0-2.654-2.146-4.8-4.8-4.8H9.6a9.594 9.594 0 0 0-9.6 9.6V118.4c0 5.307 4.293 9.6 9.6 9.6h91.733c5.307 0 9.6-4.293 9.6-9.6V72.533h-.026c.013-.173.026-.346.026-.533 0-2.653-2.146-4.8-4.8-4.8z"/><path d="M125.16 13.373L114.587 2.8c-3.747-3.747-9.854-3.72-13.6.027l-52.96 52.96a4.264 4.264 0 0 0-.907 1.36L33.813 88.533c-.746 1.76-.226 3.534.907 4.68 1.133 1.147 2.92 1.667 4.693.92l31.4-13.293c.507-.213.96-.52 1.36-.907l52.96-52.96c3.747-3.746 3.774-9.853.027-13.6zM66.107 72.4l-18.32 7.76 7.76-18.32L92.72 24.667l10.56 10.56L66.107 72.4zm52.226-52.227l-8.266 8.267-10.56-10.56 8.266-8.267.027-.026 10.56 10.56-.027.026z"/></svg>

1
src/assets/icons/svg/education.svg

@ -0,0 +1 @@
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M88.883 119.565c-7.284 0-19.434 2.495-21.333 8.25v.127c-4.232.13-5.222 0-7.108 0-1.895-5.76-14.045-8.256-21.333-8.256H0V0h42.523c9.179 0 17.109 5.47 21.47 13.551C68.352 5.475 76.295 0 85.478 0H128v119.57l-39.113-.005h-.004zM60.442 24.763c0-9.651-8.978-16.507-17.777-16.507H7.108V111.43H39.11c7.054-.14 18.177.082 21.333 6.12v-4.628c-.134-5.722-.004-13.522 0-13.832V27.413l.004-2.655-.004.005zm60.442-16.517h-35.55c-8.802 0-17.78 6.856-17.78 16.493v74.259c.004.32.138 8.115 0 13.813v4.627c3.155-6.022 14.279-6.26 21.333-6.114h32V8.25l-.003-.005z"/></svg>

1
src/assets/icons/svg/email.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" class="icon" p-id="2851" t="1554009929581" version="1.1" viewBox="0 0 1024 1024"><defs><style type="text/css"/></defs><path d="M511.471952 957.559056c-51.013955 0-93.475781-37.318473-101.502932-86.07185l-199.795618 0c-32.961053 0-59.794291-26.834261-59.794291-59.827038 0-12.417319 3.735224-24.277935 10.811684-34.336434l83.646513-111.561431 533.235518 0 83.515524 111.364948c7.306713 10.484212 11.008167 22.246587 11.008167 34.532917 0 32.9938-26.833238 59.827038-59.794291 59.827038l-199.861112 0C604.914986 920.241606 562.485907 957.559056 511.471952 957.559056zM261.61307 699.312805l-73.293289 97.734961c-2.751786 3.964455-4.390168 9.174325-4.390168 14.612403 0 14.481414 11.762375 26.276536 26.243789 26.276536l231.969715 0 0 16.774739c0 38.202647 31.093441 69.296088 69.328835 69.296088 38.202647 0 69.296088-31.093441 69.296088-69.296088l0-16.774739 232.03521 0c14.481414 0 26.243789-11.795122 26.243789-26.276536 0-5.373606-1.605635-10.516959-4.652145-14.875403l-73.096806-97.472983L261.61307 699.311782zM786.461219 613.240955l-550.011281 0 0-188.951187c0-112.348386 68.673891-213.392858 172.142677-255.101499l0-3.113028c0-56.715033 46.164304-102.879337 102.879337-102.879337 56.715033 0 102.84659 46.164304 102.84659 102.879337l0 3.113028c103.468786 41.708641 172.142677 142.753113 172.142677 255.101499L786.461219 613.240955zM270.00044 579.690453l482.910277 0 0-155.400685c0-102.158899-64.67669-193.668827-160.969751-227.677789l-11.172926-3.964455 0-26.571261c0-38.235394-31.093441-69.328835-69.296088-69.328835-38.235394 0-69.328835 31.093441-69.328835 69.328835l0 26.571261-11.172926 3.964455c-96.294085 34.008962-160.969751 125.51889-160.969751 227.677789L270.00044 579.690453z" p-id="2852"/></svg>

190
src/assets/icons/svg/empty.svg

@ -0,0 +1,190 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1024 1024" style="enable-background:new 0 0 1024 1024;" xml:space="preserve">
<style type="text/css">
.st0{fill:url(#SVGID_1_);}
.st1{fill:url(#SVGID_2_);}
.st2{fill:url(#SVGID_3_);}
.st3{fill:url(#SVGID_4_);}
.st4{fill:url(#SVGID_5_);}
.st5{fill:url(#SVGID_6_);}
.st6{fill:url(#SVGID_7_);}
.st7{fill:url(#SVGID_8_);}
.st8{fill:#C6D0E0;}
.st9{fill:none;stroke:#B2BBC9;stroke-miterlimit:10;stroke-dasharray:12;}
.st10{fill:url(#SVGID_9_);}
.st11{fill:url(#SVGID_10_);}
.st12{fill:url(#SVGID_11_);}
.st13{fill:url(#SVGID_12_);}
.st14{fill:url(#SVGID_13_);}
.st15{fill:url(#SVGID_14_);}
.st16{fill:url(#SVGID_15_);}
.st17{fill:url(#SVGID_16_);}
.st18{fill:url(#SVGID_17_);}
.st19{fill:url(#SVGID_18_);}
.st20{fill:url(#SVGID_19_);}
.st21{fill:url(#SVGID_20_);}
.st22{fill:url(#SVGID_21_);}
.st23{fill:url(#SVGID_22_);}
.st24{opacity:0.5;fill:#FFFFFF;enable-background:new ;}
</style>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="298" y1="121.56" x2="298" y2="1076.4399" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0.4171" style="stop-color:#F8FAFC;stop-opacity:0"/>
<stop offset="1" style="stop-color:#ECEFF4"/>
</linearGradient>
<ellipse class="st0" cx="512.4" cy="518.1" rx="512" ry="477.4"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="298" y1="431.0641" x2="298" y2="687.3201" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#DFE2E5;stop-opacity:0"/>
<stop offset="1" style="stop-color:#D7DCE2;stop-opacity:0.5"/>
</linearGradient>
<ellipse class="st1" cx="512.4" cy="557.9" rx="330.2" ry="128.1"/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="361.232" y1="445.4" x2="361.232" y2="627.032" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#DFE2E5;stop-opacity:0"/>
<stop offset="1" style="stop-color:#D7DCE2;stop-opacity:0.7"/>
</linearGradient>
<polygon class="st2" points="810.1,671.7 341.1,671.7 360,512.4 522.7,490 668.7,513.4 "/>
<g>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="300.4462" y1="828.9953" x2="161.4243" y2="588.2025" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#C6D0E0"/>
<stop offset="1" style="stop-color:#D7DDE2"/>
</linearGradient>
<path class="st3" d="M507.4,552L362,520.9l-3.5-213.1l138.8-29.8L507.4,552z"/>
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="460.592" y1="606.2" x2="255.408" y2="811.384" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#C6D0E0"/>
<stop offset="1" style="stop-color:#DFE4EA"/>
</linearGradient>
<path class="st4" d="M670.4,515.4l-163.1,36.7l-10-274l171.1,17.5L670.4,515.4z"/>
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="463.536" y1="609.144" x2="295.408" y2="777.272" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#A7B1C1"/>
<stop offset="1" style="stop-color:#C6D0E0"/>
</linearGradient>
<path class="st5" d="M523,555.8l147.5-40.4l-1.9-219.8l-145.7,31.1v229.1H523z"/>
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="333.84" y1="586.456" x2="128.3999" y2="791.896" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#C6D0E0"/>
<stop offset="1" style="stop-color:#EFF2F6"/>
</linearGradient>
<path class="st6" d="M523,555.8h-0.3l-163.5-35.5V308.6l163.7,18v228.9C523,555.6,523,555.7,523,555.8z"/>
<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="268.144" y1="706.488" x2="154.8" y2="819.832" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#C6D0E0"/>
<stop offset="1" style="stop-color:#EFF2F6"/>
</linearGradient>
<path class="st7" d="M487.4,405.7l-164.4-29.8l35.5-68l164.7,18.7L487.4,405.7z"/>
<path class="st8" d="M716.8,363.8l-141.4,41.9l-52-79.1l145.2-31L716.8,363.8z"/>
</g>
<path class="st9" d="M526.7,304.6c0,0-85.1-12-100.6-52.6s13.7-64,50.3-58.2c36.6,5.8,27.4,60.5,68.6,56.1
c19.7-2.2,20.2-23.9,27.4-35.5c7.8-12.5,21.8-14.8,21.8-14.8"/>
<g>
<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="430.2036" y1="927.0204" x2="384.3156" y2="972.9084" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#A7B1C1"/>
<stop offset="1" style="stop-color:#C6D0E0"/>
</linearGradient>
<path class="st10" d="M603.9,210.6l10.2,10l54.8-66.8v-2.3l-100.5,23v2.3l18.3,17.2l70.7-34.3l-63.9,41L603.9,210.6z"/>
<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="384.941" y1="901.947" x2="374.7439" y2="912.144" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#A7B1C1"/>
<stop offset="1" style="stop-color:#C6D0E0"/>
</linearGradient>
<path class="st11" d="M593.5,200.5v20.1l10.2-10v-2.3L593.5,200.5z"/>
<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="429.68" y1="928.6961" x2="384.9439" y2="973.432" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#C6D0E0"/>
<stop offset="1" style="stop-color:#EFF2F6"/>
</linearGradient>
<path class="st12" d="M603.9,208.3l10.2,10l54.8-66.8l-100.5,23l18.3,17.2l70.7-34.3l-63.9,41L603.9,208.3z"/>
<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="379.1889" y1="908.824" x2="389.4836" y2="908.824" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#B3BECE"/>
<stop offset="1" style="stop-color:#CAD3DD"/>
</linearGradient>
<path class="st13" d="M593.5,198.2v20.1l10.2-10L593.5,198.2z"/>
</g>
<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="79.76" y1="451.8" x2="79.76" y2="611.288" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#DFE2E5;stop-opacity:0"/>
<stop offset="1" style="stop-color:#D7DCE2;stop-opacity:0.7"/>
</linearGradient>
<polygon class="st14" points="317.8,664 270.4,665.3 274.3,506 285.7,505.8 "/>
<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="122.64" y1="490.2" x2="122.64" y2="624.728" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#DFE2E5;stop-opacity:0"/>
<stop offset="1" style="stop-color:#D7DCE2;stop-opacity:0.7"/>
</linearGradient>
<polygon class="st15" points="375.4,626.9 298.6,626.9 302.4,495.5 343.3,492.3 "/>
<linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="106.896" y1="645.976" x2="25.36" y2="727.512" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#C6D0E0"/>
<stop offset="1" style="stop-color:#EFF2F6"/>
</linearGradient>
<polygon class="st16" points="277.6,351.7 274.3,506.5 285.8,506.5 284.3,351.7 "/>
<g>
<path class="st8" d="M268.9,361.5c0,0,70.1-4.7,7.2-86.8c0,0-45.4,20.2-40.7,63C235.4,337.8,235.4,361.5,268.9,361.5z"/>
<linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="93.7807" y1="747.3456" x2="34.6071" y2="806.5192" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#C6D0E0"/>
<stop offset="1" style="stop-color:#EFF2F6"/>
</linearGradient>
<path class="st17" d="M274.5,285.5c0,0-57.1,49.9-42.8,74.9c0,0,17.8,23.8,71.3,7.2C356.6,350.9,307.8,285.5,274.5,285.5z"/>
</g>
<g>
<linearGradient id="SVGID_17_" gradientUnits="userSpaceOnUse" x1="541.2" y1="464.728" x2="541.2" y2="588.248" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#DFE2E5;stop-opacity:0"/>
<stop offset="1" style="stop-color:#D7DCE2;stop-opacity:0.7"/>
</linearGradient>
<polygon class="st18" points="756.8,652.3 745.3,532 755.6,528.8 765.8,531.9 763.2,652.3 "/>
<g>
<linearGradient id="SVGID_18_" gradientUnits="userSpaceOnUse" x1="540.9527" y1="584.6438" x2="540.9527" y2="695" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#C6D0E0"/>
<stop offset="1" style="stop-color:#EFF2F6"/>
</linearGradient>
<path class="st19" d="M749.2,422.1c0,0,4.7,66.3-1.3,97.9c-1,5.1-5.1,10.9-2.6,12.2c2.6,1.3,3.3-2.3,9.7-2.3
c3.2,0,9.5,3.6,10.8,2.3c1.3-1.3-1.4-4.9-3.2-13.1c-4.1-19.3-10.2-57.5-5.8-97H749.2z"/>
<path class="st8" d="M763.8,440.4c0,15.6-20.5,23.2-36.1,23.2c-15.6,0-25.9-15.2-25.9-30.8c0-15.6,16.5-28.4,32.3-28.4
S763.8,424.7,763.8,440.4z"/>
<linearGradient id="SVGID_19_" gradientUnits="userSpaceOnUse" x1="564.866" y1="680.5838" x2="509.0592" y2="736.3905" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#C6D0E0"/>
<stop offset="1" style="stop-color:#EFF2F6"/>
</linearGradient>
<path class="st20" d="M791.8,414.8c0,20.2-26.4,29.8-46.5,29.8s-33.2-19.7-33.2-39.8c0-20.2,21.4-36.5,41.5-36.5
S791.8,394.5,791.8,414.8z"/>
<linearGradient id="SVGID_20_" gradientUnits="userSpaceOnUse" x1="574.8622" y1="653.991" x2="542.4911" y2="710.0593" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#C6D0E0"/>
<stop offset="1" style="stop-color:#EFF2F6"/>
</linearGradient>
<path class="st21" d="M765.3,463.3c-14.5,0-26.5-15.7-26.5-31.1c0-15.4,19.2-29.7,33.7-29.7s35.3,10.8,32.8,37.9
C802.7,467.5,779.9,463.3,765.3,463.3z"/>
</g>
</g>
<g>
<linearGradient id="SVGID_21_" gradientUnits="userSpaceOnUse" x1="115.5644" y1="618.1076" x2="94.8" y2="638.872" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#C6D0E0"/>
<stop offset="1" style="stop-color:#D7DDE2"/>
</linearGradient>
<polygon class="st22" points="321.5,465.8 302.4,496.2 323.8,505 "/>
<linearGradient id="SVGID_22_" gradientUnits="userSpaceOnUse" x1="122.192" y1="617.752" x2="97.936" y2="642.008" gradientTransform="matrix(1 0 0 -1 214.3622 1117.0552)">
<stop offset="0" style="stop-color:#A7B1C1"/>
<stop offset="1" style="stop-color:#C6D0E0"/>
</linearGradient>
<polygon class="st23" points="323.8,505 343.4,492.5 321.5,465.8 "/>
</g>
<polygon class="st24" points="480.4,447.7 394.6,432.3 394.6,411.8 480.4,427.2 "/>
<path class="st24" d="M554.6,431v57.6l85.8-23V408L554.6,431z M566.1,457.1l45.7-13.2v4.5l-45.7,13.3V457.1z M630.1,454.8l-64,18.4
v-4.6l64-18.4V454.8z M630.1,427.9l-64,18.4v-4.6l64-18.4V427.9z"/>
</g>
</svg>

1
src/assets/icons/svg/error.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" class="icon" p-id="5914" t="1547360570987" version="1.1" viewBox="0 0 1024 1024"><defs><style type="text/css"/></defs><path d="M234.27218 32h58.36780969v179.99999344h-58.36874719V32zM583.99997844 32h58.27218562v179.99999344H583.99997844V32zM175.99999437 331.99998875h524.59216688v59.99999719H175.99999437v-59.99999719z m0 179.9999925h291.40780125v59.99999812H175.99999437v-59.99999812z m352.55998594 383.999985H32V79.99999812h767.99997v381.6477975C911.16871531 492.99216969 991.9999625 597.1043525 991.9999625 721.99997281c0 149.99999437-116.59218281 269.99998969-262.27217719 269.99998969a258.38436469 258.38436469 0 0 1-201.1199925-95.99999625z m212.35217906-443.75998312V138.31999625H91.08781062v699.35997188H492.36873219A277.72780125 277.72780125 0 0 1 467.40779562 721.99997281c0-149.99999437 116.59218281-269.99998969 262.31998969-269.99998875 3.744375 0 7.4878125 0.095625 11.18437407 0.23999906zM175.99999437 691.99997469h233.13561563v59.99999719H175.99999437v-59.99999719z m553.72779094-179.99999344c-110.73562031 0-203.9999925 95.99999625-203.9999925 209.99999156s93.26437125 209.99999156 203.9999925 209.9999925 203.9999925-95.99999625 203.99999156-209.9999925-93.26343375-209.99999156-203.99999156-209.99999156zM703.99997375 559.99997938h59.75999812v203.99999249H703.99997375V559.99997938z m59.75999812 239.99999062v59.75999812H703.99997375V799.99997h59.75999812z" p-id="5915"/></svg>

17
src/assets/icons/svg/exception.svg

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1024 931.5" style="enable-background:new 0 0 1024 931.5;" xml:space="preserve">
<style type="text/css">
</style>
<path id="路径_1382" class="st0" d="M509.1,657.6c-28.9,0-52.4,23.4-52.4,52.4c0,28.9,23.4,52.4,52.4,52.4
c28.9,0,52.4-23.4,52.4-52.4l0,0c0.1-28.8-23.1-52.3-52-52.4C509.4,657.6,509.2,657.6,509.1,657.6z"/>
<path id="路径_1383" class="st0" d="M997.8,843.9c34.9-55.1,34.9-125.3,0-180.4L672,93.3C624.6,6.5,515.7-25.4,429,22.1
c-30,16.4-54.7,41.1-71.2,71.2L26.2,663.5c-34.9,55.1-34.9,125.3,0,180.4c32.7,55.4,92.8,88.7,157.1,87.3h657.5
C905.7,935.1,967,901.1,997.8,843.9z M922.2,803.2c-18.5,30.9-51.3,50.6-87.3,52.4H177.4c-35.1,0.5-68.1-17.1-87.3-46.5
c-17.5-30.7-17.5-68.3,0-98.9l331.6-570.3c18.5-30.9,51.3-50.6,87.3-52.4c36.7-0.7,70.6,19.7,87.3,52.4l325.8,570.3
c23.3,26.6,23.3,66.3,0.1,92.9L922.2,803.2z"/>
<path id="路径_1384" class="st0" d="M497.9,292.8c-31,9.2-41,44-39.8,74.4c1.8,43.8,12.1,175.3,13.8,197.4
c2,26,6.9,57.9,44.1,57.9c18.3,0,36.3-8.8,40.2-48.9c1.9-19.3,9.6-142.6,11-196.2c0.7-25.3,0-60.2-21.7-77.5
C532.1,289.3,514.1,288,497.9,292.8z"/>
</svg>

1
src/assets/icons/svg/exit-fullscreen.svg

@ -0,0 +1 @@
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M49.217 41.329l-.136-35.24c-.06-2.715-2.302-4.345-5.022-4.405h-3.65c-2.712-.06-4.866 2.303-4.806 5.016l.152 19.164-24.151-23.79a6.698 6.698 0 0 0-9.499 0 6.76 6.76 0 0 0 0 9.526l23.93 23.713-18.345.074c-2.712-.069-5.228 1.813-5.64 5.02v3.462c.069 2.721 2.31 4.97 5.022 5.03l35.028-.207c.052.005.087.025.133.025l2.457.054a4.626 4.626 0 0 0 3.436-1.38c.88-.874 1.205-2.096 1.169-3.462l-.262-2.465c0-.048.182-.081.182-.136h.002zm52.523 51.212l18.32-.073c2.713.06 5.224-1.609 5.64-4.815v-3.462c-.068-2.722-2.317-4.97-5.021-5.04l-34.58.21c-.053 0-.086-.021-.138-.021l-2.451-.06a4.64 4.64 0 0 0-3.445 1.381c-.885.868-1.201 2.094-1.174 3.46l.27 2.46c.005.06-.177.095-.177.141l.141 34.697c.069 2.713 2.31 4.338 5.022 4.397l3.45.006c2.705.062 4.867-2.31 4.8-5.026l-.153-18.752 24.151 23.946a6.69 6.69 0 0 0 9.494 0 6.747 6.747 0 0 0 0-9.523L101.74 92.54v.001zM48.125 80.662a4.636 4.636 0 0 0-3.437-1.382l-2.457.06c-.05 0-.082.022-.137.022l-35.025-.21c-2.712.07-4.957 2.318-5.022 5.04v3.462c.409 3.206 2.925 4.874 5.633 4.814l18.554.06-24.132 23.928c-2.62 2.626-2.62 6.89 0 9.524a6.694 6.694 0 0 0 9.496 0l24.155-23.79-.155 18.866c-.06 2.722 2.094 5.093 4.801 5.025h3.65c2.72-.069 4.962-1.685 5.022-4.406l.141-34.956c0-.05-.182-.082-.182-.136l.262-2.46c.03-1.366-.286-2.592-1.166-3.46h-.001zM80.08 47.397a4.62 4.62 0 0 0 3.443 1.374l2.45-.054c.055 0 .088-.02.143-.028l35.08.21c2.712-.062 4.953-2.312 5.021-5.033l.009-3.463c-.417-3.211-2.937-5.084-5.64-5.025l-18.615-.073 23.917-23.715c2.63-2.623 2.63-6.879.008-9.513a6.691 6.691 0 0 0-9.494 0L92.251 26.016l.155-19.312c.065-2.713-2.097-5.085-4.802-5.025h-3.45c-2.713.069-4.954 1.693-5.022 4.406l-.139 35.247c0 .054.18.088.18.136l-.267 2.465c-.028 1.366.288 2.588 1.174 3.463v.001z"/></svg>

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

Loading…
Cancel
Save