xuhuajiao 6 months ago
parent
commit
8a166c9e0d
  1. 14
      .editorconfig
  2. 22
      .env.development
  3. 19
      .env.production
  4. 4
      .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. 117
      package.json
  12. 7
      plopfile.js
  13. 5
      postcss.config.js
  14. 44
      public/favicon.svg
  15. 18
      public/index.html
  16. 3514
      public/static/adapter.min.js
  17. 12
      public/static/config.js
  18. 305
      public/static/webrtcstreamer.js
  19. 4
      public/static/测试.dlt
  20. 30
      src/App.vue
  21. 69
      src/api/RFID/RFID.js
  22. 37
      src/api/archivesConfig/dict.js
  23. 78
      src/api/archivesConfig/dictDetail.js
  24. 36
      src/api/archivesConfig/field.js
  25. 72
      src/api/archivesManage/archivesCheck.js
  26. 189
      src/api/archivesManage/archivesList.js
  27. 91
      src/api/archivesManage/caseManage.js
  28. 55
      src/api/archivesManage/fileImport.js
  29. 217
      src/api/archivesManage/lendManage.js
  30. 108
      src/api/archivesManage/outInStorage.js
  31. 73
      src/api/archivesManage/statistics.js
  32. 60
      src/api/category/category.js
  33. 39
      src/api/category/fieldManage.js
  34. 42
      src/api/category/fileNoFormat.js
  35. 35
      src/api/category/listBrowsing.js
  36. 26
      src/api/category/orderingRule.js
  37. 17
      src/api/data.js
  38. 16
      src/api/generator/genConfig.js
  39. 33
      src/api/generator/generator.js
  40. 10
      src/api/home/accessDoor/accessDoor.js
  41. 29
      src/api/home/alarm/index.js
  42. 24
      src/api/home/device/index.js
  43. 10
      src/api/home/securityDoor/securityDoor.js
  44. 35
      src/api/login.js
  45. 27
      src/api/mnt/app.js
  46. 17
      src/api/mnt/connect.js
  47. 35
      src/api/mnt/database.js
  48. 77
      src/api/mnt/deploy.js
  49. 21
      src/api/mnt/deployHistory.js
  50. 27
      src/api/mnt/serverDeploy.js
  51. 22
      src/api/monitor/log.js
  52. 9
      src/api/monitor/online.js
  53. 174
      src/api/storeManage/deviceManage/device.js
  54. 19
      src/api/storeManage/deviceManage/mac.js
  55. 30
      src/api/storeManage/deviceManage/param.js
  56. 37
      src/api/storeManage/deviceManage/storeroom.js
  57. 19
      src/api/storeManage/displayConfig/index.js
  58. 33
      src/api/storeManage/levelManage/level.js
  59. 35
      src/api/storeManage/listenManage/index.js
  60. 34
      src/api/storeManage/tagManage/bindTagList.js
  61. 45
      src/api/storeManage/taskManage/index.js
  62. 15
      src/api/system/code.js
  63. 44
      src/api/system/dept.js
  64. 40
      src/api/system/job.js
  65. 96
      src/api/system/logs.js
  66. 65
      src/api/system/menu.js
  67. 57
      src/api/system/role.js
  68. 41
      src/api/system/timing.js
  69. 91
      src/api/system/user.js
  70. 65
      src/api/system/zkt.js
  71. 11
      src/api/thirdApi/index.js
  72. 25
      src/api/tools/alipay.js
  73. 24
      src/api/tools/email.js
  74. 27
      src/api/tools/localStorage.js
  75. 40
      src/api/tools/qiniu.js
  76. BIN
      src/assets/401_images/401.gif
  77. BIN
      src/assets/404_images/404.png
  78. BIN
      src/assets/404_images/404_cloud.png
  79. 291
      src/assets/iconfonts/iconfont.css
  80. 1
      src/assets/iconfonts/iconfont.js
  81. 492
      src/assets/iconfonts/iconfont.json
  82. BIN
      src/assets/iconfonts/iconfont.ttf
  83. BIN
      src/assets/iconfonts/iconfont.woff
  84. BIN
      src/assets/iconfonts/iconfont.woff2
  85. 35
      src/assets/iconfonts/new/iconfont.css
  86. 1
      src/assets/iconfonts/new/iconfont.js
  87. 44
      src/assets/iconfonts/new/iconfont.json
  88. BIN
      src/assets/iconfonts/new/iconfont.ttf
  89. BIN
      src/assets/iconfonts/new/iconfont.woff
  90. BIN
      src/assets/iconfonts/new/iconfont.woff2
  91. 1
      src/assets/icons/iconfont.js
  92. 9
      src/assets/icons/index.js
  93. 1
      src/assets/icons/svg/Steve-Jobs.svg
  94. 18
      src/assets/icons/svg/alerm.svg
  95. 1
      src/assets/icons/svg/alipay.svg
  96. 1
      src/assets/icons/svg/anq.svg
  97. 1
      src/assets/icons/svg/app.svg
  98. 1
      src/assets/icons/svg/backup.svg
  99. 22
      src/assets/icons/svg/bindbiaoqian.svg
  100. 1
      src/assets/icons/svg/chain.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

22
.env.development

@ -0,0 +1,22 @@
ENV = 'development'
# 接口地址
#内网服务地址
# VUE_APP_BASE_API = 'http://192.168.99.107:7077'
# VUE_APP_WS_API = 'ws://192.168.99.107:7077'
# VUE_APP_BASE_API = 'http://192.168.99.107:7080'
# VUE_APP_WS_API = 'ws://192.168.99.107:7080'
# VUE_APP_CAMERA_API = '192.168.99.107:3000'
# 许镇-本地服地址
VUE_APP_BASE_API = 'http://192.168.99.72:7090'
VUE_APP_WS_API = 'ws://192.168.99.72:7090'
VUE_APP_WEBRTCSTREAMER_API = '127.0.0.1:8000'
VUE_APP_SDEVID = "D003"
VUE_APP_PRINTNJ='http://192.168.99.72:9100'
# 是否启用 babel-plugin-dynamic-import-node插件
VUE_CLI_BABEL_TRANSPILE_MODULES = true

19
.env.production

@ -0,0 +1,19 @@
ENV = 'production'
# 如果使用 Nginx 代理后端接口,那么此处需要改为 '/',文件查看 Docker 部署篇,Nginx 配置
# 接口地址,注意协议,如果你没有配置 ssl,需要将 https 改为 http
# VUE_APP_BASE_API = 'https://openapitest.aiyxlib.com'
# 火箭军
VUE_APP_BASE_API = 'http://192.168.1.100:7080'
# VUE_APP_BASE_API = 'http://192.168.99.107:7070'
# 如果接口是 http 形式, wss 需要改为 ws
# 火箭军
VUE_APP_WS_API = 'ws://192.168.1.100:7071'
VUE_APP_CAMERA_API = '192.168.1.100:3000'
VUE_APP_WEBRTCSTREAMER_API = '192.168.99.100:8000'
VUE_APP_SDEVID = "D003"
VUE_APP_PRINTNJ='http://192.168.99.72:9100'
# VUE_APP_WS_API = 'ws://192.168.99.107:7071'
# VUE_APP_CAMERA_API = '192.168.1.107:3000'

4
.eslintignore

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

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

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

117
package.json

@ -0,0 +1,117 @@
{
"name": "yxk-storeroom-system",
"version": "1.0.0",
"description": "智能库房综合管理系统",
"author": "刘力",
"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": "SET NODE_OPTIONS=--openssl-legacy-provider && 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",
"@riophae/vue-treeselect": "^0.4.0",
"axios": "^0.21.1",
"clipboard": "2.0.4",
"codemirror": "^5.49.2",
"connect": "3.6.6",
"core-js": "^2.6.12",
"echarts": "^4.2.1",
"echarts-gl": "^1.1.1",
"echarts-wordcloud": "^1.1.3",
"element-ui": "^2.15.6",
"file-saver": "1.3.8",
"fuse.js": "3.4.4",
"highlight.js": "^11.5.1",
"html2canvas": "^1.4.1",
"js-beautify": "^1.10.2",
"js-cookie": "2.2.0",
"jsbarcode": "^3.11.6",
"jsencrypt": "^3.0.0-rc.1",
"jszip": "^3.7.1",
"mavon-editor": "^2.9.1",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
"path-to-regexp": "2.4.0",
"print-js": "^1.6.0",
"qs": "^6.10.1",
"screenfull": "4.2.0",
"sortablejs": "1.8.4",
"vkbeautify": "^0.99.3",
"vue": "^2.6.14",
"vue-count-to": "^1.0.13",
"vue-cropper": "0.4.9",
"vue-echarts": "^5.0.0-beta.0",
"vue-highlightjs": "^1.3.3",
"vue-image-crop-upload": "^2.5.0",
"vue-print-nb-element": "^1.8.0",
"vue-router": "3.0.2",
"vue-splitpane": "1.0.4",
"vuedraggable": "2.20.0",
"vuex": "3.1.0",
"wangeditor": "^4.7.11",
"x2js": "^3.4.3",
"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",
"html-webpack-plugin": "3.2.0",
"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>

18
public/index.html

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="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

12
public/static/config.js

@ -0,0 +1,12 @@
window.g = {
AXIOS_TIMEOUT: 10000,
ApiUrl: 'http://192.168.99.72:7090', // 配置服务器地址
ApiWebRtcServerUrl: '127.0.0.1:8000', // 配置监控视频服务器地址
sDevID:'D003', // 桌面式RFID读写器,
printNJ:'http://192.168.99.72:9100',
ZMINConfig:{ // 标签打印机
ip:'127.0.0.1',
port:'1808',
filePath:'/home/it0/zmin/新标签01.lsf'
}
}

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;
}

4
public/static/测试.dlt

@ -0,0 +1,4 @@
{
"Version": "1.1.0.1",
"Data": "84F6F9E0AD9F93949E999BE8D103EBDDE1DFE4E2E5E3F3EA0D0FF7CAA9B3AFAAEACECBBE11FA2EBB2D2F3218EBCACFF1C0CCCD10FE301305150C2F343217F0D99E8D8D909E97A09993BB9AA6A6EAD305EDA3A5F0E70A0C0DF5C6AAA6BAA8B8FCF529120211082D2D2E16F7EAF21A03350DFE02FF160D2B2D2E16F6DCCDC3DCCBAB91949DE1CAFC8CFDFF0001E9C4ACA2A99CA3A4AEC7B0A2AFA9B5F8E113FBEB0D062A292A2B15E2CFC6D6C7D3CDD1DA0DF62910070200142D2F30C00F2F3435DDBDA1948DA392B49E8EA4E8D1039204060709F09CF2DB0DF5E2E9F8EF1214152610CC10F92B15040716313132BF1134262710EFC9CBC1D1C9C4C61B0130E2C3F5F7F9F9FAE2B18E97A3E7D002EAB9A9979CF0E6090B0C0D0EF6D0D6F9E214FCDBCDBCBE060406140B2E323132331BF5BCEDD1C4EBCAD1CDD1BF170332170C1CD3F6F9F9FAFBE3C3A694A8E8D103EB285A852A637E305D9633608EF8EF121415262912BA11FA2E1406080D0A0B1A11342627292916C013FC2E16040F0B091B12F5F7F9F9FAE28EE5CDFFE7DAE9E00305060709F0ABF2DB0DF5E8F7EE111314152610EEC3C5C0E9D5CAD31900321AFCCCC6CFC6100C2F2C2D2E2F17F7CCCBC9EB96869DE0C9FBE3D5D7E6DD0002030405EDC79FD0A4A8B1F4DD0FF7EAF9F0131526292B10EAC1EEC2D6CCD2D71902341CFF0E06282F302C2D15EFC6E8CDD5D8CC9397949DE1CAFCE5D7E6DD0002030405EDC4A9A4AEC1A5B5B4AFABB3F9E214FCFE040410072A2E2D2E2F19F7D3DBCBEBBFCFCFC9CAD213FC2E16091B0F2F3435F6F7E0C18E9096BB9E9AA4C4A6A7A9ECD507F0E2F1E80B0D0E0F10F8C9ADA9BDBBCD12F82A1207140B2E323132331BE8EEC4C9CBCAE5BCC6D216FF3419091B12F5F7F9F9FAE2AFC69B9FA29CBFA39FA9EDD609F0E3F2E90C0E0F1011F9D4DCB2C6CBC6DEBAC4D214FD2F190A1910333526272910F0F8C9CDD0CAEDD4CDD41B04F6DED2E0F9FBFCFE8AABFF018EE00305EDBECCC9CFF2DB0D9C0E1011F9C9A4B0CCE5C5CECE12FD2D1507190E3133341CE0C4CEE2C117FB2D15160D3332301BF09A89B28BE1CAFCE5E5DCFF0102EAC49AAAA39FF0D90BBA9B0D0F101112FAC9A5BFCD12F82A12F2E6F4160F30323334350DE7EE10FE3013F1E7F50C0D0A171134F6F7F9F9E1BB92C4A69ABC9BA7A3A795EDD609F0E2F2E90C0E0F1011F9D8BCAACE10FA2911C0D2C3C3160F30323334350DECD1BED7ECC6D2D216FF3419F1D8C6AC8C90E0D7FAFCFEFEFFE7B8A6ABA9C2AAA2F0D80AF2E4E4F5EC0F11121314FCDDDBE7C3CFCF15FC2E16E4E81910333526272910E8C213FC2E16171131303435F6DEB98FB795A29CE5CE00E8DBEA0305060795B5090B980C9A"
}

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>

69
src/api/RFID/RFID.js

@ -0,0 +1,69 @@
import request from '@/utils/request'
import qs from 'qs'
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 codeEpc(params) {
return request({
url: 'api/RFID/CodeEpc',
method: 'get',
params
})
}
export function DeCodeEPC(params) {
return request({
url: 'api/RFID/DeCodeEPC',
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
})
}
// 设备id配置,直接读取标签
export function FetchReadGW(params) {
return request({
url: 'api/RFID/GW_ReadGW' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
export default { checkStatus, readEpc, writeEPC, codeEpc, DeCodeEPC, getDeviceMac, getDeviceIdByMac, FetchReadGW }

37
src/api/archivesConfig/dict.js

@ -0,0 +1,37 @@
import request from '@/utils/request'
export function getDicts() {
return request({
url: 'api/dictrionary/menu',
method: 'get'
})
}
export function add(data) {
return request({
url: 'api/dictrionary/edit',
method: 'post',
data
})
}
export function del(ids) {
const data = {
id: ids[0]
}
return request({
url: 'api/dictrionary/delete',
method: 'post',
data
})
}
export function edit(data) {
return request({
url: 'api/dictrionary/edit',
method: 'post',
data
})
}
export default { add, edit, del, getDicts }

78
src/api/archivesConfig/dictDetail.js

@ -0,0 +1,78 @@
import request from '@/utils/request'
export function get(dictName) {
const params = {
dictName,
page: 0,
size: 9999
}
return request({
url: 'api/dictDetail',
method: 'get',
params
})
}
export function findSubsetById(id) {
const params = {
id,
page: 0,
size: 9999
}
return request({
url: 'api/dictrionary/findSubsetById',
method: 'get',
params
})
}
// 根据字典id查询子集
export function FetchFindAllSubsetById(parameter) {
return request({
url: 'api/dictrionary/findAllSubsetById',
method: 'get',
params: parameter
})
}
export function getDictMap(dictName) {
const params = {
dictName,
page: 0,
size: 9999
}
return request({
url: 'api/dictDetail/map',
method: 'get',
params
})
}
export function add(data) {
return request({
url: 'api/dictrionary/edit',
method: 'post',
data
})
}
export function del(ids) {
const data = {
id: ids[0]
}
return request({
url: 'api/dictrionary/delete',
method: 'post',
data
})
}
export function edit(data) {
return request({
url: 'api/dictrionary/edit',
method: 'post',
data
})
}
export default { add, edit, del }

36
src/api/archivesConfig/field.js

@ -0,0 +1,36 @@
import request from '@/utils/request'
export function getDicts() {
return request({
url: 'api/dict/all',
method: 'get'
})
}
export function add(data) {
return request({
url: 'api/field/edit',
method: 'post',
data
})
}
export function edit(data) {
return request({
url: 'api/field/edit',
method: 'post',
data
})
}
export function verifyMaintenance(passWord) {
const params = {
passWord
}
return request({
url: 'api/field/verifyMaintenance',
method: 'get',
params
})
}
export default { add, edit, verifyMaintenance }

72
src/api/archivesManage/archivesCheck.js

@ -0,0 +1,72 @@
import request from '@/utils/request'
import qs from 'qs'
// import axios from 'axios'
// 详情
export function getArrange(params) {
return request({
url: 'api/arrange/getArrange' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 盘点单详情
export function getArrangeDetailes(params) {
return request({
url: 'api/arrange/getArrangeDetailes' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 预新增盘点
export function previewArrange(params) {
return request({
url: 'api/arrange/previewArrange' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 新增盘点
export function addArrange(parameter) {
return request({
url: 'api/arrange/addArrange',
method: 'post',
data: parameter
})
}
// 删除
export function checkDel(parameter) {
return request({
url: 'api/arrange/del',
method: 'post',
data: parameter
})
}
// 结算
export function settlement(parameter) {
return request({
url: 'api/arrange/settlement',
method: 'post',
data: parameter
})
}
// 清空缓存
export function arrangeClean(parameter) {
return request({
url: 'api/arrange/clean',
method: 'post',
data: parameter
})
}
export default {
getArrange,
getArrangeDetailes,
addArrange,
checkDel,
previewArrange,
settlement,
arrangeClean
}

189
src/api/archivesManage/archivesList.js

@ -0,0 +1,189 @@
import request from '@/utils/request'
import qs from 'qs'
// import { form } from '../../components/Crud/crud'
// 档案列表获取显示列
export function FetchTableDisplayFields(params) {
return request({
url: 'api/archives/initArchivesViewTable' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 档案预编辑
export function FetchFormDisplayFields(params) {
return request({
url: 'api/archives/doedit' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
export function add(form) {
return edit(form)
}
// 档案编辑
export function edit(parameter) {
return request({
url: 'api/archives/edit',
method: 'post',
data: parameter
})
}
// 档案删除
export function del(parameter) {
return request({
url: 'api/archives/delete',
method: 'post',
data: parameter
})
}
// 档案回收站删除
export function FetchCompletelyDelete(parameter) {
return request({
url: 'api/archives/completelyDelete',
method: 'post',
data: parameter
})
}
// 档案列表
export function FetchInitArchivesView(params) {
return request({
url: 'api/archives/initArchivesView' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 档案判断值是否重复
export function FetchDoeditIsRepeat(parameter) {
return request({
url: 'api/archives/doeditIsRepeat',
method: 'get',
params: parameter
})
}
// 档案详情
export function FetchArchivesDetails(params) {
return request({
url: 'api/archives/archivesDetails' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 档案元数据
export function FetchArchivesMetadata(params) {
return request({
url: 'api/archives/archivesMetadata' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 初始化档案附件列表
export function FetchInitArchiveFilesView(params) {
return request({
url: 'api/archives/initArchiveFilesView' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 上传档案附件
export function FetchUploadFile(parameter) {
return request({
url: 'api/archives/uploadFile',
method: 'post',
data: parameter
})
}
// 编辑附件
export function FetchEditFile(parameter) {
return request({
url: 'api/archives/editFile',
method: 'post',
data: parameter
})
}
// 删除附件
export function FetchDeleteFile(parameter) {
return request({
url: 'api/archives/deleteFile',
method: 'post',
data: parameter
})
}
// 附件排序
export function FetchFileSort(parameter) {
return request({
url: 'api/archives/fileSort',
method: 'post',
data: parameter
})
}
// 档案还原
export function FetchReduction(parameter) {
return request({
url: 'api/archives/reduction',
method: 'post',
data: parameter
})
}
// 模糊查询
export function queryVagueArchives(params) {
return request({
url: 'api/archives/queryVagueArchives' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 模糊查询 - 2023-06-19
export function querySeniorArchives(params) {
return request({
url: 'api/archives/querySeniorArchives' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 移交档案馆
export function FetchTransferMainLibrary(parameter) {
return request({
url: 'api/archives/transferMainLibrary',
method: 'post',
data: parameter
})
}
// 打印条形码
export function FetchPrintArchivesBarcode(parameter) {
return request({
url: 'api/archives/printArchivesBarcode',
method: 'post',
data: parameter
})
}
// 批量删除
export function FetchBatchTransferMainLibrary(data) {
return request({
url: 'api/archives/batchTransferMainLibrary',
method: 'post',
data: data
})
}
export function FetchArchivesToBorrowByTid(params) {
return request({
url: 'api/archives/getArchivesToBorrowByTid' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
export default { add, edit, del, FetchInitArchivesView, FetchTableDisplayFields, FetchFormDisplayFields, FetchDoeditIsRepeat, queryVagueArchives, querySeniorArchives, FetchPrintArchivesBarcode, FetchBatchTransferMainLibrary, FetchArchivesToBorrowByTid }

91
src/api/archivesManage/caseManage.js

@ -0,0 +1,91 @@
import request from '@/utils/request'
import qs from 'qs'
export function add(form) {
return edit(form)
}
export function edit(parameter) {
return request({
url: 'api/case/edit',
method: 'post',
data: parameter
})
}
// 删除档案盒
export function del(data) {
return request({
url: 'api/case/del',
method: 'post',
data: data
})
}
// 判断盒名称是否重复
export function caseNameIsRepeat(parameter) {
return request({
url: 'api/case/caseNameIsRepeat',
method: 'get',
params: parameter
})
}
// 判断条形码值是否重复
export function barcodeIsRepeat(parameter) {
return request({
url: 'api/case/barcodeIsRepeat',
method: 'get',
params: parameter
})
}
// 档案盒列表
export function FetchInitCaseList(parameter) {
return request({
url: 'api/case/initCaseList',
method: 'get',
params: parameter
})
}
// 档案盒装盒列表
export function FetchInitCartoningList(parameter) {
return request({
url: 'api/case/initCartoningList',
method: 'get',
params: parameter
})
}
// 装盒
export function FetchCartoning(data) {
return request({
url: 'api/case/cartoning',
method: 'post',
data: data
})
}
// 拆盒
export function unpacking(data) {
return request({
url: 'api/case/unpacking',
method: 'post',
data: data
})
}
// 盒详情
export function findInCase(params) {
return request({
url: 'api/case/findInCase' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 批量打印盒数据
export function printCaseBarcode(data) {
return request({
url: 'api/case/printCaseBarcode',
method: 'post',
data: data
})
}
export default { add, edit, del, unpacking, findInCase, printCaseBarcode }

55
src/api/archivesManage/fileImport.js

@ -0,0 +1,55 @@
import request from '@/utils/request'
import qs from 'qs'
import axios from 'axios'
import { getToken } from '@/utils/auth'
// 预览上传zip信息
export function zipUpload(api, file) {
var data = new FormData()
data.append('multipartFile', file)
const config = {
headers: { 'Authorization': getToken() }
}
return axios.post(api, data, config)
}
// 导入预览
export function FetchInitImportPreview(params) {
return request({
url: 'api/unzip/initImportPreview' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 导入
export function FetchImportZip(parameter) {
return request({
url: 'api/unzip/importZip',
method: 'post',
data: parameter
})
}
// 导入日志
export function FetchInitImportLog(params) {
return request({
url: 'api/unzip/initImportLog' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 导入日志详情
export function FetchInitImportLogDetail(params) {
return request({
url: 'api/unzip/initImportLogDetail' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
export default {
zipUpload,
FetchInitImportPreview,
FetchImportZip,
FetchInitImportLog,
FetchInitImportLogDetail
}

217
src/api/archivesManage/lendManage.js

@ -0,0 +1,217 @@
import request from '@/utils/request'
// 判断档案是否可以借阅
export function FetchIsExistBorrow(parameter) {
return request({
url: 'api/borrow/isExistBorrow',
method: 'post',
data: parameter
})
}
// 添加档案到待借阅列表
export function FetchAddArchivesWaitRegister(parameter) {
return request({
url: 'api/borrow/addArchivesWaitRegister',
method: 'post',
data: parameter
})
}
// 待登记列表
export function FetchInitWaitRegisterList(parameter) {
return request({
url: 'api/borrow/initWaitRegisterList',
method: 'get',
params: parameter
})
}
// 根据姓名手机号检索借阅人
export function FetchFindBorrowerByQuery(parameter) {
return request({
url: 'api/borrow/findBorrowerByQuery',
method: 'get',
params: parameter
})
}
// 登记借出
export function FetchRegisterBorrow(parameter) {
return request({
url: 'api/borrow/registerBorrow',
method: 'post',
data: parameter
})
}
// 移出待登记档案
export function FetchDelWaitBorrow(parameter) {
return request({
url: 'api/borrow/delWaitBorrow',
method: 'post',
data: parameter
})
}
// 根据单据查看详情
export function FetchInitBillDetails(parameter) {
return request({
url: 'api/borrow/initBillDetailsByOrderNo',
method: 'get',
params: parameter
})
}
// 借出确认列表
export function FetchInitWaitBorrowList(parameter) {
return request({
url: 'api/borrow/initWaitBorrowList',
method: 'get',
params: parameter
})
}
// 根据单据号获取单据下档案
export function FetchInitArchivesByOrderNo(parameter) {
return request({
url: 'api/borrow/initArchivesByOrderNo',
method: 'get',
params: parameter
})
}
// 重新登记
export function FetchReRegister(parameter) {
return request({
url: 'api/borrow/reRegister',
method: 'post',
data: parameter
})
}
// 移出待借阅清单
export function FetchRemoveWaitBorrow(parameter) {
return request({
url: 'api/borrow/removeWaitBorrow',
method: 'post',
data: parameter
})
}
// 判断借阅流程管理在线离线
export function FetchInitBorrowRule(parameter) {
return request({
url: 'api/borrow/initBorrowRule',
method: 'get',
params: parameter
})
}
// 更改借阅流程管理在线离线
export function FetchUpdateBorrowRule(parameter) {
return request({
url: 'api/borrow/updateBorrowRule',
method: 'post',
data: parameter
})
}
// 根据单据号显示标签 - 借出
export function FetchReadyBorrowShowTid(parameter) {
return request({
url: 'api/borrow/readyBorrowShowTid',
method: 'post',
data: parameter
})
}
// 根据借阅档案id显示标签 - 归还
export function FetchReadyReturnShowTid(parameter) {
return request({
url: 'api/borrow/readyReturnShowTid',
method: 'post',
data: parameter
})
}
// 借阅档案异常处理
export function FetchBorrowException(parameter) {
return request({
url: 'api/borrow/borrowException',
method: 'post',
data: parameter
})
}
// 借出确认
export function FetchBillBorrowConfirm(parameter) {
return request({
url: 'api/borrow/billBorrowConfirm',
method: 'post',
data: parameter
})
}
// 归还确认
export function FetchArchivesReturnConfirm(parameter) {
return request({
url: 'api/borrow/archivesReturnConfirm',
method: 'post',
data: parameter
})
}
// 借阅者管理
export function add(data) {
return request({
url: 'api/borrow/editBorrower',
method: 'post',
data
})
}
export function del(data) {
return request({
url: 'api/borrow/deleteBorrower',
method: 'post',
data
})
}
export function edit(data) {
return request({
url: 'api/borrow/editBorrower',
method: 'post',
data
})
}
// 待办事项
export function FetchWaitBorrower(parameter) {
return request({
url: 'api/borrow/waitBorrower',
method: 'get',
params: parameter
})
}
// 当天当月借还数
export function getDayYearBorrowNum() {
return request({
url: 'api/borrow/thisDayYearBorrowNum',
method: 'get'
})
}
// borrowByTid
export function FetchBorrowByTid(data) {
return request({
url: 'api/borrow/borrowByTid',
method: 'post',
data
})
}
export default { add, edit, del, FetchBorrowByTid }

108
src/api/archivesManage/outInStorage.js

@ -0,0 +1,108 @@
import request from '@/utils/request'
import qs from 'qs'
// 入库 初始化档案盒装盒信息
export function initCasesByArchives(params) {
return request({
url: 'api/storage/initCasesByArchives' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 入库 判断位置是否被占用
export function isOccupy(params) {
return request({
url: 'api/storage/isOccupy' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 入库
export function collect(params) {
return request({
url: 'api/storage/collect',
method: 'post',
data: params
})
}
// 入库 预人工确认
export function readyCollectConfirm(params) {
return request({
url: 'api/storage/readyCollectConfirm',
method: 'post',
data: params
})
}
// 入库 人工确认
export function collectConfirm(params) {
return request({
url: 'api/storage/collectConfirm',
method: 'post',
data: params
})
}
// 出库
export function grant(params) {
return request({
url: 'api/storage/grant',
method: 'post',
data: params
})
}
// 出库 人工确认
export function grantConfirm(params) {
return request({
url: 'api/storage/grantConfirm',
method: 'post',
data: params
})
}
// 出入库详情
export function initStorageLogDetailes(params) {
return request({
url: 'api/storage/initStorageLogDetailes' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 出入库记录列表
export function initStorageLogList(data) {
return request({
url: 'api/storage/initStorageLogList',
method: 'get',
data
})
}
// 出入库记录 导出
export function exportStorageLogList(params) {
return request({
url: 'api/storage/exportStorageLogList' + '?' + qs.stringify(params, { responseType: 'blob' }),
method: 'get'
})
}
// 出入库记录 导出
export function initStorageDetailes(params) {
return request({
url: 'api/storage/initStorageDetailes' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
export default {
initCasesByArchives,
isOccupy,
collect,
grant,
exportStorageLogList,
readyCollectConfirm,
collectConfirm,
initStorageLogDetailes,
initStorageLogList,
grantConfirm,
initStorageDetailes
}

73
src/api/archivesManage/statistics.js

@ -0,0 +1,73 @@
import request from '@/utils/request'
// 获取档案总数
export function FetchGetArchivesNum(parameter) {
return request({
url: 'api/archives/getArchivesNum',
method: 'get',
params: parameter
})
}
// 获取档案盒总数
export function FetchGetCaseNum(parameter) {
return request({
url: 'api/case/getCaseNum',
method: 'get',
params: parameter
})
}
// 档案借阅数量统计
export function FetchInitBorrowerNumStatistics(parameter) {
return request({
url: 'api/borrow/initBorrowerNumStatistics',
method: 'get',
params: parameter
})
}
// 档案类别数量统计
export function FetchInitArchivesTypeNum(parameter) {
return request({
url: 'api/archives/initArchivesTypeNum',
method: 'get',
params: parameter
})
}
// 档案类型统计
export function FetchInitArchivesTypeStatistics(parameter) {
return request({
url: 'api/archives/initArchivesTypeStatistics',
method: 'get',
params: parameter
})
}
// 出入库月份统计
export function FetchStorageStatistics(parameter) {
return request({
url: 'api/storage/storageStatistics',
method: 'get',
params: parameter
})
}
// 档案检索排名
export function FetchInitArchivesSearchRanking(parameter) {
return request({
url: 'api/archives/initArchivesSearchRanking',
method: 'get',
params: parameter
})
}
// 档案实际情况
export function FetchInitAddArchivesStatistics(parameter) {
return request({
url: 'api/archives/initAddArchivesStatistics',
method: 'get',
params: parameter
})
}

60
src/api/category/category.js

@ -0,0 +1,60 @@
import request from '@/utils/request'
export function getCategoryTree() {
return request({
url: 'api/archives-type/menu',
method: 'get'
})
}
export function getCategoryType() {
return request({
url: 'api/archives-type/dropdown-list',
method: 'get'
})
}
export function FetchArchivesTypeManage(params) {
return request({
url: 'api/arc-dic/manage',
method: 'get',
params
})
}
// 点击排序对话框保存按钮,保存顺序
export function sort(data) {
return request({
url: 'api/archives-type/sort',
method: 'put',
data
})
}
export function add(data) {
data = Object.assign({ isTypeMetic: data.isType === 6 }, data)
return request({
url: 'api/archives-type/create',
method: 'post',
data
})
}
export function del(ids) {
const params = { id: ids[0] }
return request({
url: 'api/archives-type/delete',
method: 'delete',
params
})
}
export function edit(data) {
return request({
url: 'api/archives-type/update',
method: 'put',
data
})
}
export default { add, edit, del }

39
src/api/category/fieldManage.js

@ -0,0 +1,39 @@
import request from '@/utils/request'
export function add(data) {
data.isSystem = false
if (data.isDataType === 1) {
data.isDataTypeDetails = 'varchar'
} else if (data.isDataType === 2) {
data.isDataTypeDetails = 'int'
}
return request({
url: 'api/arc-dic/create',
method: 'post',
data
})
}
export function del(ids) {
const params = { id: ids[0] }
return request({
url: 'api/arc-dic/delete',
method: 'delete',
params
})
}
export function edit(data) {
if (data.isDataType === 1) {
data.isDataTypeDetails = 'varchar'
} else if (data.isDataType === 2) {
data.isDataTypeDetails = 'int'
}
return request({
url: 'api/arc-dic/update',
method: 'put',
data
})
}
export default { add, edit, del }

42
src/api/category/fileNoFormat.js

@ -0,0 +1,42 @@
import request from '@/utils/request'
export function getNoFormatField(params) {
return request({
url: 'api/dic-setting/list',
method: 'get',
params
})
}
export function edit(data) {
return request({
url: 'api/dic-setting/update',
method: 'put',
data
})
}
export function add(data) {
return request({
url: 'api/dic-setting/create',
method: 'post',
data
})
}
export function order(data) {
return request({
url: 'api/dic-setting/squence',
method: 'put',
data
})
}
export function del(data) {
return request({
url: 'api/dic-setting/delete',
method: 'delete',
data
})
}
export default { edit }

35
src/api/category/listBrowsing.js

@ -0,0 +1,35 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/arc-list/create',
method: 'post',
data
})
}
export function edit(data) {
return request({
url: 'api/arc-display/state',
method: 'put',
data
})
}
export function previewFormOrder(data) {
return request({
url: 'api/arc-display/sort',
method: 'put',
data
})
}
export function order(data) {
return request({
url: 'api/arc-list/display-order',
method: 'put',
data
})
}
export default { add }

26
src/api/category/orderingRule.js

@ -0,0 +1,26 @@
import request from '@/utils/request'
export function getDisplayField(params) {
return request({
url: 'api/arc-dic/is-display',
method: 'get',
params
})
}
export function edit(data) {
return request({
url: 'api/arc-list-sort/orderby',
method: 'put',
data
})
}
export function order(data) {
return request({
url: 'api/arc-list-sort/update-queue',
method: 'put',
data
})
}
export default { edit }

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

16
src/api/generator/genConfig.js

@ -0,0 +1,16 @@
import request from '@/utils/request'
export function get(tableName) {
return request({
url: 'api/genConfig/' + tableName,
method: 'get'
})
}
export function update(data) {
return request({
url: 'api/genConfig',
data,
method: 'put'
})
}

33
src/api/generator/generator.js

@ -0,0 +1,33 @@
import request from '@/utils/request'
export function getAllTable() {
return request({
url: 'api/generator/tables/all',
method: 'get'
})
}
export function generator(tableName, type) {
return request({
url: 'api/generator/' + tableName + '/' + type,
method: 'post',
responseType: type === 2 ? 'blob' : ''
})
}
export function save(data) {
return request({
url: 'api/generator',
data,
method: 'put'
})
}
export function sync(tables) {
return request({
url: 'api/generator/sync',
method: 'post',
data: tables
})
}

10
src/api/home/accessDoor/accessDoor.js

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

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

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

24
src/api/home/device/index.js

@ -0,0 +1,24 @@
import request from '@/utils/request'
export function getOnlineDevice() {
return request({
url: 'api/device/num',
method: 'get'
})
}
export function getDeviceOnoff() {
return request({
url: 'api/device/onoff',
method: 'get'
})
}
export function getTodayHikAlarmLog() {
return request({
url: 'api/device/todayHikAlarmLog',
method: 'get'
})
}
export default { getOnlineDevice, getDeviceOnoff, getTodayHikAlarmLog }

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/initSecurityDoorLog1',
method: 'get',
params
})
}
export default { securitydoor }

35
src/api/login.js

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

27
src/api/mnt/app.js

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

17
src/api/mnt/connect.js

@ -0,0 +1,17 @@
import request from '@/utils/request'
export function testDbConnect(data) {
return request({
url: 'api/database/testConnect',
method: 'post',
data
})
}
export function testServerConnect(data) {
return request({
url: 'api/serverDeploy/testConnect',
method: 'post',
data
})
}

35
src/api/mnt/database.js

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

77
src/api/mnt/deploy.js

@ -0,0 +1,77 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/deploy',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/deploy',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/deploy',
method: 'put',
data
})
}
export function getApps() {
return request({
url: 'api/app',
method: 'get'
})
}
export function getServers() {
return request({
url: 'api/serverDeploy',
method: 'get'
})
}
/**
* 启动服务
* @param data 选中行
*/
export function startServer(data) {
return request({
url: 'api/deploy/startServer',
method: 'post',
data
})
}
/**
* 停止服务
* @param data 选中行
*/
export function stopServer(data) {
return request({
url: 'api/deploy/stopServer',
method: 'post',
data
})
}
/**
* 停止服务
* @param data 选中行
*/
export function serverStatus(data) {
return request({
url: 'api/deploy/serverStatus',
method: 'post',
data
})
}
export default { add, edit, del, stopServer, serverStatus, startServer, getServers, getApps }

21
src/api/mnt/deployHistory.js

@ -0,0 +1,21 @@
import request from '@/utils/request'
export function del(ids) {
return request({
url: 'api/deployHistory',
method: 'delete',
data: ids
})
}
/**
* 版本回退
* @param data 选中行
*/
export function reducte(data) {
return request({
url: 'api/deploy/serverReduction',
method: 'post',
data
})
}

27
src/api/mnt/serverDeploy.js

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

22
src/api/monitor/log.js

@ -0,0 +1,22 @@
import request from '@/utils/request'
export function getErrDetail(id) {
return request({
url: 'api/logs/error/' + id,
method: 'get'
})
}
export function delAllError() {
return request({
url: 'api/logs/del/error',
method: 'delete'
})
}
export function delAllInfo() {
return request({
url: 'api/logs/del/info',
method: 'delete'
})
}

9
src/api/monitor/online.js

@ -0,0 +1,9 @@
import request from '@/utils/request'
export function del(keys) {
return request({
url: 'auth/online',
method: 'delete',
data: keys
})
}

174
src/api/storeManage/deviceManage/device.js

@ -0,0 +1,174 @@
import request from '@/utils/request'
import qs from 'qs'
export function getSupplier() {
return request({
url: 'api/supplier/dropdown-list',
method: 'get'
})
}
export function add(data) {
const url = getUrl(data, 'add')
return request({
url: url,
method: 'post',
data
})
}
export function del(data) {
return request({
url: '/api/device/delete',
method: 'delete',
data
})
}
export function edit(data) {
const url = getUrl(data, 'edit')
return request({
url: url,
method: 'put',
data
})
}
export function getDeviceType() {
return request({
url: 'api/device/type',
method: 'get'
})
}
export function getDeviceById(params) {
return request({
url: 'api/device/state',
method: 'get',
params
})
}
export function getDesecabinetById(params) {
return request({
url: 'api/desecabinet/query',
method: 'get',
params
})
}
export function getRotarycabinetById(params) {
return request({
url: 'api/rotarycabinet/query',
method: 'get',
params
})
}
function getUrl(data, optTYpe) {
let url = 'api/desecabinet/'
if (data.deviceTypeId.name === '密集架') {
url = 'api/desecabinet/'
} else if (data.deviceTypeId.name === '回转柜') {
url = 'api/rotarycabinet/'
} else if (data.deviceTypeId.name === '摄像头') {
url = 'api/camera/'
} else if (data.deviceTypeId.name === '空调' || data.deviceTypeId.name === '桌面式RFID读写器' || data.deviceTypeId.name === '盘点机' || data.deviceTypeId.name === '恒湿机' || data.deviceTypeId.name === '漏水传感器' || data.deviceTypeId.name === '温湿度感应器' || data.deviceTypeId.name === '空气质量检测设备' || data.deviceTypeId.name === '漏水传感器') {
url = 'api/insidedevices/'
} else if (data.deviceTypeId.name === '通道门' || data.deviceTypeId.name === '手持式RFID读写器') {
url = 'api/outsidedevices/'
} else if (data.deviceTypeId.name === '条码打印机' || data.deviceTypeId.name === '门禁') {
url = 'api/device/'
}
if (optTYpe === 'add') {
url += 'create'
} else if (optTYpe === 'edit') {
url += 'update'
}
return url
}
export function getDeviceList(params) {
return request({
url: 'api/device/list',
method: 'get',
params
})
}
// 根据设备id查看设备是否在线
export function FetchIsOnline(params) {
return request({
url: 'api/device/isOnline' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 根据区列获取在库已借数
export function FetchInBorrowByQuCol(params) {
return request({
url: 'api/tag/getInBorrowByQuCol',
method: 'get',
params
})
}
export function unbind(data) {
return request({
url: 'api/displayconfig/unbind',
method: 'post',
data
})
}
// 打开架体具体某一列
export function FetchCallExternalOpenCol(params) {
return request({
url: 'api/callExternal/openCol',
method: 'get',
params
})
}
// 密集架合架
export function FetchCallExternalResetCol(params) {
return request({
url: 'api/callExternal/reset',
method: 'get',
params
})
}
// 密集架通风
export function FetchCallExternalVent(params) {
return request({
url: 'api/callExternal/vent',
method: 'get',
params
})
}
// 停止移动
export function FetchCallExternalStopMove(params) {
return request({
url: 'api/callExternal/stopMove',
method: 'get',
params
})
}
// 根据设备IP查看设备是否在线
export function FetchPingIP(params) {
return request({
url: 'api/device/pingIP' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 接口判断手持机状态
export function FetchRFIDReadStatus(params) {
return request({
url: 'api/device/getRFIDReadStatus' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
export default { add, edit, del, getSupplier, getDeviceType, getDeviceById, getDesecabinetById, getRotarycabinetById, getDeviceList, FetchIsOnline, FetchInBorrowByQuCol, unbind, FetchCallExternalOpenCol, FetchCallExternalResetCol, FetchCallExternalVent, FetchCallExternalStopMove, FetchPingIP, FetchRFIDReadStatus }

19
src/api/storeManage/deviceManage/mac.js

@ -0,0 +1,19 @@
import request from '@/utils/request'
export function getMac() {
return request({
// url: 'api/RFID/getDeviceMac',
url: 'api/RFID/getDeviceMacLinux',
method: 'get'
})
}
export function bindMac(data) {
return request({
url: 'api/mac/bind',
method: 'post',
data
})
}
export default { getMac, bindMac }

30
src/api/storeManage/deviceManage/param.js

@ -0,0 +1,30 @@
import request from '@/utils/request'
export function getParams(params) {
return request({
url: 'api/spec/list',
method: 'get',
params
})
}
export function del(id) {
const params = {
id: id
}
return request({
url: 'api/spec/delete',
method: 'delete',
params
})
}
export function add(data) {
return request({
url: 'api/spec/bind',
method: 'post',
data
})
}
export default { getParams, add, del }

37
src/api/storeManage/deviceManage/storeroom.js

@ -0,0 +1,37 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/storeroom/create',
method: 'post',
data
})
}
export function del(ids) {
const params = {
id: ids[0]
}
return request({
url: 'api/storeroom/delete',
method: 'delete',
params
})
}
export function edit(data) {
return request({
url: 'api/storeroom/update',
method: 'put',
data
})
}
export function getRooms(data) {
return request({
url: 'api/storeroom/tree',
method: 'get'
})
}
export default { add, edit, del, getRooms }

19
src/api/storeManage/displayConfig/index.js

@ -0,0 +1,19 @@
import request from '@/utils/request'
import qs from 'qs'
export function list(params) {
return request({
url: 'api/displayconfig/list' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
export function bind(data) {
return request({
url: 'api/displayconfig/bind',
method: 'post',
data
})
}
export default { list, bind }

33
src/api/storeManage/levelManage/level.js

@ -0,0 +1,33 @@
import request from '@/utils/request'
export function menu() {
return request({
url: 'api/tag/menu',
method: 'get'
})
}
export function bingdingLabel(data) {
return request({
url: 'api/tag/bingdingLabel',
method: 'post',
data
})
}
export function unbindTag(data) {
return request({
url: 'api/tag/unbindTag',
method: 'post',
data
})
}
export function initTagLogList(parameter) {
return request({
url: 'api/tag/initTagLogList',
method: 'get',
params: parameter
})
}
export default { menu, bingdingLabel, unbindTag, initTagLogList }

35
src/api/storeManage/listenManage/index.js

@ -0,0 +1,35 @@
import request from '@/utils/request'
import qs from 'qs'
export function bind(data) {
return request({
url: 'api/camera/bind',
method: 'post',
data
})
}
export function getDevice() {
return request({
url: 'api/camera/device',
method: 'get'
})
}
export function cameraDownload(params) {
return request({
url: 'api/camera/download' + '?' + qs.stringify(params, { indices: false }),
method: 'get',
responseType: 'blob'
})
}
export function cameraDelete(data) {
return request({
url: 'api/camera/delete',
method: 'delete',
data
})
}
export default { bind, getDevice, cameraDownload, cameraDelete }

34
src/api/storeManage/tagManage/bindTagList.js

@ -0,0 +1,34 @@
import request from '@/utils/request'
export function initTagList(parameter) {
return request({
url: 'api/tag/initTagList',
method: 'get',
params: parameter
})
}
export function bingdingLabel(data) {
return request({
url: 'api/tag/bingdingLabel',
method: 'post',
data
})
}
export function unbindTag(data) {
return request({
url: 'api/tag/unbindTag',
method: 'post',
data
})
}
export function initTagLogList(parameter) {
return request({
url: 'api/tag/initTagLogList',
method: 'get',
params: parameter
})
}
export default { initTagList, bingdingLabel, unbindTag, initTagLogList }

45
src/api/storeManage/taskManage/index.js

@ -0,0 +1,45 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/device/editTimedTasks',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/device/deleteTimedTasks',
method: 'post',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/device/editTimedTasks',
method: 'post',
data
})
}
// 更改计划任务状态
export function FetchStatus(data) {
return request({
url: 'api/device/changeTimedTasksStatus',
method: 'post',
data
})
}
// 计划任务日志
export function FetchInitTimedTasksLog(parameter) {
return request({
url: 'api/device/initTimedTasksLog',
method: 'get',
params: parameter
})
}
export default { add, edit, del, FetchStatus, FetchInitTimedTasksLog }

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

44
src/api/system/dept.js

@ -0,0 +1,44 @@
import request from '@/utils/request'
export function getDepts(params) {
return request({
url: 'api/dept',
method: 'get',
params
})
}
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/dept',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/dept',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/dept',
method: 'put',
data
})
}
export default { add, edit, del, getDepts, getDeptSuperior }

40
src/api/system/job.js

@ -0,0 +1,40 @@
import request from '@/utils/request'
export function getAllJob() {
const params = {
page: 0,
size: 9999,
enabled: true
}
return request({
url: 'api/job',
method: 'get',
params
})
}
export function add(data) {
return request({
url: 'api/job',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/job',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/job',
method: 'put',
data
})
}
export default { add, edit, del }

96
src/api/system/logs.js

@ -0,0 +1,96 @@
import request from '@/utils/request'
import qs from 'qs'
// 报警日志 手动处理
export function warnRemark(data) {
return request({
url: 'api/alarmlog/remark',
method: 'post',
data
})
}
// ------通知管理-------
// 获取表格
export function getNoticeList(params) {
return request({
url: 'api/notice/list',
method: 'get',
params
})
}
// 获取用户
export function getAllUser(params) {
return request({
url: 'api/users/all',
method: 'get',
params
})
}
// 获取设备
export function getAllDev(params) {
return request({
url: 'api/device/all',
method: 'get',
params
})
}
// 发布
export function noticeCreate(data) {
return request({
url: 'api/notice/create',
method: 'post',
data
})
}
// 删除
export function noticeDel(data) {
return request({
url: '/api/notice/delete',
method: 'delete',
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 {
warnRemark,
noticeCreate,
getNoticeList,
getAllUser,
getAllDev,
noticeDel,
getUserNotice,
isread,
userMsgDel
}

65
src/api/system/menu.js

@ -0,0 +1,65 @@
import request from '@/utils/request'
export function getMenusTree(pid) {
return request({
url: 'api/menus/lazy?pid=' + pid,
method: 'get'
})
}
export function getMenus(params) {
return request({
url: 'api/menus',
method: 'get',
params
})
}
export function getMenuSuperior(ids) {
const data = Array.isArray(ids) || ids.length === 0 ? ids : Array.of(ids)
return request({
url: 'api/menus/superior',
method: 'post',
data
})
}
export function getChild(id) {
return request({
url: 'api/menus/child?id=' + id,
method: 'get'
})
}
export function buildMenus() {
return request({
url: 'api/menus/build',
method: 'get'
})
}
export function add(data) {
return request({
url: 'api/menus',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/menus',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/menus',
method: 'put',
data
})
}
export default { add, edit, del, getMenusTree, getMenuSuperior, getMenus, getChild }

57
src/api/system/role.js

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

41
src/api/system/timing.js

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

91
src/api/system/user.js

@ -0,0 +1,91 @@
import request from '@/utils/request'
import { encrypt } from '@/utils/rsaEncrypt'
import { getToken } from '@/utils/auth'
export function add(data) {
return request({
url: 'api/users',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/users',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/users',
method: 'put',
data
})
}
export function editUser(data) {
return request({
url: 'api/users/center',
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/users/resetpassword',
method: 'post',
headers: {
Authorization: getToken()
},
data
})
}
// 我得消息
export function FetchMyNotice(params) {
return request({
url: 'api/users/myNotice',
method: 'get',
params
})
}
// 我得消息全部标记已读
export function FetchMyReadAll(data) {
return request({
url: 'api/users/myReadAll',
method: 'put',
data
})
}
export default { add, edit, del, resetpassword, FetchMyNotice, FetchMyReadAll }

65
src/api/system/zkt.js

@ -0,0 +1,65 @@
import request from '@/utils/request'
// import qs from 'qs'
// 编辑skt设置
export function add(data) {
return request({
url: 'api/securitydoor/editZktParam',
method: 'post',
data
})
}
// 获取ZKT门禁信息
export function FetchZKTDoorList(params) {
return request({
url: 'api/securitydoor/getZKTDoorList',
method: 'get',
params
})
}
// 初始化skt
export function FetchInitZktParam(params) {
return request({
url: 'api/securitydoor/initZktParam',
method: 'get',
params
})
}
// 实时获取ZKT门禁日志
export function FetchRealTimeZKTLog(params) {
return request({
url: 'api/securitydoor/realTimeZKTLog',
method: 'get',
params
})
}
// 海康门禁日志
export function FetchInitHikDoorLog(params) {
return request({
url: 'api/securitydoor/initHikDoorLog',
method: 'get',
params
})
}
export function FetchHikMajor(params) {
return request({
url: 'api/securitydoor/getHikMajor',
method: 'get',
params
})
}
export function FetchHikMinor(params) {
return request({
url: 'api/securitydoor/getHikMinor',
method: 'get',
params
})
}
export default { add, FetchZKTDoorList, FetchInitZktParam, FetchRealTimeZKTLog, FetchInitHikDoorLog, FetchHikMajor, FetchHikMinor }

11
src/api/thirdApi/index.js

@ -0,0 +1,11 @@
import request from '@/utils/request'
export function getRealTimeData(data) {
return request({
url: 'api/thirdapi/getrealtimedata',
method: 'post',
data
})
}
export default { getRealTimeData }

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

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

35
src/assets/iconfonts/new/iconfont.css

@ -0,0 +1,35 @@
@font-face {
font-family: "iconfont"; /* Project id 5078403 */
src: url('iconfont.woff2?t=1766051603785') format('woff2'),
url('iconfont.woff?t=1766051603785') format('woff'),
url('iconfont.ttf?t=1766051603785') format('truetype');
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-bangding:before {
content: "\e785";
}
.icon-alarm:before {
content: "\e655";
}
.icon-shool_jiechubaojing:before {
content: "\e61c";
}
.icon-shebei:before {
content: "\e617";
}
.icon-rfid-fill:before {
content: "\e781";
}

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

44
src/assets/iconfonts/new/iconfont.json

@ -0,0 +1,44 @@
{
"id": "5078403",
"name": "实体档案",
"font_family": "iconfont",
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "6129146",
"name": "101绑定",
"font_class": "bangding",
"unicode": "e785",
"unicode_decimal": 59269
},
{
"icon_id": "9080583",
"name": "alarm",
"font_class": "alarm",
"unicode": "e655",
"unicode_decimal": 58965
},
{
"icon_id": "32184427",
"name": "shool_解除报警",
"font_class": "shool_jiechubaojing",
"unicode": "e61c",
"unicode_decimal": 58908
},
{
"icon_id": "7677938",
"name": "设备",
"font_class": "shebei",
"unicode": "e617",
"unicode_decimal": 58903
},
{
"icon_id": "42198013",
"name": "rfid-fill",
"font_class": "rfid-fill",
"unicode": "e781",
"unicode_decimal": 59265
}
]
}

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

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

BIN
src/assets/iconfonts/new/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 fill="#8a8a8a" 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" fill="#bfbfbf" 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" fill="#cdcdcd" 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" fill="#cdcdcd" 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" fill="#cdcdcd" 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>

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

Loading…
Cancel
Save