fengdong777 2 years ago
parent
commit
f2bac630c2
  1. 28
      demo-web-ui/.editorconfig
  2. 21
      demo-web-ui/.env.development
  3. 18
      demo-web-ui/.env.production
  4. 16
      demo-web-ui/.env.staging
  5. 8
      demo-web-ui/.eslintignore
  6. 398
      demo-web-ui/.eslintrc.js
  7. 32
      demo-web-ui/.gitignore
  8. 56
      demo-web-ui/.project
  9. 10
      demo-web-ui/.travis.yml
  10. 42
      demo-web-ui/LICENSE
  11. 180
      demo-web-ui/README.md
  12. 32
      demo-web-ui/babel.config.js
  13. 70
      demo-web-ui/build/index.js
  14. 48
      demo-web-ui/jest.config.js
  15. 18
      demo-web-ui/jsconfig.json
  16. 114
      demo-web-ui/mock/index.js
  17. 162
      demo-web-ui/mock/mock-server.js
  18. 58
      demo-web-ui/mock/table.js
  19. 168
      demo-web-ui/mock/user.js
  20. 50
      demo-web-ui/mock/utils.js
  21. 144
      demo-web-ui/package.json
  22. 16
      demo-web-ui/postcss.config.js
  23. 34
      demo-web-ui/public/index.html
  24. 28
      demo-web-ui/src/App.vue
  25. 60
      demo-web-ui/src/api/Common/Upload.js
  26. 50
      demo-web-ui/src/api/Common/areaPicker.js
  27. 107
      demo-web-ui/src/api/User/login.js
  28. 74
      demo-web-ui/src/api/flow/read.js
  29. 266
      demo-web-ui/src/api/flow/todo.js
  30. 48
      demo-web-ui/src/api/flow/todoForBusiness.js
  31. 84
      demo-web-ui/src/api/jlcyry/staffOrg/staffOrg.js
  32. 120
      demo-web-ui/src/api/orgRegist/index.js
  33. 44
      demo-web-ui/src/api/orgRegist/organization.js
  34. 66
      demo-web-ui/src/api/system/Role/role.js
  35. 138
      demo-web-ui/src/api/system/Role/roleManage.js
  36. 64
      demo-web-ui/src/api/system/dataDict/dataDict.js
  37. 20
      demo-web-ui/src/api/system/datamapping/datamapping.js
  38. 250
      demo-web-ui/src/api/system/departments/departments.js
  39. 116
      demo-web-ui/src/api/system/dictType/dictCommon.js
  40. 148
      demo-web-ui/src/api/system/dictType/index.js
  41. 250
      demo-web-ui/src/api/system/flowable/definition.js
  42. 160
      demo-web-ui/src/api/system/flowable/finished.js
  43. 128
      demo-web-ui/src/api/system/flowable/form.js
  44. 196
      demo-web-ui/src/api/system/flowable/process.js
  45. 232
      demo-web-ui/src/api/system/flowable/todo.js
  46. 208
      demo-web-ui/src/api/system/functional/functional.js
  47. 18
      demo-web-ui/src/api/system/home/home.js
  48. 98
      demo-web-ui/src/api/system/liuchengchaosong/liuchengchaosong.js
  49. 32
      demo-web-ui/src/api/system/log/index.js
  50. 218
      demo-web-ui/src/api/system/menu/index.js
  51. 118
      demo-web-ui/src/api/system/mobileterminal/mobileterminal.js
  52. 72
      demo-web-ui/src/api/system/organization/organization.js
  53. 40
      demo-web-ui/src/api/system/personalization/personalization.js
  54. 174
      demo-web-ui/src/api/system/postManage/index.js
  55. 166
      demo-web-ui/src/api/system/region/region.js
  56. 356
      demo-web-ui/src/api/system/roleAdminister/index.js
  57. 62
      demo-web-ui/src/api/system/roleAdminister/rolemenus.js
  58. 42
      demo-web-ui/src/api/system/roleMenus/index.js
  59. 252
      demo-web-ui/src/api/system/sources/index.js
  60. 168
      demo-web-ui/src/api/system/user/Auser.js
  61. 86
      demo-web-ui/src/api/system/user/login.js
  62. 86
      demo-web-ui/src/api/system/user/user.js
  63. 64
      demo-web-ui/src/api/system/userAdminister/client.js
  64. 138
      demo-web-ui/src/api/system/userAdminister/index.js
  65. 300
      demo-web-ui/src/api/system/userManage/index.js
  66. 110
      demo-web-ui/src/api/user.js
  67. 174
      demo-web-ui/src/api/workflow/finished.js
  68. 184
      demo-web-ui/src/api/workflow/flow.js
  69. 128
      demo-web-ui/src/api/workflow/form.js
  70. 58
      demo-web-ui/src/api/workflow/info.js
  71. 202
      demo-web-ui/src/api/workflow/process.js
  72. 258
      demo-web-ui/src/api/workflow/todo.js
  73. 302
      demo-web-ui/src/components/AreaPicker/index.vue
  74. 156
      demo-web-ui/src/components/Breadcrumb/index.vue
  75. 260
      demo-web-ui/src/components/ButtonBar/index.vue
  76. 90
      demo-web-ui/src/components/E-image/index.vue
  77. 156
      demo-web-ui/src/components/ErrorLog/index.vue
  78. 88
      demo-web-ui/src/components/Hamburger/index.vue
  79. 146
      demo-web-ui/src/components/Pagging/index.vue
  80. 118
      demo-web-ui/src/components/Screenfull/index.vue
  81. 114
      demo-web-ui/src/components/SizeSelect/index.vue
  82. 124
      demo-web-ui/src/components/SvgIcon/index.vue
  83. 350
      demo-web-ui/src/components/ThemePicker/index.vue
  84. 448
      demo-web-ui/src/components/amap/amap.vue
  85. 64
      demo-web-ui/src/components/flow/flow.vue
  86. 260
      demo-web-ui/src/components/flow/flowRecord.vue
  87. 294
      demo-web-ui/src/components/imgCodeRole/index.vue
  88. 272
      demo-web-ui/src/components/pagination/index.vue
  89. 248
      demo-web-ui/src/components/pagination/pageye.vue
  90. 140
      demo-web-ui/src/components/passwordSafe/index.vue
  91. 160
      demo-web-ui/src/components/tab-search/index.vue
  92. 236
      demo-web-ui/src/components/uploadFile/index.vue
  93. 434
      demo-web-ui/src/components/uploadFile/upload.vue
  94. 110
      demo-web-ui/src/components/uploadFile/upload_apk.vue
  95. 108
      demo-web-ui/src/components/uploadFile/upload_frameApk.vue
  96. 288
      demo-web-ui/src/components/uploadFile/upload_icon.vue
  97. 108
      demo-web-ui/src/components/uploadFile/upload_updateApk.vue
  98. 208
      demo-web-ui/src/components/uploadFileimg/index.vue
  99. 110
      demo-web-ui/src/components/viewerjs/index.vue
  100. 18
      demo-web-ui/src/icons/index.js

28
demo-web-ui/.editorconfig

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

21
demo-web-ui/.env.development

@ -1,10 +1,11 @@
# just a flag # just a flag
ENV = 'development' ENV = 'development'
# base api # base api
VUE_APP_BASE_API = '/api' VUE_APP_BASE_API = '/api'
## 配置测试和本地开发时的 接口地址 ## 配置测试和本地开发时的 接口地址
##VUE_APP_URL = "http://26077a35f5.wicp.vip" ##VUE_APP_URL = "http://26077a35f5.wicp.vip"
VUE_APP_URL = "http://anrui.yyundong.com" # VUE_APP_URL = "http://anrui.yyundong.com"
##VUE_APP_URL = "http://1mn7264414.qicp.vip" ##VUE_APP_URL = "http://1mn7264414.qicp.vip"
VUE_APP_URL = "http://39.104.100.138:9112"

18
demo-web-ui/.env.production

@ -1,9 +1,9 @@
# just a flag # just a flag
ENV = 'production' ENV = 'production'
# base api # base api
VUE_APP_BASE_API = '/api' VUE_APP_BASE_API = '/api'
## 配置 正式接口地址 ## 配置 正式接口地址
VUE_APP_URL = "http://120.46.131.15:8111" VUE_APP_URL = "http://192.168.3.183:9112"

16
demo-web-ui/.env.staging

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

8
demo-web-ui/.eslintignore

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

398
demo-web-ui/.eslintrc.js

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

32
demo-web-ui/.gitignore

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

56
demo-web-ui/.project

@ -1,28 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<projectDescription> <projectDescription>
<name>anrui-system-ui</name> <name>anrui-system-ui</name>
<comment></comment> <comment></comment>
<projects> <projects>
</projects> </projects>
<buildSpec> <buildSpec>
<buildCommand> <buildCommand>
<name>com.aptana.ide.core.unifiedBuilder</name> <name>com.aptana.ide.core.unifiedBuilder</name>
<arguments> <arguments>
</arguments> </arguments>
</buildCommand> </buildCommand>
</buildSpec> </buildSpec>
<natures> <natures>
<nature>com.aptana.projects.webnature</nature> <nature>com.aptana.projects.webnature</nature>
</natures> </natures>
<filteredResources> <filteredResources>
<filter> <filter>
<id>1629107336958</id> <id>1629107336958</id>
<name></name> <name></name>
<type>26</type> <type>26</type>
<matcher> <matcher>
<id>org.eclipse.ui.ide.multiFilter</id> <id>org.eclipse.ui.ide.multiFilter</id>
<arguments>1.0-name-matches-false-false-node_modules</arguments> <arguments>1.0-name-matches-false-false-node_modules</arguments>
</matcher> </matcher>
</filter> </filter>
</filteredResources> </filteredResources>
</projectDescription> </projectDescription>

10
demo-web-ui/.travis.yml

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

42
demo-web-ui/LICENSE

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

180
demo-web-ui/README.md

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

32
demo-web-ui/babel.config.js

@ -1,16 +1,16 @@
module.exports = { module.exports = {
/* presets: [ /* presets: [
// https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
'@vue/cli-plugin-babel/preset' '@vue/cli-plugin-babel/preset'
],*/ ],*/
presets: [ [ "@vue/app", { useBuiltIns: "entry" } ] ], presets: [ [ "@vue/app", { useBuiltIns: "entry" } ] ],
'env': { 'env': {
'development': { 'development': {
// babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require(). // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
// This plugin can significantly increase the speed of hot updates, when you have a large number of pages. // This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
// https://panjiachen.github.io/vue-element-admin-site/guide/advanced/lazy-loading.html // https://panjiachen.github.io/vue-element-admin-site/guide/advanced/lazy-loading.html
'plugins': ['dynamic-import-node'] 'plugins': ['dynamic-import-node']
} }
} }
} }

70
demo-web-ui/build/index.js

@ -1,35 +1,35 @@
const { run } = require('runjs') const { run } = require('runjs')
const chalk = require('chalk') const chalk = require('chalk')
const config = require('../vue.config.js') const config = require('../vue.config.js')
const rawArgv = process.argv.slice(2) const rawArgv = process.argv.slice(2)
const args = rawArgv.join(' ') const args = rawArgv.join(' ')
if (process.env.npm_config_preview || rawArgv.includes('--preview')) { if (process.env.npm_config_preview || rawArgv.includes('--preview')) {
const report = rawArgv.includes('--report') const report = rawArgv.includes('--report')
run(`vue-cli-service build ${args}`) run(`vue-cli-service build ${args}`)
const port = 9526 const port = 9526
const publicPath = config.publicPath const publicPath = config.publicPath
var connect = require('connect') var connect = require('connect')
var serveStatic = require('serve-static') var serveStatic = require('serve-static')
const app = connect() const app = connect()
app.use( app.use(
publicPath, publicPath,
serveStatic('./dist', { serveStatic('./dist', {
index: ['index.html', '/'] index: ['index.html', '/']
}) })
) )
app.listen(port, function () { app.listen(port, function () {
console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`)) console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`))
if (report) { if (report) {
console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`)) console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`))
} }
}) })
} else { } else {
run(`vue-cli-service build ${args}`) run(`vue-cli-service build ${args}`)
} }

48
demo-web-ui/jest.config.js

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

18
demo-web-ui/jsconfig.json

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

114
demo-web-ui/mock/index.js

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

162
demo-web-ui/mock/mock-server.js

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

58
demo-web-ui/mock/table.js

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

168
demo-web-ui/mock/user.js

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

50
demo-web-ui/mock/utils.js

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

144
demo-web-ui/package.json

@ -1,72 +1,72 @@
{ {
"name": "admin-template", "name": "admin-template",
"version": "4.4.0", "version": "4.4.0",
"description": "A vue admin template with Element UI & axios & iconfont & permission control & lint", "description": "A vue admin template with Element UI & axios & iconfont & permission control & lint",
"author": "Pan <panfree23@gmail.com>", "author": "Pan <panfree23@gmail.com>",
"scripts": { "scripts": {
"dev": "vue-cli-service serve", "dev": "vue-cli-service serve",
"build:prod": "vue-cli-service build", "build:prod": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging", "build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview", "preview": "node build/index.js --preview",
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml", "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml",
"lint": "eslint --ext .js,.vue src", "lint": "eslint --ext .js,.vue src",
"test:unit": "jest --clearCache && vue-cli-service test:unit", "test:unit": "jest --clearCache && vue-cli-service test:unit",
"test:ci": "npm run lint && npm run test:unit" "test:ci": "npm run lint && npm run test:unit"
}, },
"dependencies": { "dependencies": {
"axios": "0.18.1", "axios": "0.18.1",
"bpmn-js": "^9.2.2", "bpmn-js": "^9.2.2",
"core-js": "^3.19.3", "core-js": "^3.19.3",
"element-ui": "2.13.2", "element-ui": "2.13.2",
"js-cookie": "2.2.0", "js-cookie": "2.2.0",
"normalize.css": "7.0.0", "normalize.css": "7.0.0",
"nprogress": "0.2.0", "nprogress": "0.2.0",
"path-to-regexp": "2.4.0", "path-to-regexp": "2.4.0",
"portfinder": "^1.0.21", "portfinder": "^1.0.21",
"qs": "^6.9.4", "qs": "^6.9.4",
"sass-resources-loader": "^2.1.1", "sass-resources-loader": "^2.1.1",
"viewerjs": "^1.9.0", "viewerjs": "^1.9.0",
"vue": "2.6.10", "vue": "2.6.10",
"vue-amap": "^0.5.10", "vue-amap": "^0.5.10",
"vue-router": "3.0.6", "vue-router": "3.0.6",
"vuex": "3.1.0", "vuex": "3.1.0",
"vuex-persistedstate": "^4.0.0", "vuex-persistedstate": "^4.0.0",
"xcrud": "^0.4.19" "xcrud": "^0.4.19"
}, },
"devDependencies": { "devDependencies": {
"@vue/cli-plugin-babel": "4.4.4", "@vue/cli-plugin-babel": "4.4.4",
"@vue/cli-plugin-eslint": "4.4.4", "@vue/cli-plugin-eslint": "4.4.4",
"@vue/cli-plugin-unit-jest": "4.4.4", "@vue/cli-plugin-unit-jest": "4.4.4",
"@vue/cli-service": "4.4.4", "@vue/cli-service": "4.4.4",
"@vue/test-utils": "1.0.0-beta.29", "@vue/test-utils": "1.0.0-beta.29",
"autoprefixer": "9.5.1", "autoprefixer": "9.5.1",
"babel-eslint": "10.1.0", "babel-eslint": "10.1.0",
"babel-jest": "23.6.0", "babel-jest": "23.6.0",
"babel-plugin-dynamic-import-node": "2.3.3", "babel-plugin-dynamic-import-node": "2.3.3",
"babel-polyfill": "^6.26.0", "babel-polyfill": "^6.26.0",
"chalk": "2.4.2", "chalk": "2.4.2",
"connect": "3.6.6", "connect": "3.6.6",
"css-loader": "^6.7.1", "css-loader": "^6.7.1",
"eslint": "6.7.2", "eslint": "6.7.2",
"eslint-plugin-vue": "6.2.2", "eslint-plugin-vue": "6.2.2",
"html-webpack-plugin": "3.2.0", "html-webpack-plugin": "3.2.0",
"mockjs": "1.0.1-beta3", "mockjs": "1.0.1-beta3",
"runjs": "4.3.2", "runjs": "4.3.2",
"sass": "1.26.8", "sass": "1.26.8",
"sass-loader": "8.0.2", "sass-loader": "8.0.2",
"script-ext-html-webpack-plugin": "2.1.3", "script-ext-html-webpack-plugin": "2.1.3",
"serve-static": "1.13.2", "serve-static": "1.13.2",
"svg-sprite-loader": "4.1.3", "svg-sprite-loader": "4.1.3",
"svgo": "1.2.2", "svgo": "1.2.2",
"vue-template-compiler": "2.6.10" "vue-template-compiler": "2.6.10"
}, },
"browserslist": [ "browserslist": [
"> 1%", "> 1%",
"last 2 versions" "last 2 versions"
], ],
"engines": { "engines": {
"node": ">=8.9", "node": ">=8.9",
"npm": ">= 3.0.0" "npm": ">= 3.0.0"
}, },
"license": "MIT" "license": "MIT"
} }

16
demo-web-ui/postcss.config.js

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

34
demo-web-ui/public/index.html

@ -1,17 +1,17 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico"> <link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= webpackConfig.name %></title> <title><%= webpackConfig.name %></title>
</head> </head>
<body> <body>
<noscript> <noscript>
<strong>We're sorry but <%= webpackConfig.name %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> <strong>We're sorry but <%= webpackConfig.name %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript> </noscript>
<div id="app"></div> <div id="app"></div>
<!-- built files will be auto injected --> <!-- built files will be auto injected -->
</body> </body>
</html> </html>

28
demo-web-ui/src/App.vue

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

60
demo-web-ui/src/api/Common/Upload.js

@ -1,30 +1,30 @@
import request from '@/utils/request' import request from '@/utils/request'
// 上传图片 // 上传图片
export function imageUpload(data){ export function imageUpload(data){
return request({ return request({
url: '/jlcyry/file/upload', url: '/jlcyry/file/upload',
method: 'post', method: 'post',
data, data,
headers:{'Content-Type':'multipart/form-data'} headers:{'Content-Type':'multipart/form-data'}
}) })
} }
// 移动端管理--新增上传插件 // 移动端管理--新增上传插件
export const uploadFile = '/api/portal/v1/appsubsetversion/save' export const uploadFile = '/api/portal/v1/appsubsetversion/save'
// 移动端管理--更新上传插件 // 移动端管理--更新上传插件
export const upload_UpdateFile = '/api/portal/v1/appsubsetversion/update' export const upload_UpdateFile = '/api/portal/v1/appsubsetversion/update'
// 移动端管理--框架更新上传插件 // 移动端管理--框架更新上传插件
export const upload_frameFile = '/api/portal/v1/appversion/save' export const upload_frameFile = '/api/portal/v1/appversion/save'
// 移动端管理--上传icon(图标) // 移动端管理--上传icon(图标)
export const uploadFileIcon = '/api/portal/file/upload' export const uploadFileIcon = '/api/portal/file/upload'
// 图片上传 // 图片上传
export const uploadImgFile = '/api/portal/file/upload' export const uploadImgFile = '/api/portal/file/upload'
// 移除图片 // 移除图片
export function deleteFilesOss(data) { export function deleteFilesOss(data) {
return request({ return request({
url: '/base/v1/baseVehicleAppendixs/deleteFilesOss', // data, url: '/base/v1/baseVehicleAppendixs/deleteFilesOss', // data,
method: 'post', method: 'post',
params: { fullPath: data } params: { fullPath: data }
}) })
} }

50
demo-web-ui/src/api/Common/areaPicker.js

@ -1,25 +1,25 @@
import request from '@/utils/request' import request from '@/utils/request'
//区域获取省 //区域获取省
export function getProvince(data) { export function getProvince(data) {
return request({ return request({
url: '/system/region/getProvince', url: '/system/region/getProvince',
method: 'get' method: 'get'
}) })
} }
//根据省sid获取该省的所有市 //根据省sid获取该省的所有市
export function getCity(data) { export function getCity(data) {
return request({ return request({
url: '/system/region/getCity', url: '/system/region/getCity',
method: 'get', method: 'get',
params: data params: data
}) })
} }
//根据市sid获取该市的所有县区 //根据市sid获取该市的所有县区
export function getCounty(data) { export function getCounty(data) {
return request({ return request({
url: '/system/region/getCounty', url: '/system/region/getCounty',
method: 'get', method: 'get',
params: data params: data
}) })
} }

107
demo-web-ui/src/api/User/login.js

@ -1,54 +1,53 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
class user { class user {
login(data) { // 登录 login(data) { // 登录
return request({ return request({
url: '/system/user/login', url: '/system/user/login',
method: 'post', method: 'post',
data data
}) })
} }
logout(data) { // 退出
logout(data) { // 退出 return request({
return request({ url: '/portal/v1/sysuser/signOut',
url: '/portal/v1/sysuser/signOut', method: 'post',
method: 'post', data: qs.stringify(data)
data: qs.stringify(data) })
}) }
}
updatePassword(data) { // 退出修改密码
updatePassword(data) { // 退出修改密码 return request({
return request({ url: '/portal/v1/sysuser/updatePassword',
url: '/portal/v1/sysuser/updatePassword', method: 'post',
method: 'post', data: qs.stringify(data)
data: qs.stringify(data) })
}) }
}
reGetPwd(data) { //修改密码
reGetPwd(data) { return request({
return request({ url: '/portal/v1/sysuser/reGetPwd',
url: '/portal/v1/sysuser/reGetPwd', method: 'post',
method: 'post', params: data,
params: data, headers: {
headers: { 'Content-Type': 'application/x-www-form-urlencoded'
'Content-Type': 'application/x-www-form-urlencoded' }
} })
}) }
} selectPasswordByUserSid(data) {
selectPasswordByUserSid(data) { return request({
return request({ url: '/portal/v1/sysuser/selectPasswordByUserSid/' + data,
url: '/portal/v1/sysuser/selectPasswordByUserSid/' + data, method: 'get'
method: 'get' })
}) }
} getOrgListByUserSid(data) {
getOrgListByUserSid(data) { return request({
return request({ url: '/portal/v1/sysuser/getOrgListByUserSid',
url: '/portal/v1/sysuser/getOrgListByUserSid', method: 'get',
method: 'get', params: data
params: data })
}) }
} }
}
export default new user()
export default new user()

74
demo-web-ui/src/api/flow/read.js

@ -1,37 +1,37 @@
import request from '@/utils/request' import request from '@/utils/request'
// 查看待阅和已阅列表 // 查看待阅和已阅列表
export function pagerList(data) { export function pagerList(data) {
return request({ return request({
url: '/message/v1/messagelist/todoAllReadList', url: '/message/v1/messagelist/todoAllReadList',
method: 'post', method: 'post',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
} }
// 待阅列表--修改为已阅 // 待阅列表--修改为已阅
export function changeRead(data) { export function changeRead(data) {
return request({ return request({
url: '/message/v1/messagelist/changeRead?sids=' + data, url: '/message/v1/messagelist/changeRead?sids=' + data,
method: 'get' method: 'get'
}) })
} }
// 待阅列表--修改为已阅 // 待阅列表--修改为已阅
export function getToBeReadNum(data) { export function getToBeReadNum(data) {
return request({ return request({
url: '/message/v1/messagelist/getTodoNum/' + data, url: '/message/v1/messagelist/getTodoNum/' + data,
method: 'get' method: 'get'
}) })
} }
// 待办已办待阅已阅获取人员 // 待办已办待阅已阅获取人员
export function sysstaffinfo() { export function sysstaffinfo() {
return request({ return request({
url: '/portal/v1/sysstaffinfo/v1/sysstaffinfo/selectStaffLists', url: '/portal/v1/sysstaffinfo/v1/sysstaffinfo/selectStaffLists',
method: 'get' method: 'get'
}) })
} }

266
demo-web-ui/src/api/flow/todo.js

@ -1,133 +1,133 @@
import request from '@/utils/request' import request from '@/utils/request'
// 读取xml文件 // 读取xml文件
export function readXml(deployId, token) { export function readXml(deployId, token) {
return request({ return request({
url: '/portal/v1/flow/readXml/' + deployId, url: '/portal/v1/flow/readXml/' + deployId,
method: 'get', method: 'get',
params: token params: token
}) })
} }
// 读取image文件 // 读取image文件
export function getFlowViewer(procInsId, token) { export function getFlowViewer(procInsId, token) {
return request({ return request({
url: '/portal/v1/flow/flowViewer/' + procInsId, url: '/portal/v1/flow/flowViewer/' + procInsId,
method: 'get', method: 'get',
params: token params: token
}) })
} }
// 查看总代办列表 // 查看总代办列表
export function pagerList(params) { export function pagerList(params) {
return request({ return request({
url: '/portal/v1/flow/todoAllTaskList/' + params.params.userSid, url: '/portal/v1/flow/todoAllTaskList/' + params.params.userSid,
method: 'post', method: 'post',
data: params, data: params,
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
} }
// 查看总已办列表 // 查看总已办列表
export function getList(params) { export function getList(params) {
return request({ return request({
url: '/portal/v1/flow/doneAllTaskList/' + params.params.userSid, url: '/portal/v1/flow/doneAllTaskList/' + params.params.userSid,
method: 'post', method: 'post',
data: params, data: params,
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
} }
// 待办已办待阅已阅获取人员 // 待办已办待阅已阅获取人员
export function sysstaffinfo() { export function sysstaffinfo() {
return request({ return request({
url: '/portal/v1/sysstaffinfo/selectStaffLists', url: '/portal/v1/sysstaffinfo/selectStaffLists',
method: 'get' method: 'get'
}) })
} }
// 代办任务同意办理 // 代办任务同意办理
export function businessAgree(params) { export function businessAgree(params) {
return request({ return request({
url: '/portal/v1/flow/complete', url: '/portal/v1/flow/complete',
method: 'post', method: 'post',
data: params, data: params,
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
} }
// 代办任务驳回任务 // 代办任务驳回任务
export function rejectTask(params) { export function rejectTask(params) {
return request({ return request({
url: '/portal/v1/flow/reject/' + params.businessSid, url: '/portal/v1/flow/reject/' + params.businessSid,
method: 'post', method: 'post',
data: params, data: params,
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
} }
// 代办任务终止任务 // 代办任务终止任务
export function breakTask(params) { export function breakTask(params) {
return request({ return request({
url: '/portal/v1/flow/breakProcess/' + params.businessSid, url: '/portal/v1/flow/breakProcess/' + params.businessSid,
method: 'post', method: 'post',
data: params, data: params,
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
} }
// 代办任务撤回任务 // 代办任务撤回任务
export function revokeTask(params) { export function revokeTask(params) {
return request({ return request({
url: '/portal/v1/flow/revokeProcess/' + params.userSid + '/' + params.businessSid, url: '/portal/v1/flow/revokeProcess/' + params.userSid + '/' + params.businessSid,
method: 'post', method: 'post',
data: params, data: params,
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
} }
// 已办任务列表--终止 // 已办任务列表--终止
export function breakProcess(params) { export function breakProcess(params) {
return request({ return request({
url: '/flowable/v1/flow/breakProcess', url: '/flowable/v1/flow/breakProcess',
method: 'post', method: 'post',
data: params, data: params,
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
} }
// 审批记录--保存评论 // 审批记录--保存评论
export function commentSave(data) { export function commentSave(data) {
return request({ return request({
url: '/flowable/v1/processcomment/save', url: '/flowable/v1/processcomment/save',
method: 'post', method: 'post',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
} }
// 根据流程定义id,节点id,终端及类型查询流程与业务表单url // 根据流程定义id,节点id,终端及类型查询流程与业务表单url
export function selectUrl(params) { export function selectUrl(params) {
return request({ return request({
url: '/flowable/v1/flowable/proUrl/selectPcUrlByTaskDefKey', url: '/flowable/v1/flowable/proUrl/selectPcUrlByTaskDefKey',
method: 'post', method: 'post',
data: params, data: params,
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
} }

48
demo-web-ui/src/api/flow/todoForBusiness.js

@ -1,24 +1,24 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
// 读取xml文件 // 读取xml文件
export function readXml (deployId) { export function readXml (deployId) {
return request({ return request({
url: '/portal/v1/flow/readXml/' + deployId, url: '/portal/v1/flow/readXml/' + deployId,
method: 'get' method: 'get'
}) })
} }
// 读取image文件 // 读取image文件
export function getFlowViewer (procInsId) { export function getFlowViewer (procInsId) {
return request({ return request({
url: '/portal/v1/flow/flowViewer/' + procInsId, url: '/portal/v1/flow/flowViewer/' + procInsId,
method: 'get' method: 'get'
}) })
} }
// 任务流转记录 // 任务流转记录
export function flowRecord(query) { export function flowRecord(query) {
return request({ return request({
url: '/portal/v1/flow/task/flowRecord/' + query.procInsId + "/" + query.deployId, url: '/portal/v1/flow/task/flowRecord/' + query.procInsId + "/" + query.deployId,
method: 'get', method: 'get',
params: query params: query
}) })
} }

84
demo-web-ui/src/api/jlcyry/staffOrg/staffOrg.js

@ -1,42 +1,42 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs'; import qs from 'qs';
class staffOrg { class staffOrg {
staffBingingList(data) { // 人员绑定审核列表 staffBingingList(data) { // 人员绑定审核列表
return request({ return request({
url: '/jlcyry/staffOrg/staffBingingList', url: '/jlcyry/staffOrg/staffBingingList',
method: 'post', method: 'post',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token' : "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiIxOCIsImlzcyI6IldCSyIsImV4cCI6MTYwMjg5ODM0NH0.VBtcZcQm_1eLqThHXPM6YZrIHQFy3_LJtBkEONgcoos" 'token' : "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiIxOCIsImlzcyI6IldCSyIsImV4cCI6MTYwMjg5ODM0NH0.VBtcZcQm_1eLqThHXPM6YZrIHQFy3_LJtBkEONgcoos"
} }
}) })
} }
staffOrgBingingDetails(data) { //人员绑定列表点击审核的初始化页面数据 staffOrgBingingDetails(data) { //人员绑定列表点击审核的初始化页面数据
return request({ return request({
url: '/jlcyry/staffOrg/staffOrgBingingDetails/'+ data.userName, url: '/jlcyry/staffOrg/staffOrgBingingDetails/'+ data.userName,
method: 'get', method: 'get',
params: data params: data
}) })
} }
verify(data) { //人员绑定审核 verify(data) { //人员绑定审核
return request({ return request({
url: '/jlcyry/staffOrg/verifyStaffOrg', url: '/jlcyry/staffOrg/verifyStaffOrg',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }
setUpDepartment(data) { //人员绑定部门 setUpDepartment(data) { //人员绑定部门
return request({ return request({
url: '/system/v1/departmentStaffs/setUpDepartment', url: '/system/v1/departmentStaffs/setUpDepartment',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }
} }
export default new staffOrg() export default new staffOrg()

120
demo-web-ui/src/api/orgRegist/index.js

@ -1,60 +1,60 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs'; import qs from 'qs';
// 获取机构的单位类别 // 获取机构的单位类别
export function getDwType(data) { export function getDwType(data) {
return request({ return request({
url: '/system/dictCommon/getDwType', url: '/system/dictCommon/getDwType',
method: 'get', method: 'get',
params: data params: data
}) })
} }
//获取机构的人员类别 //获取机构的人员类别
export function getRylb(data) { export function getRylb(data) {
return request({ return request({
url: '/system/dictCommon/getRylb', url: '/system/dictCommon/getRylb',
method: 'get' method: 'get'
}) })
} }
//获取验证码(注册) //获取验证码(注册)
export function getVerificationCode(data) { export function getVerificationCode(data) {
return request({ return request({
url: '/system/organization/getVerificationCode', url: '/system/organization/getVerificationCode',
method: 'get', method: 'get',
params: data params: data
}) })
} }
//获取机构信息列表 //获取机构信息列表
export function verifyList(data) { export function verifyList(data) {
return request({ return request({
url: '/system/organization/verifyList', url: '/system/organization/verifyList',
method: 'post', method: 'post',
data: qs.stringify(data), data: qs.stringify(data),
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }
//机构信息保存 //机构信息保存
export function saveOrg(data) { export function saveOrg(data) {
return request({ return request({
url: '/system/organization/save', url: '/system/organization/save',
method: 'post', method: 'post',
data: qs.stringify(data), data: qs.stringify(data),
}) })
} }
//入职单位下拉框 //入职单位下拉框
export function inductionUnitList(data) { export function inductionUnitList(data) {
return request({ return request({
url: '/system/organization/inductionUnitList', url: '/system/organization/inductionUnitList',
method: 'post', method: 'post',
data: qs.stringify(data), data: qs.stringify(data),
}) })
} }
export function download(data) { // 下载授权证书 export function download(data) { // 下载授权证书
return request({ return request({
url: 'system/organization/download', url: 'system/organization/download',
method: 'get', method: 'get',
}) })
} }

44
demo-web-ui/src/api/orgRegist/organization.js

@ -1,22 +1,22 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs'; import qs from 'qs';
class organization{ class organization{
inductionUnitList(data) { // 绑定单位 入职单位下拉框 inductionUnitList(data) { // 绑定单位 入职单位下拉框
return request({ return request({
url: '/system/organization/inductionUnitList', url: '/system/organization/inductionUnitList',
method: 'post', method: 'post',
data: qs.stringify(data), data: qs.stringify(data),
}) })
} }
save(data) { // 人员机构关系保存 save(data) { // 人员机构关系保存
return request({ return request({
url: '/jlcyry/staffOrg/save', url: '/jlcyry/staffOrg/save',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }
} }
export default new organization() export default new organization()

66
demo-web-ui/src/api/system/Role/role.js

@ -1,33 +1,33 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
let tokens = window.sessionStorage.getItem('token'); let tokens = window.sessionStorage.getItem('token');
// //
export function rolemenus(data) { export function rolemenus(data) {
return request({ return request({
url: '/system/v1/rolemenus/'+data.roleSid, url: '/system/v1/rolemenus/'+data.roleSid,
method: 'get', method: 'get',
params: data params: data
}) })
} }
// 获取左侧菜单 // 获取左侧菜单
export function getrolemenus(data) { export function getrolemenus(data) {
return request({ return request({
url: '/portal/v1/sysmenu/sourcemenutree', url: 'v1/SysMenu/list',
method: 'POST', method: 'POST',
async: false, async: false,
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens} 'token':tokens}
}) })
} }
// 获取角色的主页菜单 // 获取角色的主页菜单
export function sourcesofrole(data) { export function sourcesofrole(data) {
return request({ return request({
url: '/system/v1/rolemenus/sourcesofrole', url: '/system/v1/rolemenus/sourcesofrole',
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }

138
demo-web-ui/src/api/system/Role/roleManage.js

@ -1,69 +1,69 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
// 获取角色 不分页列表 // 获取角色 不分页列表
export function roleList(data) { export function roleList(data) {
return request({ return request({
url: '/system/v1/roles/list/', url: '/system/v1/roles/list/',
method: 'post', method: 'post',
data: qs.stringify(data) data: qs.stringify(data)
}) })
} }
//获取角色 分页列表 //获取角色 分页列表
export function rolePageList(data) { export function rolePageList(data) {
return request({ return request({
url: '/system/v1/roles/pagelist', url: '/system/v1/roles/pagelist',
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }
//保存 角色信息 //保存 角色信息
export function saveRoleInfo(data) { export function saveRoleInfo(data) {
return request({ return request({
url: '/system/v1/roles', url: '/system/v1/roles',
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }
//根据sid 获取单个角色 信息 //根据sid 获取单个角色 信息
export function getRoleInfo(data) { export function getRoleInfo(data) {
return request({ return request({
url: '/system/v1/roles/' + data.sid, url: '/system/v1/roles/' + data.sid,
method: 'GET', method: 'GET',
data: qs.stringify(data) data: qs.stringify(data)
}) })
} }
//根据sid 修改单个角色 信息 //根据sid 修改单个角色 信息
export function putRoleInfo(data) { export function putRoleInfo(data) {
return request({ return request({
url: '/system/v1/roles/' + data.sid, url: '/system/v1/roles/' + data.sid,
method: 'PUT', method: 'PUT',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }
//根据sid 删除单个角色 信息 //根据sid 删除单个角色 信息
export function delRole(data) { export function delRole(data) {
return request({ return request({
url: '/system/v1/roles/' + data.sid, url: '/system/v1/roles/' + data.sid,
method: 'DELETE', method: 'DELETE',
data: qs.stringify(data) data: qs.stringify(data)
}) })
} }
//根据sid 设置单个角色 的状态 //根据sid 设置单个角色 的状态
export function setRoleEnable(data) { export function setRoleEnable(data) {
return request({ return request({
url: `/system/v1/roles/setIsEnable/${data.sid}/${data.isEnable}`, url: `/system/v1/roles/setIsEnable/${data.sid}/${data.isEnable}`,
method: 'POST', method: 'POST',
data: qs.stringify(data) data: qs.stringify(data)
}) })
} }

64
demo-web-ui/src/api/system/dataDict/dataDict.js

@ -1,32 +1,32 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
//获取单位级别 //获取单位级别
export function getDwJb(data) { export function getDwJb(data) {
return request({ return request({
url: '/system/dictCommon/getDwJb', url: '/system/dictCommon/getDwJb',
method: 'GET', method: 'GET',
}) })
} }
// 获取机构单位类别 // 获取机构单位类别
export function getDwType(data) { export function getDwType(data) {
return request({ return request({
url: '/system/dictCommon/getDwType', url: '/system/dictCommon/getDwType',
method: 'get', method: 'get',
params: data params: data
}) })
} }
//获取机构人员类别 //获取机构人员类别
export function getRylb(data) { export function getRylb(data) {
return request({ return request({
url: '/system/dictCommon/getRylb', url: '/system/dictCommon/getRylb',
method: 'get' method: 'get'
}) })
} }
// 根据Type值获取数据对象 // 根据Type值获取数据对象
export function getDicts(typeCode) { export function getDicts(typeCode) {
return request({ return request({
url: '/system/dictCommon/dicts/'+typeCode, url: '/system/dictCommon/dicts/'+typeCode,
method: 'get' method: 'get'
}) })
} }

20
demo-web-ui/src/api/system/datamapping/datamapping.js

@ -1,10 +1,10 @@
import request from '@/utils/request' import request from '@/utils/request'
export function listPage(data) { export function listPage(data) {
return request({ return request({
url: '/portal/v1/sysmapping/listPage', url: '/portal/v1/sysmapping/listPage',
method: 'post', method: 'post',
data: data, data: data,
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}) })
} }

250
demo-web-ui/src/api/system/departments/departments.js

@ -1,125 +1,125 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
// let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMDI3MDA3fQ.9bEgBzFW2g1CUT7s5VXxhNCa10cyU_WTCFeqpQje0iY' // let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMDI3MDA3fQ.9bEgBzFW2g1CUT7s5VXxhNCa10cyU_WTCFeqpQje0iY'
let tokens = window.sessionStorage.getItem('token') let tokens = window.sessionStorage.getItem('token')
// 获取菜单 分页列表 // 获取菜单 分页列表
export function pageList(data) { export function pageList(data) {
return request({ return request({
url: '/portal/v1/sysorganization/listPage', url: '/portal/v1/sysorganization/listPage',
method: 'POST', method: 'POST',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 查询左侧部门列表 // 查询左侧部门列表
export function orgList(data) { export function orgList(data) {
return request({ return request({
url: '/portal/v1/sysorganization/list', url: '/portal/v1/sysorganization/list',
method: 'get', method: 'get',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 编辑部门信息 // 编辑部门信息
export function postOrgtree(data) { export function postOrgtree(data) {
return request({ return request({
url: '/portal/v1/sysorganization/update/' + data.sid, url: '/portal/v1/sysorganization/update/' + data.sid,
method: 'POST', method: 'POST',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 获取 机构分页列表(编辑部门信息) // 获取 机构分页列表(编辑部门信息)
export function putOrgtree(data) { export function putOrgtree(data) {
return request({ return request({
url: '/portal/v1/sysorganization/update/' + data.sid, url: '/portal/v1/sysorganization/update/' + data.sid,
method: 'POST', method: 'POST',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 新增部门信息 // 新增部门信息
export function addOrgTree(data) { export function addOrgTree(data) {
return request({ return request({
url: '/portal/v1/sysorganization/save', url: '/portal/v1/sysorganization/save',
method: 'POST', method: 'POST',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 回显 // 回显
export function selectBySid(data) { export function selectBySid(data) {
return request({ return request({
url: 'portal/v1/sysorganization/fetchBySid/' + data, url: 'portal/v1/sysorganization/fetchBySid/' + data,
method: 'get', method: 'get',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 树 节点名称 删除 // 树 节点名称 删除
export function delOrgtree(data) { export function delOrgtree(data) {
return request({ return request({
url: `/portal/v1/sysorganization/delBySid/` + data.sid, url: `/portal/v1/sysorganization/delBySid/` + data.sid,
method: 'get', method: 'get',
data: qs.stringify(data), data: qs.stringify(data),
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 查询主管人员 旧的:/portal/v1/sysstafforg/staffinfoList // 查询主管人员 旧的:/portal/v1/sysstafforg/staffinfoList
export function getStaff(data) { export function getStaff(data) {
return request({ return request({
url: 'portal/v1/sysstaffinfo/getStaffNameByDeptSid', url: 'portal/v1/sysstaffinfo/getStaffNameByDeptSid',
method: 'get', method: 'get',
params: data, params: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 查询分管人员 // 查询分管人员
export function getStaffName(params) { export function getStaffName(params) {
return request({ return request({
url: '/portal/v1/sysstaffinfo/getStaffName', url: '/portal/v1/sysstaffinfo/getStaffName',
method: 'get', method: 'get',
params: params, params: params,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 查看二维码 // 查看二维码
export function getQrCode(data) { export function getQrCode(data) {
return request({ return request({
url: '/portal/v1/sysorganization/getQrCode/' + data.sid, url: '/portal/v1/sysorganization/getQrCode/' + data.sid,
method: 'post', method: 'post',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
} }

116
demo-web-ui/src/api/system/dictType/dictCommon.js

@ -1,58 +1,58 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
let tokens = window.sessionStorage.getItem('token'); let tokens = window.sessionStorage.getItem('token');
//获取字典子集 分页列表 //获取字典子集 分页列表
export function dictCommonList(data) { export function dictCommonList(data) {
return request({ return request({
url: '/portal/v1/dictcommons/pageList', url: '/portal/v1/dictcommons/pageList',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }
//保存 字典子级 //保存 字典子级
export function savedictCommon(data) { export function savedictCommon(data) {
return request({ return request({
url: '/portal/v1/dictcommons/save', url: '/portal/v1/dictcommons/save',
method: 'POST', method: 'POST',
data: data , data: data ,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
//根据sid 获取单个菜单 信息 //根据sid 获取单个菜单 信息
export function getRoleInfo(data) { export function getRoleInfo(data) {
return request({ return request({
url: '/system/v1/menus/' + data.sid, url: '/system/v1/menus/' + data.sid,
method: 'GET', method: 'GET',
data: qs.stringify(data) data: qs.stringify(data)
}) })
} }
//根据sid 修改 数据字典 //根据sid 修改 数据字典
export function putdictCommon(data) { export function putdictCommon(data) {
return request({ return request({
url: '/portal/v1/dictcommons/update/' + data.sid, url: '/portal/v1/dictcommons/update/' + data.sid,
method: 'POST', method: 'POST',
data: data , data: data ,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
//根据sid 删除菜单 信息 //根据sid 删除菜单 信息
export function deldictCommon(data) { export function deldictCommon(data) {
return request({ return request({
url: '/portal/v1/dictcommons/delete/' + data.sid, url: '/portal/v1/dictcommons/delete/' + data.sid,
method: 'DELETE', method: 'DELETE',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }

148
demo-web-ui/src/api/system/dictType/index.js

@ -1,74 +1,74 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
let tokens = window.sessionStorage.getItem('token') let tokens = window.sessionStorage.getItem('token')
// 获取菜单 分页列表 // 获取菜单 分页列表
export function pageList(data) { export function pageList(data) {
return request({ return request({
url: '/portal/v1/dicttypes/pageList', url: '/portal/v1/dicttypes/pageList',
method: 'POST', method: 'POST',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 根据sid 修改 // 根据sid 修改
export function putDictType(data) { export function putDictType(data) {
return request({ return request({
url: '/portal/v1/dicttypes/update/' + data.sid, url: '/portal/v1/dicttypes/update/' + data.sid,
method: 'POST', method: 'POST',
data: qs.stringify(data) data: qs.stringify(data)
}) })
} }
// 保存 角色信息 // 保存 角色信息
export function saveDictType(data) { export function saveDictType(data) {
return request({ return request({
url: '/portal/v1/dicttypes/save', url: '/portal/v1/dicttypes/save',
method: 'POST', method: 'POST',
data: data, data: data,
headers: { 'Content-Type': 'application/json', 'token': tokens } headers: { 'Content-Type': 'application/json', 'token': tokens }
}) })
} }
// 根据sid 获取单个菜单 信息 // 根据sid 获取单个菜单 信息
export function getRoleInfo(data) { export function getRoleInfo(data) {
return request({ return request({
url: '/system/v1/menus/' + data.sid, url: '/system/v1/menus/' + data.sid,
method: 'GET', method: 'GET',
data: qs.stringify(data) data: qs.stringify(data)
}) })
} }
// 数据字段--映射管理保存 // 数据字段--映射管理保存
export function saveMappingList(data) { export function saveMappingList(data) {
return request({ return request({
url: '/portal/v1/sysmapping/saveMappingList', url: '/portal/v1/sysmapping/saveMappingList',
method: 'POST', method: 'POST',
data: data, data: data,
headers: { 'Content-Type': 'application/json', 'token': tokens } headers: { 'Content-Type': 'application/json', 'token': tokens }
}) })
} }
// 数据字段--映射管理保存 // 数据字段--映射管理保存
export function selectMappingListInfo(data) { export function selectMappingListInfo(data) {
return request({ return request({
url: '/portal/v1/sysmapping/selectMappingListInfo', url: '/portal/v1/sysmapping/selectMappingListInfo',
method: 'post', method: 'post',
data: data, data: data,
headers: { 'Content-Type': 'application/json', 'token': tokens } headers: { 'Content-Type': 'application/json', 'token': tokens }
}) })
} }
// 根据sid 删除菜单 信息 // 根据sid 删除菜单 信息
export function delDictType(data) { export function delDictType(data) {
return request({ return request({
url: '/portal/v1/dicttypes/delete/' + data.sid, url: '/portal/v1/dicttypes/delete/' + data.sid,
method: 'DELETE', method: 'DELETE',
data: data, data: data,
headers: { 'Content-Type': 'application/json', 'token': tokens } headers: { 'Content-Type': 'application/json', 'token': tokens }
}) })
} }

250
demo-web-ui/src/api/system/flowable/definition.js

@ -1,125 +1,125 @@
import request from "@/utils/request"; import request from "@/utils/request";
// 查询流程定义列表 // 查询流程定义列表
export function listDefinition(query) { export function listDefinition(query) {
console.log(query); console.log(query);
return request({ return request({
// url: '/flowable/definition/list', // url: '/flowable/definition/list',
url: "/flowable/definition/pagerList", url: "/flowable/definition/pagerList",
method: "post", method: "post",
params: query params: query
}); });
} }
// 读取xml文件 // 读取xml文件
export function readXml(deployId) { export function readXml(deployId) {
return request({ return request({
url: "/v1/flowable/definition/readXml/" + deployId, url: "/v1/flowable/definition/readXml/" + deployId,
method: "get" method: "get"
}); });
} }
// 保存模型 // 保存模型
export function saveXml(data) { export function saveXml(data) {
return request({ return request({
url: "/v1/flowable/definition/save", url: "/v1/flowable/definition/save",
method: "post", method: "post",
data: data data: data
}); });
} }
// 部署流程实例 // 部署流程实例
export function definitionStart(procDefId, data) { export function definitionStart(procDefId, data) {
return request({ return request({
url: "/v1/flowable/definition/start/" + procDefId, url: "/v1/flowable/definition/start/" + procDefId,
method: "post", method: "post",
data: data data: data
}); });
} }
// 获取流程变量 // 获取流程变量
export function getProcessVariables(taskId) { export function getProcessVariables(taskId) {
return request({ return request({
url: "/v1/flowable/task/processVariables/" + taskId, url: "/v1/flowable/task/processVariables/" + taskId,
method: "get" method: "get"
}); });
} }
// 激活/挂起流程 // 激活/挂起流程
export function updateState(params) { export function updateState(params) {
return request({ return request({
url: "/flowable/definition/updateState", url: "/flowable/definition/updateState",
method: "put", method: "put",
params: params params: params
}); });
} }
// 指定流程办理人员列表 // 指定流程办理人员列表
export function userList(query) { export function userList(query) {
return request({ return request({
url: "/v1/flowable/definition/userList", url: "/v1/flowable/definition/userList",
method: "get", method: "get",
params: query params: query
}); });
} }
// 指定流程办理组列表 // 指定流程办理组列表
export function roleList(query) { export function roleList(query) {
return request({ return request({
url: "/flowable/definition/roleList", url: "/flowable/definition/roleList",
method: "get", method: "get",
params: query params: query
}); });
} }
// 读取image文件 // 读取image文件
export function readImage(deployId) { export function readImage(deployId) {
return request({ return request({
url: "/flowable/definition/readImage/" + deployId, url: "/flowable/definition/readImage/" + deployId,
method: "get" method: "get"
}); });
} }
// 读取image文件 // 读取image文件
export function getFlowViewer(procInsId) { export function getFlowViewer(procInsId) {
return request({ return request({
url: "/v1/flowable/task/flowViewer/" + procInsId, url: "/v1/flowable/task/flowViewer/" + procInsId,
method: "get" method: "get"
}); });
} }
// 新增流程定义 // 新增流程定义
export function addDeployment(data) { export function addDeployment(data) {
return request({ return request({
url: "/system/deployment", url: "/system/deployment",
method: "post", method: "post",
data: data data: data
}); });
} }
// 修改流程定义 // 修改流程定义
export function updateDeployment(data) { export function updateDeployment(data) {
return request({ return request({
url: "/system/deployment", url: "/system/deployment",
method: "put", method: "put",
data: data data: data
}); });
} }
// 删除流程定义 // 删除流程定义
export function delDeployment(query) { export function delDeployment(query) {
return request({ return request({
url: "/v1/flowable/definition/delete", url: "/v1/flowable/definition/delete",
method: "delete", method: "delete",
params: query params: query
}); });
} }
// 导出流程定义 // 导出流程定义
export function exportDeployment(query) { export function exportDeployment(query) {
return request({ return request({
url: "/system/deployment/export", url: "/system/deployment/export",
method: "get", method: "get",
params: query params: query
}); });
} }

160
demo-web-ui/src/api/system/flowable/finished.js

@ -1,80 +1,80 @@
import request from '@/utils/request' import request from '@/utils/request'
import da from "element-ui/src/locale/lang/da"; import da from "element-ui/src/locale/lang/da";
// 查询已办任务列表 // 查询已办任务列表
export function finishedList(data) { export function finishedList(data) {
return request({ return request({
url: '/v1/flowable/task/doneList', url: '/v1/flowable/task/doneList',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 任务流转记录 // 任务流转记录
export function flowRecord(data) { export function flowRecord(data) {
return request({ return request({
url: '/v1/flowable/task/flowRecord', url: '/v1/flowable/task/flowRecord',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 撤回任务 // 撤回任务
export function revokeProcess(data) { export function revokeProcess(data) {
return request({ return request({
url: '/flowable/task/revokeProcess', url: '/flowable/task/revokeProcess',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 部署流程实例 // 部署流程实例
export function deployStart(deployId) { export function deployStart(deployId) {
return request({ return request({
url: '/flowable/process/startFlow/' + deployId, url: '/flowable/process/startFlow/' + deployId,
method: 'get', method: 'get',
}) })
} }
// 查询流程定义详细 // 查询流程定义详细
export function getDeployment(id) { export function getDeployment(id) {
return request({ return request({
url: '/system/deployment/' + id, url: '/system/deployment/' + id,
method: 'get' method: 'get'
}) })
} }
// 新增流程定义 // 新增流程定义
export function addDeployment(data) { export function addDeployment(data) {
return request({ return request({
url: '/system/deployment', url: '/system/deployment',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 修改流程定义 // 修改流程定义
export function updateDeployment(data) { export function updateDeployment(data) {
return request({ return request({
url: '/system/deployment', url: '/system/deployment',
method: 'put', method: 'put',
data: data data: data
}) })
} }
// 删除流程定义 // 删除流程定义
export function delDeployment(id) { export function delDeployment(id) {
return request({ return request({
url: '/system/deployment/' + id, url: '/system/deployment/' + id,
method: 'delete' method: 'delete'
}) })
} }
// 导出流程定义 // 导出流程定义
export function exportDeployment(query) { export function exportDeployment(query) {
return request({ return request({
url: '/system/deployment/export', url: '/system/deployment/export',
method: 'get', method: 'get',
params: query params: query
}) })
} }

128
demo-web-ui/src/api/system/flowable/form.js

@ -1,64 +1,64 @@
import request from '@/utils/request' import request from '@/utils/request'
// 查询流程表单列表 // 查询流程表单列表
export function listForm(query) { export function listForm(query) {
return request({ return request({
url: '/v1/flowable/form/list', url: '/v1/flowable/form/list',
method: 'post', method: 'post',
data: query data: query
}) })
} }
// 查询流程表单详细 // 查询流程表单详细
export function getForm(formId) { export function getForm(formId) {
return request({ return request({
url: '/v1/flowable/form/' + formId, url: '/v1/flowable/form/' + formId,
method: 'get' method: 'get'
}) })
} }
// 新增流程表单 // 新增流程表单
export function addForm(data) { export function addForm(data) {
return request({ return request({
url: '/v1/flowable/form/add', url: '/v1/flowable/form/add',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':1 'token':1
} }
}) })
} }
// 修改流程表单 // 修改流程表单
export function updateForm(data) { export function updateForm(data) {
return request({ return request({
url: '/v1/flowable/form', url: '/v1/flowable/form',
method: 'put', method: 'put',
data: data data: data
}) })
} }
// 挂载表单 // 挂载表单
export function addDeployForm(data) { export function addDeployForm(data) {
return request({ return request({
url: '/v1/flowable/form/addDeployForm', url: '/v1/flowable/form/addDeployForm',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 删除流程表单 // 删除流程表单
export function delForm(formId) { export function delForm(formId) {
return request({ return request({
url: '/v1/flowable/form/' + formId, url: '/v1/flowable/form/' + formId,
method: 'delete' method: 'delete'
}) })
} }
// 导出流程表单 // 导出流程表单
export function exportForm(query) { export function exportForm(query) {
return request({ return request({
url: '/v1/flowable/form/export', url: '/v1/flowable/form/export',
method: 'get', method: 'get',
params: query params: query
}) })
} }

196
demo-web-ui/src/api/system/flowable/process.js

@ -1,98 +1,98 @@
import request from '@/utils/request' import request from '@/utils/request'
import da from "element-ui/src/locale/lang/da"; import da from "element-ui/src/locale/lang/da";
// 我的发起的流程 // 我的发起的流程
export function myProcessList(data) { export function myProcessList(data) {
return request({ return request({
url: '/v1/flowable/task/myprocess', url: '/v1/flowable/task/myprocess',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 完成任务 // 完成任务
export function complete(data) { export function complete(data) {
return request({ return request({
url: '/flowable/task/complete', url: '/flowable/task/complete',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 取消申请 // 取消申请
export function stopProcess(data) { export function stopProcess(data) {
return request({ return request({
url: '/v1/flowable/task/stopProcess', url: '/v1/flowable/task/stopProcess',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 驳回任务 // 驳回任务
export function rejectTask(data) { export function rejectTask(data) {
return request({ return request({
url: '/v1/flowable/task/reject', url: '/v1/flowable/task/reject',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 可退回任务列表 // 可退回任务列表
export function returnList(data) { export function returnList(data) {
return request({ return request({
url: '/v1/flowable/task/returnList', url: '/v1/flowable/task/returnList',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 部署流程实例 // 部署流程实例
export function deployStart(deployId) { export function deployStart(deployId) {
return request({ return request({
url: '/flowable/process/startFlow/' + deployId, url: '/flowable/process/startFlow/' + deployId,
method: 'get', method: 'get',
}) })
} }
// 查询流程定义详细 // 查询流程定义详细
export function getDeployment(id) { export function getDeployment(id) {
return request({ return request({
url: '/system/deployment/' + id, url: '/system/deployment/' + id,
method: 'get' method: 'get'
}) })
} }
// 新增流程定义 // 新增流程定义
export function addDeployment(data) { export function addDeployment(data) {
return request({ return request({
url: '/system/deployment', url: '/system/deployment',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 修改流程定义 // 修改流程定义
export function updateDeployment(data) { export function updateDeployment(data) {
return request({ return request({
url: '/system/deployment', url: '/system/deployment',
method: 'put', method: 'put',
data: data data: data
}) })
} }
// 删除流程定义 // 删除流程定义
export function delDeployment(id) { export function delDeployment(id) {
return request({ return request({
url: '/system/deployment/' + id, url: '/system/deployment/' + id,
method: 'delete' method: 'delete'
}) })
} }
// 导出流程定义 // 导出流程定义
export function exportDeployment(query) { export function exportDeployment(query) {
return request({ return request({
url: '/system/deployment/export', url: '/system/deployment/export',
method: 'get', method: 'get',
params: query params: query
}) })
} }

232
demo-web-ui/src/api/system/flowable/todo.js

@ -1,116 +1,116 @@
import request from '@/utils/request' import request from '@/utils/request'
import da from "element-ui/src/locale/lang/da"; import da from "element-ui/src/locale/lang/da";
// 查询待办任务列表 // 查询待办任务列表
export function todoList(data) { export function todoList(data) {
return request({ return request({
url: '/v1/flowable/task/todoList', url: '/v1/flowable/task/todoList',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 完成任务 // 完成任务
export function complete(data) { export function complete(data) {
return request({ return request({
url: '/v1/flowable/task/complete', url: '/v1/flowable/task/complete',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 委派任务 // 委派任务
export function delegate(data) { export function delegate(data) {
return request({ return request({
url: '/flowable/task/delegate', url: '/flowable/task/delegate',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 退回任务 // 退回任务
export function returnTask(data) { export function returnTask(data) {
return request({ return request({
url: '/v1/flowable/task/return', url: '/v1/flowable/task/return',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 驳回任务 // 驳回任务
export function rejectTask(data) { export function rejectTask(data) {
return request({ return request({
url: '/v1/flowable/task/reject', url: '/v1/flowable/task/reject',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 可退回任务列表 // 可退回任务列表
export function returnList(data) { export function returnList(data) {
return request({ return request({
url: '/v1/flowable/task/returnList', url: '/v1/flowable/task/returnList',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 下一节点 // 下一节点
export function getNextFlowNode(data) { export function getNextFlowNode(data) {
return request({ return request({
url: '/v1/flowable/task/nextFlowNode', url: '/v1/flowable/task/nextFlowNode',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 部署流程实例 // 部署流程实例
export function deployStart(deployId) { export function deployStart(deployId) {
return request({ return request({
url: '/flowable/process/startFlow/' + deployId, url: '/flowable/process/startFlow/' + deployId,
method: 'get', method: 'get',
}) })
} }
// 查询流程定义详细 // 查询流程定义详细
export function getDeployment(id) { export function getDeployment(id) {
return request({ return request({
url: '/system/deployment/' + id, url: '/system/deployment/' + id,
method: 'get' method: 'get'
}) })
} }
// 新增流程定义 // 新增流程定义
export function addDeployment(data) { export function addDeployment(data) {
return request({ return request({
url: '/system/deployment', url: '/system/deployment',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 修改流程定义 // 修改流程定义
export function updateDeployment(data) { export function updateDeployment(data) {
return request({ return request({
url: '/system/deployment', url: '/system/deployment',
method: 'put', method: 'put',
data: data data: data
}) })
} }
// 删除流程定义 // 删除流程定义
export function delDeployment(id) { export function delDeployment(id) {
return request({ return request({
url: '/system/deployment/' + id, url: '/system/deployment/' + id,
method: 'delete' method: 'delete'
}) })
} }
// 导出流程定义 // 导出流程定义
export function exportDeployment(query) { export function exportDeployment(query) {
return request({ return request({
url: '/system/deployment/export', url: '/system/deployment/export',
method: 'get', method: 'get',
params: query params: query
}) })
} }

208
demo-web-ui/src/api/system/functional/functional.js

@ -1,104 +1,104 @@
import request from '@/utils/request' import request from '@/utils/request'
let tokens = window.sessionStorage.getItem('token') let tokens = window.sessionStorage.getItem('token')
// 获取菜单 分页列表 // 获取菜单 分页列表
export function pageList(data) { export function pageList(data) {
return request({ return request({
url: '/portal/v1/sysfunction/listAllVoForSource', url: '/portal/v1/sysfunction/listAllVoForSource',
method: 'POST', method: 'POST',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 新增 // 新增
export function savePost(data) { export function savePost(data) {
return request({ return request({
url: '/portal/v1/sysfunction/save', url: '/portal/v1/sysfunction/save',
method: 'POST', method: 'POST',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 模块名称 // 模块名称
export function sourceList(data) { export function sourceList(data) {
return request({ return request({
url: '/portal/v1/syssource/listAll', url: 'v1/SysMenu/list',
method: 'POST', method: 'POST',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 删除 // 删除
export function delOrgroles(data) { export function delOrgroles(data) {
return request({ return request({
url: '/portal/v1/sysfunction/delBySids/' + data.sid, url: '/portal/v1/sysfunction/delBySids/' + data.sid,
method: 'get', method: 'get',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 修改 // 修改
export function getSingleData(data) { export function getSingleData(data) {
return request({ return request({
url: '/portal/v1/sysfunction/fetchBySid/' + data.id, url: '/portal/v1/sysfunction/fetchBySid/' + data.id,
method: 'get', method: 'get',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
export function putOrgroles(data) { export function putOrgroles(data) {
return request({ return request({
url: '/portal/v1/sysfunction/update/' + data.sid, url: '/portal/v1/sysfunction/update/' + data.sid,
method: 'POST', method: 'POST',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 功能是否可用状态 // 功能是否可用状态
export function IsEnable(data) { export function IsEnable(data) {
return request({ return request({
url: '/portal/v1/sysfunction/updateIsEnable/' + data.sid + '/' + data.isEnable, url: '/portal/v1/sysfunction/updateIsEnable/' + data.sid + '/' + data.isEnable,
method: 'POST', method: 'POST',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 获取模块下的菜单 // 获取模块下的菜单
export function getMenusForFunction(data) { export function getMenusForFunction(data) {
return request({ return request({
url: '/portal/v1/sysmenu/getMenusForFunction', url: '/portal/v1/sysmenu/getMenusForFunction',
method: 'POST', method: 'POST',
data: data, data: data,
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}) })
} }

18
demo-web-ui/src/api/system/home/home.js

@ -1,9 +1,9 @@
import request from '@/utils/request' import request from '@/utils/request'
// 获取当前用户的待办数量 // 获取当前用户的待办数量
export function getTodoNum(data) { export function getTodoNum(data) {
return request({ return request({
url: '/portal/v1/flow/getTodoNum/' + data, url: '/portal/v1/flow/getTodoNum/' + data,
method: 'get' method: 'get'
}) })
} }

98
demo-web-ui/src/api/system/liuchengchaosong/liuchengchaosong.js

@ -1,49 +1,49 @@
import request from '@/utils/request' import request from '@/utils/request'
// 获取菜单 分页列表 // 获取菜单 分页列表
export function pageList(data) { export function pageList(data) {
return request({ return request({
url: '/portal/v1/sysflowcc/listPage', url: '/portal/v1/sysflowcc/listPage',
method: 'post', method: 'post',
data: data, data: data,
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}) })
} }
// 新增 // 新增
export function save(data) { export function save(data) {
return request({ return request({
url: '/portal/v1/sysflowcc/save', url: '/portal/v1/sysflowcc/save',
method: 'post', method: 'post',
data: data, data: data,
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}) })
} }
// 初始化应用 // 初始化应用
export function fetchSid(data) { export function fetchSid(data) {
return request({ return request({
url: '/portal/v1/sysflowcc/fetchDetailsBySid/' + data, url: '/portal/v1/sysflowcc/fetchDetailsBySid/' + data,
method: 'get' method: 'get'
}) })
} }
// 删除 // 删除
export function delBySids(data) { export function delBySids(data) {
return request({ return request({
url: '/portal/v1/sysflowcc/delBySids', url: '/portal/v1/sysflowcc/delBySids',
method: 'DELETE', method: 'DELETE',
data: data, data: data,
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}) })
} }
// 查询角色列表 // 查询角色列表
export function roleList(data){ export function roleList(data){
return request({ return request({
url: '/portal/v1/sysrole/listAll', url: '/portal/v1/sysrole/listAll',
method: 'post', method: 'post',
data: data, data: data,
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}) })
} }

32
demo-web-ui/src/api/system/log/index.js

@ -1,16 +1,16 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
//let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMDI3MDA3fQ.9bEgBzFW2g1CUT7s5VXxhNCa10cyU_WTCFeqpQje0iY' //let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMDI3MDA3fQ.9bEgBzFW2g1CUT7s5VXxhNCa10cyU_WTCFeqpQje0iY'
let tokens = window.sessionStorage.getItem('token'); let tokens = window.sessionStorage.getItem('token');
//获取菜单 分页列表 //获取菜单 分页列表
export function logPageList(data) { export function logPageList(data) {
return request({ return request({
url: '/portal/v1/systemlog/listPage', url: '/portal/v1/systemlog/listPage',
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }

218
demo-web-ui/src/api/system/menu/index.js

@ -1,109 +1,109 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
//let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMDI3MDA3fQ.9bEgBzFW2g1CUT7s5VXxhNCa10cyU_WTCFeqpQje0iY' //let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMDI3MDA3fQ.9bEgBzFW2g1CUT7s5VXxhNCa10cyU_WTCFeqpQje0iY'
let tokens = window.sessionStorage.getItem('token'); let tokens = window.sessionStorage.getItem('token');
//获取菜单 分页列表 //获取菜单 分页列表
export function pageList(data) { export function pageList(data) {
return request({ return request({
url: '/portal/v1/sysmenu/listAllVoForSource', url: 'v1/SysMenu/list',
method: 'POST', method: 'POST',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 新增保存 菜单信息 // 新增保存 菜单信息
export function saveMenusInfo(data) { export function saveMenusInfo(data) {
return request({ return request({
url: '/portal/v1/sysmenu/save', url: 'v1/SysMenu/save',
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: { 'Content-Type': 'application/json' }
}) })
} }
// 修改保存 菜单信息 // 修改保存 菜单信息
export function putMenusInfo(data) { export function putMenusInfo(data) {
return request({ return request({
url: '/portal/v1/sysmenu/update/' + data.sid, url: 'v1/SysMenu/alterSysMenu',
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: { 'Content-Type': 'application/json' }
}) })
} }
//根据sid 删除单个 资源信息 //根据sid 删除单个 资源信息
export function delMenus(data) { export function delMenus(data) {
return request({ return request({
url: '/portal/v1/sysmenu/delBySids/' + data.sid, url: 'v1/SysMenu/deleteSysMenu/' + data.sid,
method: 'get', method: 'get',
data: qs.stringify(data), data: qs.stringify(data),
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 修改状态 // 修改状态
export function IsEnable(data) { export function IsEnable(data) {
return request({ return request({
url: '/portal/v1/sysmenu/updateIsEnable/' + data.sid + '/' + data.isEnable, url: '/portal/v1/sysmenu/updateIsEnable/' + data.sid + '/' + data.isEnable,
method: 'POST', method: 'POST',
/* data: qs.stringify(data),*/ /* data: qs.stringify(data),*/
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 获取菜单 不分页列表 // 获取菜单 不分页列表
export function roleList(data) { export function roleList(data) {
return request({ return request({
url: '/system/v1/menus/list', url: '/system/v1/menus/list',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: { 'Content-Type': 'application/json' }
}) })
} }
//获取菜单 分页列表 //获取菜单 分页列表
export function menusPageList(data) { export function menusPageList(data) {
return request({ return request({
url: '/system/v1/menus/pagelist', url: '/system/v1/menus/pagelist',
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: { 'Content-Type': 'application/json' }
}) })
} }
//获取菜单 树形分页列表 //获取菜单 树形分页列表
export function menusTreelist(data) { export function menusTreelist(data) {
return request({ return request({
url: '/system/v1/menus/treelist', url: '/system/v1/menus/treelist',
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: { 'Content-Type': 'application/json' }
}) })
} }
//根据sid 获取单个菜单 信息 //根据sid 获取单个菜单 信息
export function getRoleInfo(data) { export function getRoleInfo(data) {
return request({ return request({
url: '/system/v1/menus/' + data.sid, url: '/system/v1/menus/' + data.sid,
method: 'GET', method: 'GET',
data: qs.stringify(data) data: qs.stringify(data)
}) })
} }

118
demo-web-ui/src/api/system/mobileterminal/mobileterminal.js

@ -1,59 +1,59 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
// 获取菜单 分页列表 // 获取菜单 分页列表
export function pageList(data) { export function pageList(data) {
return request({ return request({
url: '/portal/v1/sysmobilemenu/list', url: '/portal/v1/sysmobilemenu/list',
method: 'get', method: 'get',
data data
}) })
} }
// 新增插件 // 新增插件
export function save(data) { export function save(data) {
return request({ return request({
url: '/portal/v1/appsubsetversion/save', url: '/portal/v1/appsubsetversion/save',
method: 'get', method: 'get',
data: data data: data
}) })
} }
// 更新插件 // 更新插件
export function putMenusInfo(data) { export function putMenusInfo(data) {
return request({ return request({
url: '/portal/v1/sysmenu/update/' + data.sid, url: '/portal/v1/sysmenu/update/' + data.sid,
method: 'POST', method: 'POST',
data: data, data: data,
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}) })
} }
// 新增/编辑应用 // 新增/编辑应用
export function saveOrUpdate(data) { export function saveOrUpdate(data) {
return request({ return request({
url: '/portal/v1/sysmobilemenu/saveOrUpdate', url: '/portal/v1/sysmobilemenu/saveOrUpdate',
method: 'post', method: 'post',
data: data, data: data,
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}) })
} }
// 初始化应用 // 初始化应用
export function details(data) { export function details(data) {
return request({ return request({
url: '/portal/v1/sysmobilemenu/details', url: '/portal/v1/sysmobilemenu/details',
method: 'get', method: 'get',
params: data params: data
}) })
} }
// 根据sid应用 // 根据sid应用
export function deleteMenu(data) { export function deleteMenu(data) {
return request({ return request({
url: '/portal/v1/sysmobilemenu/deleteMenu', url: '/portal/v1/sysmobilemenu/deleteMenu',
method: 'DELETE', method: 'DELETE',
params: data params: data
}) })
} }

72
demo-web-ui/src/api/system/organization/organization.js

@ -1,36 +1,36 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
let tokens = window.sessionStorage.getItem('token'); let tokens = window.sessionStorage.getItem('token');
class user{ class user{
verifyList(data){ // 获取列表 verifyList(data){ // 获取列表
return request({ return request({
url: '/system/organization/verifyList', url: '/system/organization/verifyList',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }
orgRegisterDetails(data){ // 单位注册信息详情 orgRegisterDetails(data){ // 单位注册信息详情
return request({ return request({
url: '/system/organization/organizationRegisterDetails/'+data.organizationSid, url: '/system/organization/organizationRegisterDetails/'+data.organizationSid,
method: 'get', method: 'get',
params: data params: data
}) })
} }
verify(data){ // 审核 verify(data){ // 审核
return request({ return request({
url: '/system/organization/verify', url: '/system/organization/verify',
method: 'post', method: 'post',
data: qs.stringify(data) data: qs.stringify(data)
}) })
} }
// 删除机构信息 // 删除机构信息
del(data) { del(data) {
return request({ return request({
url: '/system/organization/delete/'+data.sid, url: '/system/organization/delete/'+data.sid,
method: 'DELETE', method: 'DELETE',
data data
}) })
} }
} }
export default new user() export default new user()

40
demo-web-ui/src/api/system/personalization/personalization.js

@ -1,20 +1,20 @@
import request from '@/utils/request' import request from '@/utils/request'
// 获取菜单 分页列表 // 获取菜单 分页列表
export function getList(data) { export function getList(data) {
return request({ return request({
url: '/portal/v1/sysuserdefaultorg/getList', url: '/portal/v1/sysuserdefaultorg/getList',
method: 'get', method: 'get',
params: data params: data
}) })
} }
// 新增插件 // 新增插件
export function saveOrUpdate(data) { export function saveOrUpdate(data) {
return request({ return request({
url: '/portal/v1/sysuserdefaultorg/saveOrUpdate', url: '/portal/v1/sysuserdefaultorg/saveOrUpdate',
method: 'post', method: 'post',
data: data, data: data,
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}) })
} }

174
demo-web-ui/src/api/system/postManage/index.js

@ -1,87 +1,87 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
//let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMTE1MjUwfQ.gtn_mVsbwH6ztl835rWmIY4DxeNmRe_TOt-Q0TdldIE' //let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMTE1MjUwfQ.gtn_mVsbwH6ztl835rWmIY4DxeNmRe_TOt-Q0TdldIE'
let tokens = window.sessionStorage.getItem('token'); let tokens = window.sessionStorage.getItem('token');
//获取菜单 分页列表 //获取菜单 分页列表
export function pageList(data) { export function pageList(data) {
return request({ return request({
url: '/portal/v1/syspost/listPage', url: '/portal/v1/syspost/listPage',
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 查询部门列表 // 查询部门列表
export function orgList(data){ export function orgList(data){
return request({ return request({
url: '/portal/v1/sysorganization/list', url: '/portal/v1/sysorganization/list',
method: 'get', method: 'get',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 新增 // 新增
export function savePost(data){ export function savePost(data){
return request({ return request({
url: '/portal/v1/syspost/save', url: '/portal/v1/syspost/save',
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 修改 // 修改
export function putOrgroles(data){ export function putOrgroles(data){
return request({ return request({
url: '/portal/v1/syspost/update/' +data.sid, url: '/portal/v1/syspost/update/' +data.sid,
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 删除 // 删除
export function delOrgroles(data){ export function delOrgroles(data){
return request({ return request({
url: '/portal/v1/syspost/delBySids/' + data.sids, url: '/portal/v1/syspost/delBySids/' + data.sids,
method: 'get', method: 'get',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
export function pullDown(data){ export function pullDown(data){
return request({ return request({
url: '/portal/v1/dictcommons/typeValues', url: '/portal/v1/dictcommons/typeValues',
method: 'get', method: 'get',
params: data params: data
}) })
} }
// 查询岗位列表 // 查询岗位列表
export function selectList(data){ export function selectList(data){
return request({ return request({
url: '/portal/v1/syspost/selectList', url: '/portal/v1/syspost/selectList',
method: 'get', method: 'get',
params: data params: data
}) })
} }
// 查询所有流程名称 // 查询所有流程名称
export function selectFlowList(){ export function selectFlowList(){
return request({ return request({
url: '/flowable/v1/flow/selectFlowList', url: '/flowable/v1/flow/selectFlowList',
method: 'get' method: 'get'
}) })
} }

166
demo-web-ui/src/api/system/region/region.js

@ -1,83 +1,83 @@
import request from '@/utils/request' import request from '@/utils/request'
export default { export default {
// 分页列表 // 分页列表
pagerList: function (params) { pagerList: function (params) {
return request({ return request({
url: '/portal/v1/regions/pagerList', url: '/portal/v1/regions/pagerList',
method: 'post', method: 'post',
data: params, data: params,
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
}, },
// 新增保存 // 新增保存
save: function (regionDto) { save: function (regionDto) {
return request({ return request({
url: '/portal/v1/regions/save', url: '/portal/v1/regions/save',
method: 'post', method: 'post',
data: regionDto, data: regionDto,
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
}, },
// // 根据省sid获取该省的所有市 // // 根据省sid获取该省的所有市
// getCity: function (sid) { // getCity: function (sid) {
// return request({ // return request({
// url: '/portal/v1/regions/getCity', // url: '/portal/v1/regions/getCity',
// method: 'get', // method: 'get',
// params: { // params: {
// sid // sid
// } // }
// }) // })
// }, // },
// //
// // 根据市sid获取该省的所有县区 // // 根据市sid获取该省的所有县区
// getCounty: function (sid) { // getCounty: function (sid) {
// return request({ // return request({
// url: '/portal/v1/regions/getCounty', // url: '/portal/v1/regions/getCounty',
// method: 'get', // method: 'get',
// params: { // params: {
// sid // sid
// } // }
// }) // })
// }, // },
// 删除 // 删除
delete: function (sid) { delete: function (sid) {
return request({ return request({
url: '/portal/v1/regions/delete/' + sid, url: '/portal/v1/regions/delete/' + sid,
method: 'delete', method: 'delete',
data: sid data: sid
}) })
}, },
//点击修改回显数据 //点击修改回显数据
updateEcho: function (sid) { updateEcho: function (sid) {
return request({ return request({
url: '/portal/v1/regions/getOne/' + sid, url: '/portal/v1/regions/getOne/' + sid,
method: 'post', method: 'post',
params: { params: {
sid sid
} }
}) })
}, },
// 区域修改保存 // 区域修改保存
// system/region/update/{sid} // system/region/update/{sid}
update: function (params,sid) { update: function (params,sid) {
return request({ return request({
url: '/portal/v1/regions/update/' + sid, url: '/portal/v1/regions/update/' + sid,
method: 'post', method: 'post',
data: params, data: params,
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
} }
} }

356
demo-web-ui/src/api/system/roleAdminister/index.js

@ -1,178 +1,178 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
//let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjI5OTQxNjI1fQ.aOFOz0h7c8YQs-ti2GLpqeWu4AE9mifx_043hLJQf8g' //let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjI5OTQxNjI1fQ.aOFOz0h7c8YQs-ti2GLpqeWu4AE9mifx_043hLJQf8g'
let tokens = window.sessionStorage.getItem('token'); let tokens = window.sessionStorage.getItem('token');
// 业务角色 列表 // 业务角色 列表
export function roleOrgList(data){ export function roleOrgList(data){
return request({ return request({
url: '/portal/v1/sysrole/listPage', url: '/portal/v1/sysrole/listPage',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
export function postList(data){ export function postList(data){
return request({ return request({
url: '/portal/v1/syspost/list', url: '/portal/v1/syspost/list',
method: 'get', method: 'get',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }
// 获取数据字典下拉列表 // 获取数据字典下拉列表
export function typeValues(data) { export function typeValues(data) {
return request({ return request({
url: '/portal/v1/dictcommons/typeValues', url: '/portal/v1/dictcommons/typeValues',
method: 'get', method: 'get',
params: data params: data
}) })
} }
// 设置是否可用:isEnable:1可用,0不可用 // 设置是否可用:isEnable:1可用,0不可用
export function setRoleEnable(data) { export function setRoleEnable(data) {
return request({ return request({
url: '/portal/v1/sysrole/setIsEnable/' + data.sid + '/' + data.isEnable, url: '/portal/v1/sysrole/setIsEnable/' + data.sid + '/' + data.isEnable,
method: 'POST', method: 'POST',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
} }
/** /**
* <新增 保存角色> * <新增 保存角色>
* @orgSid 机构SID * @orgSid 机构SID
* @remarks 备注 * @remarks 备注
* @roleName 角色名称 * @roleName 角色名称
* */ * */
export function saveOrgroles(data) { export function saveOrgroles(data) {
return request({ return request({
url: '/portal/v1/sysrole/save', url: '/portal/v1/sysrole/save',
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
/** /**
* <根据SID 修改角色> * <根据SID 修改角色>
* @sid 角色SID * @sid 角色SID
* @orgSid 机构SID * @orgSid 机构SID
* @remarks 备注 * @remarks 备注
* @roleName 角色名称 * @roleName 角色名称
* */ * */
export function putOrgroles(data) { export function putOrgroles(data) {
return request({ return request({
url: `/portal/v1/sysrole/update/${data.sid}`, url: `/portal/v1/sysrole/update/${data.sid}`,
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
/** /**
* <根据SID 删除角色> * <根据SID 删除角色>
* @sid 角色SID * @sid 角色SID
* */ * */
export function delOrgroles(data) { export function delOrgroles(data) {
return request({ return request({
url: `/portal/v1/sysrole/delBySids/${data.sid}`, url: `/portal/v1/sysrole/delBySids/${data.sid}`,
method: 'get', method: 'get',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 移动端授权 // 移动端授权
export function getRoleMenuList(data) { export function getRoleMenuList(data) {
return request({ return request({
url: '/portal/v1/sysmobilemenurole/getRoleMenuList', url: '/portal/v1/sysmobilemenurole/getRoleMenuList',
method: 'post', method: 'post',
params: { roleSid: data } params: { roleSid: data }
}) })
} }
// 菜单授权保存 // 菜单授权保存
export function saveRoleMenuList(data) { export function saveRoleMenuList(data) {
return request({ return request({
url: `/portal/v1/sysmobilemenurole/saveRoleMenuList`, url: `/portal/v1/sysmobilemenurole/saveRoleMenuList`,
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 菜单授权 // 菜单授权
export function roleMenuTree(data) { export function roleMenuTree(data) {
return request({ return request({
url: `/portal/v1/sysmenu/listAllByRoleSid`, url: `/portal/v1/sysmenu/listAllByRoleSid`,
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 菜单授权保存 // 菜单授权保存
export function saveorgrolemenus(data) { export function saveorgrolemenus(data) {
return request({ return request({
url: `/portal/v1/sysmenurole/updateRoleAndMenu`, url: `/portal/v1/sysmenurole/updateRoleAndMenu`,
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 资源授权 // 资源授权
export function sourceMenuTree(data) { export function sourceMenuTree(data) {
return request({ return request({
url: `/portal/v1/syssource/listAllByRoleSid`, url: `/portal/v1/syssource/listAllByRoleSid`,
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 资源授权保存 // 资源授权保存
export function saveSource(data) { export function saveSource(data) {
return request({ return request({
url: `/portal/v1/syssourcerole/updateRoleAndSource`, url: `/portal/v1/syssourcerole/updateRoleAndSource`,
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 功能授权 // 功能授权
export function funMenuTree(data) { export function funMenuTree(data) {
return request({ return request({
url: `/portal/v1/sysfunction/getFunctionAuthorization/` + data.roleSid, url: `/portal/v1/sysfunction/getFunctionAuthorization/` + data.roleSid,
method: 'get' method: 'get'
}) })
} }
// 功能授权保存 // 功能授权保存
export function savefunMenu(data) { export function savefunMenu(data) {
return request({ return request({
url: `/portal/v1/sysrolefunction/updateRoleAndFunction`, url: `/portal/v1/sysrolefunction/updateRoleAndFunction`,
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }

62
demo-web-ui/src/api/system/roleAdminister/rolemenus.js

@ -1,31 +1,31 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
/** /**
* < 业务角色授权时菜单列表拥有的菜单选中> * < 业务角色授权时菜单列表拥有的菜单选中>
* @orgTypeKeys 单位性质类别 * @orgTypeKeys 单位性质类别
* @roleSid 业务角色sid * @roleSid 业务角色sid
* @userType 用户类型只能为1或2 * @userType 用户类型只能为1或2
* */ * */
export function roleMenuTree(data){ export function roleMenuTree(data){
return request({ return request({
url: '/system/v1/orgrolemenus/menutree', url: '/system/v1/orgrolemenus/menutree',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }
/** /**
* < 保存角色授权的菜单项 > * < 保存角色授权的菜单项 >
* @roleMenus[] 角色权限列表 {menuSid 菜单sid} {orgSid 单位sid} {roleSid 角色sid} * @roleMenus[] 角色权限列表 {menuSid 菜单sid} {orgSid 单位sid} {roleSid 角色sid}
* @roleSid 业务角色sid * @roleSid 业务角色sid
* */ * */
export function saveorgrolemenus(data){ export function saveorgrolemenus(data){
return request({ return request({
url: '/system/v1/orgrolemenus', url: '/system/v1/orgrolemenus',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }

42
demo-web-ui/src/api/system/roleMenus/index.js

@ -1,21 +1,21 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
//角色授权时菜单列表(拥有的菜单选中) //角色授权时菜单列表(拥有的菜单选中)
export function getrolemenus(data) { export function getrolemenus(data) {
return request({ return request({
url: `/system/v1/rolemenus/${data.roleSid}`, url: `/system/v1/rolemenus/${data.roleSid}`,
method: 'GET', method: 'GET',
params: data params: data
}) })
} }
//保存 角色授权时菜单列表 //保存 角色授权时菜单列表
export function saverolemenus(data) { export function saverolemenus(data) {
return request({ return request({
url: `/system/v1/rolemenus`, url: `/system/v1/rolemenus`,
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }

252
demo-web-ui/src/api/system/sources/index.js

@ -1,111 +1,141 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
//let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMDI3MDA3fQ.9bEgBzFW2g1CUT7s5VXxhNCa10cyU_WTCFeqpQje0iY' //let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMDI3MDA3fQ.9bEgBzFW2g1CUT7s5VXxhNCa10cyU_WTCFeqpQje0iY'
let tokens = window.sessionStorage.getItem('token'); let tokens = window.sessionStorage.getItem('token');
//获取菜单 分页列表 //获取菜单 分页列表
export function pageList(data) { export function pageList(data) {
return request({ return request({
url: '/portal/v1/syssource/listPage', url: 'v1/sysinfo/selectInfoList',
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
//保存 资源信息 //保存 资源信息
export function saveSourcesInfo(data) { export function saveSourcesInfo(data) {
return request({ return request({
url: '/portal/v1/syssource/save', url: 'v1/sysinfo/saveInfo',
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 修改 保存 资源信息 // 修改 保存 资源信息
export function putSourcesInfo(data) { export function putSourcesInfo(data) {
return request({ return request({
url: '/portal/v1/syssource/update/' + data.sid, url: 'v1/sysinfo/alterInfo',
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
//根据sid 删除单个 资源信息 export function addStudentScore(data) {
export function delSources(data) { return request({
return request({ url: 'v1/sysstudentscore/addStudentScore',
url: '/portal/v1/syssource/delBySids/' + data.sid, method: 'POST',
method: 'get', data: data,
data: qs.stringify(data), headers: {'Content-Type': 'application/json',
headers: {'Content-Type': 'application/json', 'token':tokens
'token':tokens }
} })
}) }
} export function saveSysInfoShip(data) {
// 获取获取资源类别 return request({
export function getZzylb(data) { url: 'v1/sysinfoship/saveSysInfoShip',
return request({ method: 'POST',
url: '/portal/v1/syssource/listAll', data: data,
method: 'post', headers: {'Content-Type': 'application/json',
headers: {'Content-Type': 'application/json'} 'token':tokens
}) }
} })
}
export function selectTeacherDownStudent(data) {
return request({
url: 'v1/sysinfoship/selectTeacherDownStudent/' + data.infoId,
method: 'get',
data: qs.stringify(data),
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
//根据sid 删除单个 资源信息
export function delSources(data) {
return request({
url: 'v1/sysinfo/deleteInfo/' + data.sid,
// 获取资源 不分页列表 method: 'get',
export function sourcesList(data) { data: qs.stringify(data),
return request({ headers: {'Content-Type': 'application/json',
url: '/system/v1/sources/list', 'token':tokens
method: 'post', }
data: data, })
headers: {'Content-Type': 'application/json'} }
}) // 获取获取资源类别
} export function getZzylb(data) {
return request({
// 获取资源列表 不分页下拉 url: '/portal/v1/syssource/listAll',
export function getsourceList(data) { method: 'post',
return request({ headers: {'Content-Type': 'application/json'}
url: '/system/v1/sources/sourceList', })
method: 'post' }
})
}
////获取资源 分页列表
//export function sourcesPageList(data) {
//return request({
// url: '/system/v1/sources/pagelist',
// method: 'POST',
// data: data,
// headers: {'Content-Type': 'application/json'}
//})
//}
// 获取资源 不分页列表
//根据sid 获取单个 资源信息 export function sourcesList(data) {
export function getSourcesInfo(data) { return request({
return request({ url: '/system/v1/sources/list',
url: '/system/v1/sources/' + data.sid, method: 'post',
method: 'GET', data: data,
data: qs.stringify(data) headers: {'Content-Type': 'application/json'}
}) })
} }
// 获取资源列表 不分页下拉
export function getsourceList(data) {
return request({
url: '/system/v1/sources/sourceList',
method: 'post'
})
}
////获取资源 分页列表
//export function sourcesPageList(data) {
//return request({
// url: '/system/v1/sources/pagelist',
// method: 'POST',
// data: data,
// headers: {'Content-Type': 'application/json'}
//})
//}
//根据sid 获取单个 资源信息
export function getSourcesInfo(data) {
return request({
url: '/system/v1/sources/' + data.sid,
method: 'GET',
data: qs.stringify(data)
})
}

168
demo-web-ui/src/api/system/user/Auser.js

@ -1,84 +1,84 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
export function verifyList(data){ // 用户列表 export function verifyList(data){ // 用户列表
return request({ return request({
url: '/system/user/verifyList', url: '/system/user/verifyList',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }
// admin用户列表 // admin用户列表
export function userListByAdmin(data){ export function userListByAdmin(data){
return request({ return request({
url: '/system/user/userListByAdmin', url: '/system/user/userListByAdmin',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }
// 设置角色 // 设置角色
export function psotUserRole(data){ export function psotUserRole(data){
return request({ return request({
url: '/system/v1/userrole', url: '/system/v1/userrole',
method: 'post', method: 'post',
data: qs.stringify(data) data: qs.stringify(data)
}) })
} }
// 用户初始化密码 // 用户初始化密码
export function initPwd(data){ export function initPwd(data){
return request({ return request({
url: 'system/user/initPwd/'+data.sid, url: 'system/user/initPwd/'+data.sid,
method: 'POST', method: 'POST',
data: qs.stringify(data) data: qs.stringify(data)
}) })
} }
// 用户删除接口 // 用户删除接口
export function delUser(data){ export function delUser(data){
return request({ return request({
url: '/system/user/delete/'+data.sid, url: '/system/user/delete/'+data.sid,
method: 'DELETE', method: 'DELETE',
params: data params: data
}) })
} }
// 初始化设置角色 // 初始化设置角色
export function initUserRole(data){ export function initUserRole(data){
return request({ return request({
url: '/system/v1/userroles/initUserRole/'+ data.userSid, url: '/system/v1/userroles/initUserRole/'+ data.userSid,
method: 'get', method: 'get',
params: data params: data
}) })
} }
// 保存角色 // 保存角色
export function saveUserRole(data){ export function saveUserRole(data){
return request({ return request({
url: '/system/v1/userroles', url: '/system/v1/userroles',
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }
// 用户信息 // 用户信息
export function getUserINfo(data){ export function getUserINfo(data){
return request({ return request({
url: '/system/user/userRegisterDetails', url: '/system/user/userRegisterDetails',
method: 'get', method: 'get',
params: data params: data
}) })
} }
// 单位信息 // 单位信息
export function getOrgINfo(data){ export function getOrgINfo(data){
return request({ return request({
url: '/system/organization/organizationRegisterDetails/'+ data.organizationSid, url: '/system/organization/organizationRegisterDetails/'+ data.organizationSid,
method: 'get', method: 'get',
params: data params: data
}) })
} }

86
demo-web-ui/src/api/system/user/login.js

@ -1,43 +1,43 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
//获取菜单 分页列表 //获取菜单 分页列表
export function login1(data) { export function login1(data) {
return request({ return request({
url: '/portal/v1/sysuser/login', url: '/portal/v1/sysuser/login',
method: 'POST', method: 'POST',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
// 'token':tokens // 'token':tokens
} }
}) })
} }
class user { class user {
login(data) { // 登录 login(data) { // 登录
return request({ return request({
url: '/portal/v1/sysuser/login', url: '/portal/v1/sysuser/login',
method: 'post', method: 'post',
data data
}) })
} }
logout() { // 退出 logout() { // 退出
return request({ return request({
url: '/vue-admin-template/user/logout', url: '/vue-admin-template/user/logout',
method: 'post' method: 'post'
}) })
} }
updatePassword(data) { // 退出修改密码 updatePassword(data) { // 退出修改密码
return request({ return request({
url: '/system/user/updatePassword', url: '/system/user/updatePassword',
method: 'post', method: 'post',
data: qs.stringify(data) data: qs.stringify(data)
}) })
} }
} }

86
demo-web-ui/src/api/system/user/user.js

@ -1,43 +1,43 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
class user{ class user{
verifyList(data){ // 请求审核列表 verifyList(data){ // 请求审核列表
return request({ return request({
url: '/system/user/verifyList', url: '/system/user/verifyList',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }
userRegisterDetails(data){ // 获取审核内容 userRegisterDetails(data){ // 获取审核内容
console.log(data) console.log(data)
return request({ return request({
url: '/system/user/userRegisterDetails', url: '/system/user/userRegisterDetails',
method: 'get', method: 'get',
params: data params: data
}) })
} }
verify(data){ // 审核通过不通过 verify(data){ // 审核通过不通过
return request({ return request({
url: '/system/user/verify', url: '/system/user/verify',
method: 'post', method: 'post',
data: qs.stringify(data) data: qs.stringify(data)
}) })
} }
userDelete(data){ // 删除 userDelete(data){ // 删除
return request({ return request({
url: '/system/user/delete/{sid}', url: '/system/user/delete/{sid}',
method: 'delete', method: 'delete',
data: qs.stringify(data) data: qs.stringify(data)
}) })
} }
userNameDelete(data){ // 删除个人注册审核 userNameDelete(data){ // 删除个人注册审核
return request({ return request({
url: '/system/staffApply/deleteByUserName', url: '/system/staffApply/deleteByUserName',
method: 'delete', method: 'delete',
data: qs.stringify(data) data: qs.stringify(data)
}) })
} }
} }
export default new user() export default new user()

64
demo-web-ui/src/api/system/userAdminister/client.js

@ -1,32 +1,32 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
// 委托人分页列表 // 委托人分页列表
export function clientList(data){ export function clientList(data){
return request({ return request({
url: '/jlcyry/v1/clientalterrecords/pagerList', url: '/jlcyry/v1/clientalterrecords/pagerList',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }
// 变更选择委托人列表 // 变更选择委托人列表
export function setclientList(data){ export function setclientList(data){
return request({ return request({
url: '/jlcyry/v1/clientalterrecords/staffClientList', url: '/jlcyry/v1/clientalterrecords/staffClientList',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }
// 变更为被委托人 // 变更为被委托人
export function doClientAlter(data){ export function doClientAlter(data){
return request({ return request({
url: '/jlcyry/v1/clientalterrecords/doClientAlter', url: '/jlcyry/v1/clientalterrecords/doClientAlter',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }

138
demo-web-ui/src/api/system/userAdminister/index.js

@ -1,69 +1,69 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
let tokens = window.sessionStorage.getItem('token'); let tokens = window.sessionStorage.getItem('token');
// 单位用户列表 // 单位用户列表
export function orgUserList(data){ export function orgUserList(data){
return request({ return request({
url: '/system/user/userListByOrg', url: '/system/user/userListByOrg',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json'} headers: {'Content-Type': 'application/json'}
}) })
} }
// 设置角色 // 设置角色
export function psotUserRole(data){ export function psotUserRole(data){
return request({ return request({
url: '/system/v1/userrole', url: '/system/v1/userrole',
method: 'post', method: 'post',
data: qs.stringify(data) data: qs.stringify(data)
}) })
} }
/** /**
* 获取角色列表 * 获取角色列表
* orgSid 用户SID * orgSid 用户SID
* roleName 角色名称 * roleName 角色名称
* */ * */
export function orgrolesList(data){ export function orgrolesList(data){
return request({ return request({
url: '/system/v1/orgroles/list', url: '/system/v1/orgroles/list',
method: 'post', method: 'post',
headers: {'Content-Type': 'application/json'}, headers: {'Content-Type': 'application/json'},
data data
}) })
} }
/** /**
* 保存 设置角色 /system/v1/orguserroles * 保存 设置角色 /system/v1/orguserroles
* */ * */
export function saveOrgRole(data){ export function saveOrgRole(data){
return request({ return request({
url: '/system/v1/orguserroles', url: '/system/v1/orguserroles',
method: 'post', method: 'post',
headers: {'Content-Type': 'application/json'}, headers: {'Content-Type': 'application/json'},
data data
}) })
} }
/** /**
* 部门机构列表 /system/v1/departments/departmentOrgList/{organizationSid} * 部门机构列表 /system/v1/departments/departmentOrgList/{organizationSid}
* */ * */
export function getOrgList(organizationSid){ export function getOrgList(organizationSid){
return request({ return request({
url: '/system/v1/departments/departmentOrgList/' + organizationSid, url: '/system/v1/departments/departmentOrgList/' + organizationSid,
method: 'get' method: 'get'
}) })
} }
/** /**
* 保存 设置部门 /system/v1/orguserroles * 保存 设置部门 /system/v1/orguserroles
* */ * */
export function saveDepartment(data){ export function saveDepartment(data){
return request({ return request({
url: '/system/v1/departmentStaffs/setUpDepartment', url: '/system/v1/departmentStaffs/setUpDepartment',
method: 'post', method: 'post',
headers: {'Content-Type': 'application/json'}, headers: {'Content-Type': 'application/json'},
data data
}) })
} }

300
demo-web-ui/src/api/system/userManage/index.js

@ -1,150 +1,150 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
// 用户列表 // 用户列表
//let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjI5OTQxNjI1fQ.aOFOz0h7c8YQs-ti2GLpqeWu4AE9mifx_043hLJQf8g' //let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjI5OTQxNjI1fQ.aOFOz0h7c8YQs-ti2GLpqeWu4AE9mifx_043hLJQf8g'
let tokens = window.sessionStorage.getItem('token'); let tokens = window.sessionStorage.getItem('token');
export function userList(data){ export function userList(data){
return request({ return request({
url: '/portal/v1/sysuser/listPage', url: '/portal/v1/sysuser/listPage',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 新增 // 新增
export function userAdd(data){ export function userAdd(data){
return request({ return request({
url: '/portal/v1/sysuser/save', url: '/portal/v1/sysuser/save',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 更新 // 更新
export function userUpdata(data){ export function userUpdata(data){
return request({ return request({
url: '/portal/v1/sysuser/update/' +data.sid, url: '/portal/v1/sysuser/update/' +data.sid,
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 删除 // 删除
export function delUser(data){ export function delUser(data){
return request({ return request({
url: '/portal/v1/sysuser/delBySid/' +data.sid, url: '/portal/v1/sysuser/delBySid/' +data.sid,
method: 'get', method: 'get',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 初始化密码 // 初始化密码
export function initPwd(data){ export function initPwd(data){
return request({ return request({
url: '/portal/v1/sysuser/initPwd/' +data.sid, url: '/portal/v1/sysuser/initPwd/' +data.sid,
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 根据sid查询一条信息 // 根据sid查询一条信息
export function userSingle(data){ export function userSingle(data){
return request({ return request({
url: '/portal/v1/sysuser/fetchBySid/' +data.sid, url: '/portal/v1/sysuser/fetchBySid/' +data.sid,
method: 'get', method: 'get',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 单条用户的角色列表 // 单条用户的角色列表
export function setRole(data){ export function setRole(data){
return request({ return request({
url: '/portal/v1/sysrole/listAllByUserSid/' +data.sid, url: '/portal/v1/sysrole/listAllByUserSid/' +data.sid,
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 角色列表 // 角色列表
export function saveOrgRole(data){ export function saveOrgRole(data){
return request({ return request({
url: '/portal/v1/sysuserrole/update', url: '/portal/v1/sysuserrole/update',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 查询角色列表 // 查询角色列表
export function roleList(data){ export function roleList(data){
return request({ return request({
url: '/portal/v1/sysrole/listAll', url: '/portal/v1/sysrole/listAll',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 查询部门列表 // 查询部门列表
export function orgList(data){ export function orgList(data){
return request({ return request({
url: '/portal/v1/sysorganization/list', url: '/portal/v1/sysorganization/list',
method: 'get', method: 'get',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 查询岗位列表 // 查询岗位列表
export function postList(data){ export function postList(data){
return request({ return request({
url: '/portal/v1/syspost/fetchByOrgSid/'+data.sid, url: '/portal/v1/syspost/fetchByOrgSid/'+data.sid,
method: 'get', method: 'get',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 获取验证码 // 获取验证码
export function getCode(data){ export function getCode(data){
return request({ return request({
url: '/portal/v1/sysuser/sendMessageCode/'+data.phone, url: '/portal/v1/sysuser/sendMessageCode/'+data.phone,
method: 'get', method: 'get',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':tokens 'token':tokens
} }
}) })
} }
// 设置是否可用:isEnable:1可用,0不可用 // 设置是否可用:isEnable:1可用,0不可用
export function setRoleEnable(data) { export function setRoleEnable(data) {
return request({ return request({
url: '/portal/v1/sysuser/setIsEnable/' + data.sid + '/' + data.isEnable, url: '/portal/v1/sysuser/setIsEnable/' + data.sid + '/' + data.isEnable,
method: 'post', method: 'post',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
} }

110
demo-web-ui/src/api/user.js

@ -1,56 +1,54 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
//登录 //登录
export function login(data) { export function login(data) {
return request({ return request({
url: '/portal/v1/sysuser/login', url: '/v1/sysuser/login',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json'} })
}) }
} // 用户注册
// 用户注册 export function registUser(data) {
export function registUser(data) { return request({
return request({ url: 'v1/sysuser/register',
url: '/system/user/save', method: 'post',
method: 'post', data,
data, })
headers:{'Content-Type':'application/x-www-form-urlencoded;'} }
}) // 获取手机验证码
} export function getVerificationCode(data) {
// 获取手机验证码 return request({
export function getVerificationCode(data) { url: '/system/user/getVerificationCode',
return request({ method: 'get',
url: '/system/user/getVerificationCode', params: data
method: 'get', })
params: data }
})
} // 获取登录验证码
export function imgCode() {
// 获取登录验证码 return request({
export function imgCode() { url: '/system/api/defaultBlendCode?temm=' + new Date().getTime(),
return request({ method: 'get'
url: '/system/api/defaultBlendCode?temm=' + new Date().getTime(), })
method: 'get' }
})
} // 获取用信息
export function getInfo(token) {
// 获取用信息 return request({
export function getInfo(token) { url: '/system/user/loginDetails',
return request({ method: 'post',
url: '/system/user/loginDetails', })
method: 'post', }
})
} // 根据token值获取登录后的用户信息
export function loginDetails(data) {
// 根据token值获取登录后的用户信息 return request({
export function loginDetails(data) { url: '/v1/sysuser/loginDetails',
return request({ method: 'post',
url: '/portal/v1/sysuser/loginDetails', data: data,
method: 'post', headers: {
data: data, 'Content-Type': 'application/json'
headers: { }
'Content-Type': 'application/json' })
} }
})
}

174
demo-web-ui/src/api/workflow/finished.js

@ -1,87 +1,87 @@
import request from '@/utils/request' import request from '@/utils/request'
import da from "element-ui/src/locale/lang/da"; import da from "element-ui/src/locale/lang/da";
const tokens = window.sessionStorage.getItem('token') const tokens = window.sessionStorage.getItem('token')
// 查询已办任务列表 // 查询已办任务列表
export function finishedList(query) { export function finishedList(query) {
return request({ return request({
url: '/flowable/task/finishedList', url: '/flowable/task/finishedList',
method: 'get', method: 'get',
params: query params: query
}) })
} }
// 任务流转记录 // 任务流转记录
export function flowRecord(query) { export function flowRecord(query) {
return request({ return request({
url: '/portal/v1/flow/task/flowRecordAndComment/' + query.procInsId + '/' + query.deployId, url: '/portal/v1/flow/task/flowRecordAndComment/' + query.procInsId + '/' + query.deployId,
method: 'get', method: 'get',
params: query params: query
}) })
} }
// 撤回任务 // 撤回任务
export function revokeProcess(data) { export function revokeProcess(data) {
const userSid = data.userSid const userSid = data.userSid
return request({ return request({
url: '/portal/v1/flow/task/revokeProcess/' + userSid, url: '/portal/v1/flow/task/revokeProcess/' + userSid,
method: 'post', method: 'post',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
// 部署流程实例 // 部署流程实例
export function deployStart(deployId) { export function deployStart(deployId) {
return request({ return request({
url: '/flowable/process/startFlow/' + deployId, url: '/flowable/process/startFlow/' + deployId,
method: 'get' method: 'get'
}) })
} }
// 查询流程定义详细 // 查询流程定义详细
export function getDeployment(id) { export function getDeployment(id) {
return request({ return request({
url: '/system/deployment/' + id, url: '/system/deployment/' + id,
method: 'get' method: 'get'
}) })
} }
// 新增流程定义 // 新增流程定义
export function addDeployment(data) { export function addDeployment(data) {
return request({ return request({
url: '/system/deployment', url: '/system/deployment',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 修改流程定义 // 修改流程定义
export function updateDeployment(data) { export function updateDeployment(data) {
return request({ return request({
url: '/system/deployment', url: '/system/deployment',
method: 'put', method: 'put',
data: data data: data
}) })
} }
// 删除流程定义 // 删除流程定义
export function delDeployment(id) { export function delDeployment(id) {
return request({ return request({
url: '/system/deployment/' + id, url: '/system/deployment/' + id,
method: 'delete' method: 'delete'
}) })
} }
// 导出流程定义 // 导出流程定义
export function exportDeployment(query) { export function exportDeployment(query) {
return request({ return request({
url: '/system/deployment/export', url: '/system/deployment/export',
method: 'get', method: 'get',
params: query params: query
}) })
} }

184
demo-web-ui/src/api/workflow/flow.js

@ -1,92 +1,92 @@
import request from '@/utils/request' import request from '@/utils/request'
const tokens = window.sessionStorage.getItem('token') const tokens = window.sessionStorage.getItem('token')
export default { export default {
// 查询待办任务列表 // 查询待办任务列表
getNextNodes: function (query) { getNextNodes: function (query) {
return request({ return request({
url: '/portal/v1/flow/getNextTasks/'+query.taskId, url: '/portal/v1/flow/getNextTasks/'+query.taskId,
method: 'post', method: 'post',
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
}, },
businessStart: function(params) { businessStart: function(params) {
const procDefId = params.procDefId const procDefId = params.procDefId
const userSid = params.userSid const userSid = params.userSid
const variables = params.variables const variables = params.variables
return request({ return request({
url: '/portal/v1/flow/businessStart/' + procDefId + '/' + userSid, url: '/portal/v1/flow/businessStart/' + procDefId + '/' + userSid,
method: 'POST', method: 'POST',
data: variables, data: variables,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
}, },
processPagerList: function(params) { processPagerList: function(params) {
const pageNum = params.current const pageNum = params.current
const pageSize = params.size const pageSize = params.size
return request({ return request({
url: '/portal/v1/flow/processPagerList', url: '/portal/v1/flow/processPagerList',
method: 'POST', method: 'POST',
data: { data: {
pageNum: pageNum, pageNum: pageNum,
pageSize: pageSize pageSize: pageSize
} }
}) })
}, },
myProcessList: function(params) { myProcessList: function(params) {
let userSid=params.params.userSid; let userSid=params.params.userSid;
return request({ return request({
url: '/portal/v1/flow/myprocess/'+userSid, url: '/portal/v1/flow/myprocess/'+userSid,
method: 'POST', method: 'POST',
data: params, data: params,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
}, },
todoTaskList: function(params) { todoTaskList: function(params) {
let userSid=params.params.userSid; let userSid=params.params.userSid;
return request({ return request({
url: '/portal/v1/flow/todoTaskList/'+userSid, url: '/portal/v1/flow/todoTaskList/'+userSid,
method: 'POST', method: 'POST',
data: params, data: params,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
}, },
doneTaskList: function(params) { doneTaskList: function(params) {
let userSid=params.params.userSid; let userSid=params.params.userSid;
return request({ return request({
url: '/portal/v1/flow/doneTaskList/'+userSid, url: '/portal/v1/flow/doneTaskList/'+userSid,
method: 'POST', method: 'POST',
data: params, data: params,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }
} }
// 任务流转记录 // 任务流转记录
export function complete(data) { export function complete(data) {
return request({ return request({
url: '/portal/v1/flow/complete', url: '/portal/v1/flow/complete',
method: 'post', method: 'post',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'token': tokens 'token': tokens
} }
}) })
} }

128
demo-web-ui/src/api/workflow/form.js

@ -1,64 +1,64 @@
import request from '@/utils/request' import request from '@/utils/request'
// 查询流程表单列表 // 查询流程表单列表
export function listForm(query) { export function listForm(query) {
return request({ return request({
url: '/v1/flowable/form/list', url: '/v1/flowable/form/list',
method: 'post', method: 'post',
data: query data: query
}) })
} }
// 查询流程表单详细 // 查询流程表单详细
export function getForm(formId) { export function getForm(formId) {
return request({ return request({
url: '/v1/flowable/form/' + formId, url: '/v1/flowable/form/' + formId,
method: 'get' method: 'get'
}) })
} }
// 新增流程表单 // 新增流程表单
export function addForm(data) { export function addForm(data) {
return request({ return request({
url: '/v1/flowable/form/add', url: '/v1/flowable/form/add',
method: 'post', method: 'post',
data: data, data: data,
headers: {'Content-Type': 'application/json', headers: {'Content-Type': 'application/json',
'token':1 'token':1
} }
}) })
} }
// 修改流程表单 // 修改流程表单
export function updateForm(data) { export function updateForm(data) {
return request({ return request({
url: '/v1/flowable/form', url: '/v1/flowable/form',
method: 'put', method: 'put',
data: data data: data
}) })
} }
// 挂载表单 // 挂载表单
export function addDeployForm(data) { export function addDeployForm(data) {
return request({ return request({
url: '/v1/flowable/form/addDeployForm', url: '/v1/flowable/form/addDeployForm',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 删除流程表单 // 删除流程表单
export function delForm(formId) { export function delForm(formId) {
return request({ return request({
url: '/v1/flowable/form/' + formId, url: '/v1/flowable/form/' + formId,
method: 'delete' method: 'delete'
}) })
} }
// 导出流程表单 // 导出流程表单
export function exportForm(query) { export function exportForm(query) {
return request({ return request({
url: '/v1/flowable/form/export', url: '/v1/flowable/form/export',
method: 'get', method: 'get',
params: query params: query
}) })
} }

58
demo-web-ui/src/api/workflow/info.js

@ -1,29 +1,29 @@
import request from '@/utils/request' import request from '@/utils/request'
// 代办、已办基础信息页面 // 代办、已办基础信息页面
// 详情编辑回显(订金收取) 已改 // 详情编辑回显(订金收取) 已改
export function fetchSid(data) { export function fetchSid(data) {
return request({ return request({
url: '/buscenter/v1/busmaindeposit/selectDepositBySid/' + data, url: '/buscenter/v1/busmaindeposit/selectDepositBySid/' + data,
method: 'get', method: 'get',
params: data params: data
}) })
} }
// 详细编辑回显(预定车辆) 已改 // 详细编辑回显(预定车辆) 已改
export function selectSid(data) { export function selectSid(data) {
return request({ return request({
url: '/buscenter/v1/busmaindeposit/selectDepositVehBySid/' + data, url: '/buscenter/v1/busmaindeposit/selectDepositVehBySid/' + data,
method: 'get', method: 'get',
params: data params: data
}) })
} }
//合同管理编辑回显 //合同管理编辑回显
export function getOneContract(data) { export function getOneContract(data) {
return request({ return request({
url: "/base/v1/commoncontract/fetchSid/" + data, url: "/base/v1/commoncontract/fetchSid/" + data,
method: "get" method: "get"
}); });
} }

202
demo-web-ui/src/api/workflow/process.js

@ -1,101 +1,101 @@
import request from '@/utils/request' import request from '@/utils/request'
import da from "element-ui/src/locale/lang/da"; import da from "element-ui/src/locale/lang/da";
// 我的发起的流程 // 我的发起的流程
export function myProcessList(data) { export function myProcessList(data) {
return request({ return request({
url: '/v1/flowable/task/myprocess', url: '/v1/flowable/task/myprocess',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 完成任务 // 完成任务
export function complete(data) { export function complete(data) {
return request({ return request({
url: '/flowable/task/complete', url: '/flowable/task/complete',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 取消申请 // 取消申请
export function stopProcess(data) { export function stopProcess(data) {
return request({ return request({
url: '/portal/v1/flow/task/stopProcess', url: '/portal/v1/flow/task/stopProcess',
method: 'post', method: 'post',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
} }
// 驳回任务 // 驳回任务
export function rejectTask(data) { export function rejectTask(data) {
return request({ return request({
url: '/v1/flowable/task/reject', url: '/v1/flowable/task/reject',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 可退回任务列表 // 可退回任务列表
export function returnList(data) { export function returnList(data) {
return request({ return request({
url: '/v1/flowable/task/returnList', url: '/v1/flowable/task/returnList',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 部署流程实例 // 部署流程实例
export function deployStart(deployId) { export function deployStart(deployId) {
return request({ return request({
url: '/flowable/process/startFlow/' + deployId, url: '/flowable/process/startFlow/' + deployId,
method: 'get', method: 'get',
}) })
} }
// 查询流程定义详细 // 查询流程定义详细
export function getDeployment(id) { export function getDeployment(id) {
return request({ return request({
url: '/system/deployment/' + id, url: '/system/deployment/' + id,
method: 'get' method: 'get'
}) })
} }
// 新增流程定义 // 新增流程定义
export function addDeployment(data) { export function addDeployment(data) {
return request({ return request({
url: '/system/deployment', url: '/system/deployment',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 修改流程定义 // 修改流程定义
export function updateDeployment(data) { export function updateDeployment(data) {
return request({ return request({
url: '/system/deployment', url: '/system/deployment',
method: 'put', method: 'put',
data: data data: data
}) })
} }
// 删除流程定义 // 删除流程定义
export function delDeployment(id) { export function delDeployment(id) {
return request({ return request({
url: '/portal/v1/flow/deleteProcess/' + id, url: '/portal/v1/flow/deleteProcess/' + id,
method: 'delete' method: 'delete'
}) })
} }
// 导出流程定义 // 导出流程定义
export function exportDeployment(query) { export function exportDeployment(query) {
return request({ return request({
url: '/system/deployment/export', url: '/system/deployment/export',
method: 'get', method: 'get',
params: query params: query
}) })
} }

258
demo-web-ui/src/api/workflow/todo.js

@ -1,129 +1,129 @@
import request from '@/utils/request' import request from '@/utils/request'
import da from "element-ui/src/locale/lang/da"; import da from "element-ui/src/locale/lang/da";
// 查询待办任务列表 // 查询待办任务列表
export function todoList(query) { export function todoList(query) {
return request({ return request({
url: '/flowable/task/todoList', url: '/flowable/task/todoList',
method: 'get', method: 'get',
params: query params: query
}) })
} }
// 完成任务 // 完成任务
export function complete(data) { export function complete(data) {
return request({ return request({
url: '/flowable/task/complete', url: '/flowable/task/complete',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 委派任务 // 委派任务
export function delegate(data) { export function delegate(data) {
return request({ return request({
url: '/flowable/task/delegate', url: '/flowable/task/delegate',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 退回任务 // 退回任务
export function returnTask(data) { export function returnTask(data) {
return request({ return request({
url: '/flowable/task/return', url: '/flowable/task/return',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 驳回任务 // 驳回任务
export function rejectTask(data) { export function rejectTask(data) {
return request({ return request({
url: '/portal/v1/flow/task/reject', url: '/portal/v1/flow/task/reject',
method: 'post', method: 'post',
data: data, data: data,
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
} }
// 可退回任务列表 // 可退回任务列表
export function returnList(data) { export function returnList(data) {
return request({ return request({
url: '/flowable/task/returnList', url: '/flowable/task/returnList',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 下一节点 // 下一节点
export function getNextFlowNode(data) { export function getNextFlowNode(data) {
return request({ return request({
url: '/flowable/task/nextFlowNode', url: '/flowable/task/nextFlowNode',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 部署流程实例 // 部署流程实例
export function deployStart(deployId) { export function deployStart(deployId) {
return request({ return request({
url: '/flowable/process/startFlow/' + deployId, url: '/flowable/process/startFlow/' + deployId,
method: 'get', method: 'get',
}) })
} }
// 查询流程定义详细 // 查询流程定义详细
export function getDeployment(id) { export function getDeployment(id) {
return request({ return request({
url: '/system/deployment/' + id, url: '/system/deployment/' + id,
method: 'get' method: 'get'
}) })
} }
// 新增流程定义 // 新增流程定义
export function addDeployment(data) { export function addDeployment(data) {
return request({ return request({
url: '/system/deployment', url: '/system/deployment',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 修改流程定义 // 修改流程定义
export function updateDeployment(data) { export function updateDeployment(data) {
return request({ return request({
url: '/system/deployment', url: '/system/deployment',
method: 'put', method: 'put',
data: data data: data
}) })
} }
// 删除流程定义 // 删除流程定义
export function delDeployment(id) { export function delDeployment(id) {
return request({ return request({
url: '/system/deployment/' + id, url: '/system/deployment/' + id,
method: 'delete' method: 'delete'
}) })
} }
// 导出流程定义 // 导出流程定义
export function exportDeployment(query) { export function exportDeployment(query) {
return request({ return request({
url: '/system/deployment/export', url: '/system/deployment/export',
method: 'get', method: 'get',
params: query params: query
}) })
} }
// 查看总代办列表 // 查看总代办列表
export function taskList (data) { export function taskList (data) {
return request({ return request({
url: '/portal/v1/flow/todoAllTaskList/' + data, url: '/portal/v1/flow/todoAllTaskList/' + data,
method: 'post', method: 'post',
data: data data: data
}) })
} }

302
demo-web-ui/src/components/AreaPicker/index.vue

@ -1,151 +1,151 @@
<template> <template>
<div class="AreaPicker"> <div class="AreaPicker">
<el-select v-model="form.province" <el-select v-model="form.province"
@change="changeProvince(form.province)" @change="changeProvince(form.province)"
filterable filterable
placeholder="请选择省份" placeholder="请选择省份"
:loading="loading == 'province'"> :loading="loading == 'province'">
<el-option <el-option
v-for="item in province_list" v-for="item in province_list"
:key="item.sid" :key="item.sid"
:label="item.name" :label="item.name"
:value="item.sid" :value="item.sid"
> >
</el-option> </el-option>
</el-select> </el-select>
<el-select v-model="form.city" <el-select v-model="form.city"
@change='changeCity(form.city)' @change='changeCity(form.city)'
filterable filterable
placeholder="请选择市" placeholder="请选择市"
:loading="loading == 'city'" :loading="loading == 'city'"
style="margin-left: 8px;"> style="margin-left: 8px;">
<el-option <el-option
v-for="item in city_list" v-for="item in city_list"
:key="item.sid" :key="item.sid"
:label="item.name" :label="item.name"
:value="item.sid"> :value="item.sid">
</el-option> </el-option>
</el-select> </el-select>
<el-select v-model="form.county" <el-select v-model="form.county"
@change='changeCounty(form.county)' @change='changeCounty(form.county)'
filterable filterable
:loading="loading == 'county'" :loading="loading == 'county'"
placeholder="请选择县/区" placeholder="请选择县/区"
style="margin-left: 8px;"> style="margin-left: 8px;">
<el-option <el-option
v-for="item in county_list" v-for="item in county_list"
:key="item.sid" :key="item.sid"
:label="item.name" :label="item.name"
:value="item.sid"> :value="item.sid">
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
</template> </template>
<script> <script>
import { import {
getProvince, getProvince,
getCity, getCity,
getCounty getCounty
} from '@/api/Common/areaPicker.js' } from '@/api/Common/areaPicker.js'
export default { export default {
props:{ props:{
province:{ province:{
type: String, type: String,
default: '' default: ''
}, },
city:{ city:{
type: String, type: String,
default: '' default: ''
}, },
county:{ county:{
type: String, type: String,
default: '' default: ''
} }
}, },
data() { data() {
return { return {
province_list: [], province_list: [],
city_list: [], city_list: [],
county_list: [], county_list: [],
form:{ form:{
province: this.province, province: this.province,
city: this.city, city: this.city,
county: this.county county: this.county
}, },
loading: false loading: false
} }
}, },
watch:{ watch:{
province:function(newVal,oldVal){ province:function(newVal,oldVal){
this.form.province = newVal this.form.province = newVal
}, },
city:function(newVal,oldVal){ city:function(newVal,oldVal){
this.form.city = newVal this.form.city = newVal
}, },
county:function(newVal,oldVal){ county:function(newVal,oldVal){
this.form.county = newVal this.form.county = newVal
} }
}, },
async mounted() { async mounted() {
let provincelist = await getProvince() let provincelist = await getProvince()
this.province_list = provincelist.data this.province_list = provincelist.data
if(this.province){ if(this.province){
let citylist = await getCity({ sid: this.province }) let citylist = await getCity({ sid: this.province })
this.city_list = citylist.data this.city_list = citylist.data
} }
if(this.city){ if(this.city){
let countylist = await getCounty({ sid: this.city }) let countylist = await getCounty({ sid: this.city })
this.county_list = countylist.data this.county_list = countylist.data
} }
this.loading = false this.loading = false
}, },
methods: { methods: {
changeProvince(val){ changeProvince(val){
console.log(val) console.log(val)
getCity({ sid: val }).then(res => { getCity({ sid: val }).then(res => {
this.city_list = res.data this.city_list = res.data
this.loading = false this.loading = false
}) })
let obj = {}; let obj = {};
obj = this.province_list.find((item)=>{ obj = this.province_list.find((item)=>{
return item.sid === val;// return item.sid === val;//
}); });
console.log(obj) console.log(obj)
this.form.city = '' this.form.city = ''
this.form.county = '' this.form.county = ''
this.city_list = [] this.city_list = []
this.county_list = [] this.county_list = []
this.loading = 'city' this.loading = 'city'
this.$emit('areaPicker', obj.sidPath) this.$emit('areaPicker', obj.sidPath)
}, },
changeCity(val){ changeCity(val){
let obj = {}; let obj = {};
obj = this.city_list.find((item)=>{ obj = this.city_list.find((item)=>{
return item.sid === val;// return item.sid === val;//
}); });
console.log(obj) console.log(obj)
this.form.county = '' this.form.county = ''
this.county_list = [] this.county_list = []
this.loading = 'county' this.loading = 'county'
this.$emit('areaPicker', obj.sidPath) this.$emit('areaPicker', obj.sidPath)
getCounty({ sid: val }).then(res => { getCounty({ sid: val }).then(res => {
this.county_list = res.data this.county_list = res.data
this.loading = false this.loading = false
}) })
}, },
changeCounty(val){ changeCounty(val){
let obj = {}; let obj = {};
obj = this.county_list.find((item)=>{ obj = this.county_list.find((item)=>{
return item.sid === val;// return item.sid === val;//
}); });
this.$emit('areaPicker', obj.sidPath) this.$emit('areaPicker', obj.sidPath)
} }
} }
} }
</script> </script>
<style> <style>
</style> </style>

156
demo-web-ui/src/components/Breadcrumb/index.vue

@ -1,78 +1,78 @@
<template> <template>
<el-breadcrumb class="app-breadcrumb" separator="/"> <el-breadcrumb class="app-breadcrumb" separator="/">
<transition-group name="breadcrumb"> <transition-group name="breadcrumb">
<el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path"> <el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
<span v-if="item.redirect==='noRedirect'||index==levelList.length-1" class="no-redirect">{{ item.meta.title }}</span> <span v-if="item.redirect==='noRedirect'||index==levelList.length-1" class="no-redirect">{{ item.meta.title }}</span>
<a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a> <a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a>
</el-breadcrumb-item> </el-breadcrumb-item>
</transition-group> </transition-group>
</el-breadcrumb> </el-breadcrumb>
</template> </template>
<script> <script>
import pathToRegexp from 'path-to-regexp' import pathToRegexp from 'path-to-regexp'
export default { export default {
data() { data() {
return { return {
levelList: null levelList: null
} }
}, },
watch: { watch: {
$route() { $route() {
this.getBreadcrumb() this.getBreadcrumb()
} }
}, },
created() { created() {
this.getBreadcrumb() this.getBreadcrumb()
}, },
methods: { methods: {
getBreadcrumb() { getBreadcrumb() {
// only show routes with meta.title // only show routes with meta.title
let matched = this.$route.matched.filter(item => item.meta && item.meta.title) let matched = this.$route.matched.filter(item => item.meta && item.meta.title)
const first = matched[0] const first = matched[0]
if (!this.isDashboard(first)) { if (!this.isDashboard(first)) {
matched = [{ path: '/dashboard', meta: { title: 'Dashboard' }}].concat(matched) matched = [{ path: '/dashboard', meta: { title: 'Dashboard' }}].concat(matched)
} }
this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false) this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false)
}, },
isDashboard(route) { isDashboard(route) {
const name = route && route.name const name = route && route.name
if (!name) { if (!name) {
return false return false
} }
return name.trim().toLocaleLowerCase() === 'Dashboard'.toLocaleLowerCase() return name.trim().toLocaleLowerCase() === 'Dashboard'.toLocaleLowerCase()
}, },
pathCompile(path) { pathCompile(path) {
// To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561 // To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561
const { params } = this.$route const { params } = this.$route
var toPath = pathToRegexp.compile(path) var toPath = pathToRegexp.compile(path)
return toPath(params) return toPath(params)
}, },
handleLink(item) { handleLink(item) {
const { redirect, path } = item const { redirect, path } = item
if (redirect) { if (redirect) {
this.$router.push(redirect) this.$router.push(redirect)
return return
} }
this.$router.push(this.pathCompile(path)) this.$router.push(this.pathCompile(path))
} }
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.app-breadcrumb.el-breadcrumb { .app-breadcrumb.el-breadcrumb {
display: inline-block; display: inline-block;
font-size: 14px; font-size: 14px;
line-height: 50px; line-height: 50px;
margin-left: 8px; margin-left: 8px;
.no-redirect { .no-redirect {
color: #97a8be; color: #97a8be;
cursor: text; cursor: text;
} }
} }
</style> </style>

260
demo-web-ui/src/components/ButtonBar/index.vue

@ -1,130 +1,130 @@
<template> <template>
<!--标题按钮部分开始--> <!--标题按钮部分开始-->
<div class="tab-header webtop"> <div class="tab-header webtop">
<!--标题--> <!--标题-->
<div>{{ viewTitle }}<span style="padding-left: 10px">{{ version }}</span><span style="padding-left: 10px">{{ time }}</span></div> <div>{{ viewTitle }}<span style="padding-left: 10px">{{ version }}</span><span style="padding-left: 10px">{{ time }}</span></div>
<!--start 按钮部分开始 :icon="item.icon"--> <!--start 按钮部分开始 :icon="item.icon"-->
<div> <div>
<el-button v-for="item in btnList" :key="item.btnKey" :type="item.type" :size="item.size" :disabled="btndisabled" @click="btnHandle(item.btnKey)"> <el-button v-for="item in btnList" :key="item.btnKey" :type="item.type" :size="item.size" :disabled="btndisabled" @click="btnHandle(item.btnKey)">
<svg-icon v-if="item.icon" :iconClass="item.icon"/>{{ item.btnLabel }} <svg-icon v-if="item.icon" :iconClass="item.icon"/>{{ item.btnLabel }}
</el-button> </el-button>
</div> </div>
<!--end 按钮部分结束--> <!--end 按钮部分结束-->
</div> </div>
<!--标题按钮部分结束--> <!--标题按钮部分结束-->
</template> </template>
<script> <script>
export default { export default {
name: 'ButtonBar', name: 'ButtonBar',
props: { props: {
viewTitle: String, viewTitle: String,
version: { version: {
type: String, type: String,
default: '' default: ''
}, },
time: { time: {
type: String, type: String,
default: '' default: ''
}, },
btndisabled: { type: Boolean, default: false } btndisabled: { type: Boolean, default: false }
}, },
data() { data() {
return { return {
currentPath: this.$route.path, currentPath: this.$route.path,
userSid: this.$store.getters.userInfo ? this.$store.getters.userInfo.userSid : '', userSid: this.$store.getters.userInfo ? this.$store.getters.userInfo.userSid : '',
btnList: [ btnList: [
{ {
type: 'primary', type: 'primary',
size: 'small', size: 'small',
icon: 'plus', icon: 'plus',
btnKey: 'toAdd', btnKey: 'toAdd',
btnLabel: '新增' btnLabel: '新增'
}, },
{ {
type: 'primary', type: 'primary',
size: 'small', size: 'small',
icon: 'edit', icon: 'edit',
btnKey: 'toEdit', btnKey: 'toEdit',
btnLabel: '编辑' btnLabel: '编辑'
}, },
{ {
type: 'primary', type: 'primary',
size: 'small', size: 'small',
icon: 'submit', icon: 'submit',
btnKey: 'doSubmit', btnKey: 'doSubmit',
btnLabel: '提交' btnLabel: '提交'
}, },
{ {
type: 'danger', type: 'danger',
size: 'small', size: 'small',
icon: 'del', icon: 'del',
btnKey: 'doDel', btnKey: 'doDel',
btnLabel: '删除' btnLabel: '删除'
}, },
{ {
type: 'success', type: 'success',
size: 'small', size: 'small',
icon: 'Import', icon: 'Import',
btnKey: 'doImport', btnKey: 'doImport',
btnLabel: '导入' btnLabel: '导入'
}, },
{ {
type: 'success', type: 'success',
size: 'small', size: 'small',
icon: 'export', icon: 'export',
btnKey: 'build', btnKey: 'build',
btnLabel: '导出' btnLabel: '导出'
}, },
{ {
type: 'info', type: 'info',
size: 'small', size: 'small',
icon: 'cross', icon: 'cross',
btnKey: 'doClose', btnKey: 'doClose',
btnLabel: '关闭' btnLabel: '关闭'
} }
] ]
} }
}, },
created: function() { created: function() {
this.initPermission() this.initPermission()
}, },
methods: { methods: {
initPermission() { initPermission() {
console.log('*******************当前路径 ' + this.currentPath) console.log('*******************当前路径 ' + this.currentPath)
console.log('*******************当前用户 ' + this.userSid) console.log('*******************当前用户 ' + this.userSid)
const params = { const params = {
currentPath: this.currentPath, currentPath: this.currentPath,
userSid: this.userSid userSid: this.userSid
} }
// req // req
// .buttonPermission(params) // .buttonPermission(params)
// .then(resp => { // .then(resp => {
// if (resp.success) { // if (resp.success) {
// this.btnList = resp.data // this.btnList = resp.data
// } // }
// }) // })
// .catch(e => { // .catch(e => {
// console.log('' + e) // console.log('' + e)
// }) // })
}, },
btnHandle(btnKey) { btnHandle(btnKey) {
this.$emit('btnhandle', btnKey) this.$emit('btnhandle', btnKey)
}, },
setButtonList(value) { setButtonList(value) {
this.btnList = value this.btnList = value
} }
} }
} }
</script> </script>
<style scoped> <style scoped>
.svg-icon { .svg-icon {
width: 1em; width: 1em;
height: 1em; height: 1em;
vertical-align: -0.16em; vertical-align: -0.16em;
fill: currentColor; fill: currentColor;
overflow: hidden; overflow: hidden;
margin-right: 3px; margin-right: 3px;
} }
</style> </style>

90
demo-web-ui/src/components/E-image/index.vue

@ -1,45 +1,45 @@
<template> <template>
<el-image <el-image
:preview-src-list="[url]" :preview-src-list="[url]"
class="block-img" class="block-img"
:src="url" :src="url"
@click.stop="handleClickItem"></el-image> @click.stop="handleClickItem"></el-image>
</template> </template>
<script> <script>
export default { export default {
props: { props: {
url: { url: {
type: String, type: String,
default: '' default: ''
}, },
}, },
data() { data() {
return { return {
} }
}, },
methods: { methods: {
handleClickItem() { handleClickItem() {
// dom // dom
let domImageMask = document.querySelector(".el-image-viewer__mask"); let domImageMask = document.querySelector(".el-image-viewer__mask");
if (!domImageMask) { if (!domImageMask) {
return; return;
} }
domImageMask.addEventListener("click", () => { domImageMask.addEventListener("click", () => {
// click // click
document.querySelector(".el-image-viewer__close").click(); document.querySelector(".el-image-viewer__close").click();
}); });
} }
} }
} }
</script> </script>
<style> <style>
.block-img{ .block-img{
width: 30px; width: 30px;
height: 30px; height: 30px;
} }
.el-icon-circle-close{ .el-icon-circle-close{
color: white; color: white;
} }
</style> </style>

156
demo-web-ui/src/components/ErrorLog/index.vue

@ -1,78 +1,78 @@
<template> <template>
<div v-if="errorLogs.length>0"> <div v-if="errorLogs.length>0">
<el-badge :is-dot="true" style="line-height: 25px;margin-top: -5px;" @click.native="dialogTableVisible=true"> <el-badge :is-dot="true" style="line-height: 25px;margin-top: -5px;" @click.native="dialogTableVisible=true">
<el-button style="padding: 8px 10px;" size="small" type="danger"> <el-button style="padding: 8px 10px;" size="small" type="danger">
<svg-icon icon-class="bug" /> <svg-icon icon-class="bug" />
</el-button> </el-button>
</el-badge> </el-badge>
<el-dialog :visible.sync="dialogTableVisible" width="80%" append-to-body> <el-dialog :visible.sync="dialogTableVisible" width="80%" append-to-body>
<div slot="title"> <div slot="title">
<span style="padding-right: 10px;">Error Log</span> <span style="padding-right: 10px;">Error Log</span>
<el-button size="mini" type="primary" icon="el-icon-delete" @click="clearAll">Clear All</el-button> <el-button size="mini" type="primary" icon="el-icon-delete" @click="clearAll">Clear All</el-button>
</div> </div>
<el-table :data="errorLogs" border> <el-table :data="errorLogs" border>
<el-table-column label="Message"> <el-table-column label="Message">
<template slot-scope="{row}"> <template slot-scope="{row}">
<div> <div>
<span class="message-title">Msg:</span> <span class="message-title">Msg:</span>
<el-tag type="danger"> <el-tag type="danger">
{{ row.err.message }} {{ row.err.message }}
</el-tag> </el-tag>
</div> </div>
<br> <br>
<div> <div>
<span class="message-title" style="padding-right: 10px;">Info: </span> <span class="message-title" style="padding-right: 10px;">Info: </span>
<el-tag type="warning"> <el-tag type="warning">
{{ row.vm.$vnode.tag }} error in {{ row.info }} {{ row.vm.$vnode.tag }} error in {{ row.info }}
</el-tag> </el-tag>
</div> </div>
<br> <br>
<div> <div>
<span class="message-title" style="padding-right: 16px;">Url: </span> <span class="message-title" style="padding-right: 16px;">Url: </span>
<el-tag type="success"> <el-tag type="success">
{{ row.url }} {{ row.url }}
</el-tag> </el-tag>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="Stack"> <el-table-column label="Stack">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.err.stack }} {{ scope.row.err.stack }}
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
name: 'ErrorLog', name: 'ErrorLog',
data() { data() {
return { return {
dialogTableVisible: false dialogTableVisible: false
} }
}, },
computed: { computed: {
errorLogs() { errorLogs() {
return this.$store.getters.errorLogs return this.$store.getters.errorLogs
} }
}, },
methods: { methods: {
clearAll() { clearAll() {
this.dialogTableVisible = false this.dialogTableVisible = false
this.$store.dispatch('errorLog/clearErrorLog') this.$store.dispatch('errorLog/clearErrorLog')
} }
} }
} }
</script> </script>
<style scoped> <style scoped>
.message-title { .message-title {
font-size: 16px; font-size: 16px;
color: #333; color: #333;
font-weight: bold; font-weight: bold;
padding-right: 8px; padding-right: 8px;
} }
</style> </style>

88
demo-web-ui/src/components/Hamburger/index.vue

@ -1,44 +1,44 @@
<template> <template>
<div style="padding: 0 15px;" @click="toggleClick"> <div style="padding: 0 15px;" @click="toggleClick">
<svg <svg
:class="{'is-active':isActive}" :class="{'is-active':isActive}"
class="hamburger" class="hamburger"
viewBox="0 0 1024 1024" viewBox="0 0 1024 1024"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
width="64" width="64"
height="64" height="64"
> >
<path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z" /> <path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z" />
</svg> </svg>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
name: 'Hamburger', name: 'Hamburger',
props: { props: {
isActive: { isActive: {
type: Boolean, type: Boolean,
default: false default: false
} }
}, },
methods: { methods: {
toggleClick() { toggleClick() {
this.$emit('toggleClick') this.$emit('toggleClick')
} }
} }
} }
</script> </script>
<style scoped> <style scoped>
.hamburger { .hamburger {
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
width: 20px; width: 20px;
height: 20px; height: 20px;
} }
.hamburger.is-active { .hamburger.is-active {
transform: rotate(180deg); transform: rotate(180deg);
} }
</style> </style>

146
demo-web-ui/src/components/Pagging/index.vue

@ -1,73 +1,73 @@
<template> <template>
<el-row> <el-row>
<el-col :span="12"><div style="height: 30px;" class="grid-content bg-purple" />&emsp;</el-col> <el-col :span="12"><div style="height: 30px;" class="grid-content bg-purple" />&emsp;</el-col>
<el-col :span="12" style="display: flex;justify-content: center;align-items: center;"> <el-col :span="12" style="display: flex;justify-content: center;align-items: center;">
<el-button v-if="notshowdelete == false" type="danger" size="mini" :disabled="multipleselection.length == 0" @click="delList">批量删除</el-button> <el-button v-if="notshowdelete == false" type="danger" size="mini" :disabled="multipleselection.length == 0" @click="delList">批量删除</el-button>
<el-pagination <el-pagination
:page-size="queryparams.size" :page-size="queryparams.size"
:current-page="queryparams.current" :current-page="queryparams.current"
:page-sizes="[10, 20, 50, 100]" :page-sizes="[10, 20, 50, 100]"
:total="queryparams.total" :total="queryparams.total"
background background
layout="total,sizes,prev,pager,next,jumper" layout="total,sizes,prev,pager,next,jumper"
@size-change="pageSizeChange" @size-change="pageSizeChange"
@current-change="pageNoChange" @current-change="pageNoChange"
/> />
</el-col> </el-col>
</el-row> </el-row>
<!-- <div style="display: flex;"> <!-- <div style="display: flex;">
</div> --> </div> -->
<!-- <el-pagination @current-change="pageNoChange" :page-size="queryparams.size" :current-page="queryparams.current" background layout="total,prev, pager, next,jumper" :total="queryparams.total"></el-pagination> --> <!-- <el-pagination @current-change="pageNoChange" :page-size="queryparams.size" :current-page="queryparams.current" background layout="total,prev, pager, next,jumper" :total="queryparams.total"></el-pagination> -->
</template> </template>
<script> <script>
export default { export default {
name: 'Pagging', name: 'Pagging',
props: { props: {
notshowdelete: Boolean, notshowdelete: Boolean,
queryparams: Object, queryparams: Object,
multipleselection: Array, multipleselection: Array,
idname: String idname: String
}, },
computed: {}, computed: {},
methods: { methods: {
delete() { delete() {
const id_name = this.idname || 'id' const id_name = this.idname || 'id'
this.$confirm('此操作将删除[' + this.multipleselection.length + ']条数据, 是否继续?', '提示', { this.$confirm('此操作将删除[' + this.multipleselection.length + ']条数据, 是否继续?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}) })
.then(() => { .then(() => {
let ids = '' let ids = ''
for (let i = 0; i < this.multipleselection.length; i++) { for (let i = 0; i < this.multipleselection.length; i++) {
ids += this.multipleselection[i][id_name] + ',' ids += this.multipleselection[i][id_name] + ','
} }
this.$emit('dodelete', ids) this.$emit('dodelete', ids)
}) })
.catch(() => {}) .catch(() => {})
}, },
pageSizeChange(val) { pageSizeChange(val) {
this.queryparams.size = val this.queryparams.size = val
this.$emit('reloading') this.$emit('reloading')
}, },
pageNoChange(val) { pageNoChange(val) {
this.queryparams.current = val this.queryparams.current = val
this.$emit('reloading') this.$emit('reloading')
} }
} }
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.el-row { .el-row {
border-bottom: #dfe6ec 1px solid; border-bottom: #dfe6ec 1px solid;
border-left: #dfe6ec 1px solid; border-left: #dfe6ec 1px solid;
border-right: #dfe6ec 1px solid; border-right: #dfe6ec 1px solid;
padding: 10px 0 10px 0; padding: 10px 0 10px 0;
} }
.el-pagination { .el-pagination {
margin: 0 auto; margin: 0 auto;
} }
</style> </style>

118
demo-web-ui/src/components/Screenfull/index.vue

@ -1,59 +1,59 @@
<template> <template>
<div> <div>
<svg-icon :icon-class="isFullscreen?'exit-fullscreen':'fullscreen'" @click="click" /> <svg-icon :icon-class="isFullscreen?'exit-fullscreen':'fullscreen'" @click="click" />
</div> </div>
</template> </template>
<script> <script>
export default { export default {
name: 'Screenfull', name: 'Screenfull',
data() { data() {
return { return {
isFullscreen: false isFullscreen: false
} }
}, },
mounted() { mounted() {
this.init() this.init()
}, },
beforeDestroy() { beforeDestroy() {
this.destroy() this.destroy()
}, },
methods: { methods: {
click() { click() {
if (!screenfull.enabled) { if (!screenfull.enabled) {
this.$message({ this.$message({
message: 'you browser can not work', message: 'you browser can not work',
type: 'warning' type: 'warning'
}) })
return false return false
} }
screenfull.toggle() screenfull.toggle()
}, },
change() { change() {
this.isFullscreen = screenfull.isFullscreen this.isFullscreen = screenfull.isFullscreen
}, },
init() { init() {
if (screenfull.enabled) { if (screenfull.enabled) {
screenfull.on('change', this.change) screenfull.on('change', this.change)
} }
}, },
destroy() { destroy() {
if (screenfull.enabled) { if (screenfull.enabled) {
screenfull.off('change', this.change) screenfull.off('change', this.change)
} }
} }
} }
} }
</script> </script>
<style scoped> <style scoped>
.screenfull-svg { .screenfull-svg {
display: inline-block; display: inline-block;
cursor: pointer; cursor: pointer;
fill: #5a5e66;; fill: #5a5e66;;
width: 20px; width: 20px;
height: 20px; height: 20px;
vertical-align: 10px; vertical-align: 10px;
} }
</style> </style>

114
demo-web-ui/src/components/SizeSelect/index.vue

@ -1,57 +1,57 @@
<template> <template>
<el-dropdown trigger="click" @command="handleSetSize"> <el-dropdown trigger="click" @command="handleSetSize">
<div> <div>
<svg-icon class-name="size-icon" icon-class="size" /> <svg-icon class-name="size-icon" icon-class="size" />
</div> </div>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="item of sizeOptions" :key="item.value" :disabled="size===item.value" :command="item.value"> <el-dropdown-item v-for="item of sizeOptions" :key="item.value" :disabled="size===item.value" :command="item.value">
{{ {{
item.label }} item.label }}
</el-dropdown-item> </el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</template> </template>
<script> <script>
export default { export default {
data() { data() {
return { return {
sizeOptions: [ sizeOptions: [
{ label: 'Default', value: 'default' }, { label: 'Default', value: 'default' },
{ label: 'Medium', value: 'medium' }, { label: 'Medium', value: 'medium' },
{ label: 'Small', value: 'small' }, { label: 'Small', value: 'small' },
{ label: 'Mini', value: 'mini' } { label: 'Mini', value: 'mini' }
] ]
} }
}, },
computed: { computed: {
size() { size() {
return this.$store.getters.size return this.$store.getters.size
} }
}, },
methods: { methods: {
handleSetSize(size) { handleSetSize(size) {
this.$ELEMENT.size = size this.$ELEMENT.size = size
this.$store.dispatch('app/setSize', size) this.$store.dispatch('app/setSize', size)
this.refreshView() this.refreshView()
this.$message({ this.$message({
message: 'Switch Size Success', message: 'Switch Size Success',
type: 'success' type: 'success'
}) })
}, },
refreshView() { refreshView() {
// In order to make the cached page re-rendered // In order to make the cached page re-rendered
this.$store.dispatch('tagsView/delAllCachedViews', this.$route) this.$store.dispatch('tagsView/delAllCachedViews', this.$route)
const { fullPath } = this.$route const { fullPath } = this.$route
this.$nextTick(() => { this.$nextTick(() => {
this.$router.replace({ this.$router.replace({
path: '/redirect' + fullPath path: '/redirect' + fullPath
}) })
}) })
} }
} }
} }
</script> </script>

124
demo-web-ui/src/components/SvgIcon/index.vue

@ -1,62 +1,62 @@
<template> <template>
<div v-if="isExternal" :style="styleExternalIcon" class="svg-external-icon svg-icon" v-on="$listeners" /> <div v-if="isExternal" :style="styleExternalIcon" class="svg-external-icon svg-icon" v-on="$listeners" />
<svg v-else :class="svgClass" aria-hidden="true" v-on="$listeners"> <svg v-else :class="svgClass" aria-hidden="true" v-on="$listeners">
<use :xlink:href="iconName" /> <use :xlink:href="iconName" />
</svg> </svg>
</template> </template>
<script> <script>
// doc: https://panjiachen.github.io/vue-element-admin-site/feature/component/svg-icon.html#usage // doc: https://panjiachen.github.io/vue-element-admin-site/feature/component/svg-icon.html#usage
import { isExternal } from '@/utils/validate' import { isExternal } from '@/utils/validate'
export default { export default {
name: 'SvgIcon', name: 'SvgIcon',
props: { props: {
iconClass: { iconClass: {
type: String, type: String,
required: true required: true
}, },
className: { className: {
type: String, type: String,
default: '' default: ''
} }
}, },
computed: { computed: {
isExternal() { isExternal() {
return isExternal(this.iconClass) return isExternal(this.iconClass)
}, },
iconName() { iconName() {
return `#icon-${this.iconClass}` return `#icon-${this.iconClass}`
}, },
svgClass() { svgClass() {
if (this.className) { if (this.className) {
return 'svg-icon ' + this.className return 'svg-icon ' + this.className
} else { } else {
return 'svg-icon' return 'svg-icon'
} }
}, },
styleExternalIcon() { styleExternalIcon() {
return { return {
mask: `url(${this.iconClass}) no-repeat 50% 50%`, mask: `url(${this.iconClass}) no-repeat 50% 50%`,
'-webkit-mask': `url(${this.iconClass}) no-repeat 50% 50%` '-webkit-mask': `url(${this.iconClass}) no-repeat 50% 50%`
} }
} }
} }
} }
</script> </script>
<style scoped> <style scoped>
.svg-icon { .svg-icon {
width: 1em; width: 1em;
height: 1em; height: 1em;
vertical-align: -0.15em; vertical-align: -0.15em;
fill: currentColor; fill: currentColor;
overflow: hidden; overflow: hidden;
} }
.svg-external-icon { .svg-external-icon {
background-color: currentColor; background-color: currentColor;
mask-size: cover!important; mask-size: cover!important;
display: inline-block; display: inline-block;
} }
</style> </style>

350
demo-web-ui/src/components/ThemePicker/index.vue

@ -1,175 +1,175 @@
<template> <template>
<el-color-picker <el-color-picker
v-model="theme" v-model="theme"
:predefine="['#409EFF', '#1890ff', '#304156','#212121','#11a983', '#13c2c2', '#6959CD', '#f5222d', ]" :predefine="['#409EFF', '#1890ff', '#304156','#212121','#11a983', '#13c2c2', '#6959CD', '#f5222d', ]"
class="theme-picker" class="theme-picker"
popper-class="theme-picker-dropdown" popper-class="theme-picker-dropdown"
/> />
</template> </template>
<script> <script>
const version = require('element-ui/package.json').version // element-ui version from node_modules const version = require('element-ui/package.json').version // element-ui version from node_modules
const ORIGINAL_THEME = '#409EFF' // default color const ORIGINAL_THEME = '#409EFF' // default color
export default { export default {
data() { data() {
return { return {
chalk: '', // content of theme-chalk css chalk: '', // content of theme-chalk css
theme: '' theme: ''
} }
}, },
computed: { computed: {
defaultTheme() { defaultTheme() {
return this.$store.state.settings.theme return this.$store.state.settings.theme
} }
}, },
watch: { watch: {
defaultTheme: { defaultTheme: {
handler: function(val, oldVal) { handler: function(val, oldVal) {
this.theme = val this.theme = val
}, },
immediate: true immediate: true
}, },
async theme(val) { async theme(val) {
const oldVal = this.chalk ? this.theme : ORIGINAL_THEME const oldVal = this.chalk ? this.theme : ORIGINAL_THEME
if (typeof val !== 'string') return if (typeof val !== 'string') return
const themeCluster = this.getThemeCluster(val.replace('#', '')) const themeCluster = this.getThemeCluster(val.replace('#', ''))
const originalCluster = this.getThemeCluster(oldVal.replace('#', '')) const originalCluster = this.getThemeCluster(oldVal.replace('#', ''))
console.log(themeCluster, originalCluster) console.log(themeCluster, originalCluster)
const $message = this.$message({ const $message = this.$message({
message: ' Compiling the theme', message: ' Compiling the theme',
customClass: 'theme-message', customClass: 'theme-message',
type: 'success', type: 'success',
duration: 0, duration: 0,
iconClass: 'el-icon-loading' iconClass: 'el-icon-loading'
}) })
const getHandler = (variable, id) => { const getHandler = (variable, id) => {
return () => { return () => {
const originalCluster = this.getThemeCluster(ORIGINAL_THEME.replace('#', '')) const originalCluster = this.getThemeCluster(ORIGINAL_THEME.replace('#', ''))
const newStyle = this.updateStyle(this[variable], originalCluster, themeCluster) const newStyle = this.updateStyle(this[variable], originalCluster, themeCluster)
let styleTag = document.getElementById(id) let styleTag = document.getElementById(id)
if (!styleTag) { if (!styleTag) {
styleTag = document.createElement('style') styleTag = document.createElement('style')
styleTag.setAttribute('id', id) styleTag.setAttribute('id', id)
document.head.appendChild(styleTag) document.head.appendChild(styleTag)
} }
styleTag.innerText = newStyle styleTag.innerText = newStyle
} }
} }
if (!this.chalk) { if (!this.chalk) {
const url = `https://unpkg.com/element-ui@${version}/lib/theme-chalk/index.css` const url = `https://unpkg.com/element-ui@${version}/lib/theme-chalk/index.css`
await this.getCSSString(url, 'chalk') await this.getCSSString(url, 'chalk')
} }
const chalkHandler = getHandler('chalk', 'chalk-style') const chalkHandler = getHandler('chalk', 'chalk-style')
chalkHandler() chalkHandler()
const styles = [].slice.call(document.querySelectorAll('style')) const styles = [].slice.call(document.querySelectorAll('style'))
.filter(style => { .filter(style => {
const text = style.innerText const text = style.innerText
return new RegExp(oldVal, 'i').test(text) && !/Chalk Variables/.test(text) return new RegExp(oldVal, 'i').test(text) && !/Chalk Variables/.test(text)
}) })
styles.forEach(style => { styles.forEach(style => {
const { innerText } = style const { innerText } = style
if (typeof innerText !== 'string') return if (typeof innerText !== 'string') return
style.innerText = this.updateStyle(innerText, originalCluster, themeCluster) style.innerText = this.updateStyle(innerText, originalCluster, themeCluster)
}) })
this.$emit('change', val) this.$emit('change', val)
$message.close() $message.close()
} }
}, },
methods: { methods: {
updateStyle(style, oldCluster, newCluster) { updateStyle(style, oldCluster, newCluster) {
let newStyle = style let newStyle = style
oldCluster.forEach((color, index) => { oldCluster.forEach((color, index) => {
newStyle = newStyle.replace(new RegExp(color, 'ig'), newCluster[index]) newStyle = newStyle.replace(new RegExp(color, 'ig'), newCluster[index])
}) })
return newStyle return newStyle
}, },
getCSSString(url, variable) { getCSSString(url, variable) {
return new Promise(resolve => { return new Promise(resolve => {
const xhr = new XMLHttpRequest() const xhr = new XMLHttpRequest()
xhr.onreadystatechange = () => { xhr.onreadystatechange = () => {
if (xhr.readyState === 4 && xhr.status === 200) { if (xhr.readyState === 4 && xhr.status === 200) {
this[variable] = xhr.responseText.replace(/@font-face{[^}]+}/, '') this[variable] = xhr.responseText.replace(/@font-face{[^}]+}/, '')
resolve() resolve()
} }
} }
xhr.open('GET', url) xhr.open('GET', url)
xhr.send() xhr.send()
}) })
}, },
getThemeCluster(theme) { getThemeCluster(theme) {
const tintColor = (color, tint) => { const tintColor = (color, tint) => {
let red = parseInt(color.slice(0, 2), 16) let red = parseInt(color.slice(0, 2), 16)
let green = parseInt(color.slice(2, 4), 16) let green = parseInt(color.slice(2, 4), 16)
let blue = parseInt(color.slice(4, 6), 16) let blue = parseInt(color.slice(4, 6), 16)
if (tint === 0) { // when primary color is in its rgb space if (tint === 0) { // when primary color is in its rgb space
return [red, green, blue].join(',') return [red, green, blue].join(',')
} else { } else {
red += Math.round(tint * (255 - red)) red += Math.round(tint * (255 - red))
green += Math.round(tint * (255 - green)) green += Math.round(tint * (255 - green))
blue += Math.round(tint * (255 - blue)) blue += Math.round(tint * (255 - blue))
red = red.toString(16) red = red.toString(16)
green = green.toString(16) green = green.toString(16)
blue = blue.toString(16) blue = blue.toString(16)
return `#${red}${green}${blue}` return `#${red}${green}${blue}`
} }
} }
const shadeColor = (color, shade) => { const shadeColor = (color, shade) => {
let red = parseInt(color.slice(0, 2), 16) let red = parseInt(color.slice(0, 2), 16)
let green = parseInt(color.slice(2, 4), 16) let green = parseInt(color.slice(2, 4), 16)
let blue = parseInt(color.slice(4, 6), 16) let blue = parseInt(color.slice(4, 6), 16)
red = Math.round((1 - shade) * red) red = Math.round((1 - shade) * red)
green = Math.round((1 - shade) * green) green = Math.round((1 - shade) * green)
blue = Math.round((1 - shade) * blue) blue = Math.round((1 - shade) * blue)
red = red.toString(16) red = red.toString(16)
green = green.toString(16) green = green.toString(16)
blue = blue.toString(16) blue = blue.toString(16)
return `#${red}${green}${blue}` return `#${red}${green}${blue}`
} }
const clusters = [theme] const clusters = [theme]
for (let i = 0; i <= 9; i++) { for (let i = 0; i <= 9; i++) {
clusters.push(tintColor(theme, Number((i / 10).toFixed(2)))) clusters.push(tintColor(theme, Number((i / 10).toFixed(2))))
} }
clusters.push(shadeColor(theme, 0.1)) clusters.push(shadeColor(theme, 0.1))
return clusters return clusters
} }
} }
} }
</script> </script>
<style> <style>
.theme-message, .theme-message,
.theme-picker-dropdown { .theme-picker-dropdown {
z-index: 99999 !important; z-index: 99999 !important;
} }
.theme-picker .el-color-picker__trigger { .theme-picker .el-color-picker__trigger {
height: 26px !important; height: 26px !important;
width: 26px !important; width: 26px !important;
padding: 2px; padding: 2px;
} }
.theme-picker-dropdown .el-color-dropdown__link-btn { .theme-picker-dropdown .el-color-dropdown__link-btn {
display: none; display: none;
} }
</style> </style>

448
demo-web-ui/src/components/amap/amap.vue

@ -1,224 +1,224 @@
<template> <template>
<el-dialog top="5vh" :append-to-body="true" title="获取地图坐标" :visible.sync="dialogVisible" :before-close="handleClose" width="1000px"> <el-dialog top="5vh" :append-to-body="true" title="获取地图坐标" :visible.sync="dialogVisible" :before-close="handleClose" width="1000px">
<div class="amap-page-container"> <div class="amap-page-container">
<el-amap-search-box class="search-box" :search-option="searchOption" :on-search-result="onSearchResult" /> <el-amap-search-box class="search-box" :search-option="searchOption" :on-search-result="onSearchResult" />
<div class="toolbar"> <div class="toolbar">
<span>当前坐标: {{ lng }}, {{ lat }}</span> <span>当前坐标: {{ lng }}, {{ lat }}</span>
<span>地址: {{ address }}</span> <span>地址: {{ address }}</span>
<el-button type="primary" @click="select" class="btn">确定</el-button> <el-button type="primary" @click="select" class="btn">确定</el-button>
</div> </div>
<el-amap <el-amap
class="amap-demo" class="amap-demo"
vid="amapDemo2" vid="amapDemo2"
:zoom="zoom" :zoom="zoom"
:center="mapCenter" :center="mapCenter"
:events="events" :events="events"
:plugin="plugin" :plugin="plugin"
> >
<el-amap-marker v-for="(marker,index) in markers" <el-amap-marker v-for="(marker,index) in markers"
:key="index" :key="index"
:position="marker" :position="marker"
:events="markerEvents" :events="markerEvents"
/> />
<!-- <el-amap-marker v-for="marker in markers" :position="marker" /> --> <!-- <el-amap-marker v-for="marker in markers" :position="marker" /> -->
</el-amap> </el-amap>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { AMapManager } from 'vue-amap' import { AMapManager } from 'vue-amap'
export default { export default {
name: 'AmapPage', name: 'AmapPage',
props: { props: {
dialogVisible: { dialogVisible: {
type: Boolean, type: Boolean,
default: false default: false
}, },
address:{ address:{
type: String, type: String,
default: '' default: ''
}, },
makerPosition: { makerPosition: {
type: String, type: String,
default: '' default: ''
} }
}, },
data: function() { data: function() {
const self = this const self = this
return { return {
zoom: 14, zoom: 14,
mapCenter: [114.508905, 38.004099], mapCenter: [114.508905, 38.004099],
searchOption: { searchOption: {
city: '石家庄', city: '石家庄',
citylimit: false citylimit: false
}, },
lng: 0, lng: 0,
lat: 0, lat: 0,
loaded: false, loaded: false,
plugin: [{ plugin: [{
pName: 'Geolocation', pName: 'Geolocation',
resizeEnable: true, //使:true resizeEnable: true, //使:true
timeout: 100, //10 timeout: 100, //10
events: { events: {
init(o) { init(o) {
// o // o
o.getCurrentPosition((status, result) => { o.getCurrentPosition((status, result) => {
if (result && result.position) { if (result && result.position) {
if (self.makerPosition.length == 0) { if (self.makerPosition.length == 0) {
self.$emit('update:address', result.formattedAddress) self.$emit('update:address', result.formattedAddress)
// //
self.lng = result.position.lng; self.lng = result.position.lng;
// //
self.lat = result.position.lat; self.lat = result.position.lat;
// //
self.mapCenter = [self.lng, self.lat]; self.mapCenter = [self.lng, self.lat];
}else{ }else{
let maker = self.makerPosition.split(",") let maker = self.makerPosition.split(",")
self.lng = maker[0] self.lng = maker[0]
self.lat = maker[1] self.lat = maker[1]
} }
// load // load
self.loaded = true self.loaded = true
// //
self.$nextTick() self.$nextTick()
} }
}) })
} }
} }
} }
], ],
events: { events: {
click(e) { click(e) {
const { lng, lat } = e.lnglat const { lng, lat } = e.lnglat
self.lng = lng self.lng = lng
self.lat = lat self.lat = lat
self.markers[0] = [lng, lat] self.markers[0] = [lng, lat]
// SDK // SDK
var geocoder = new AMap.Geocoder({ var geocoder = new AMap.Geocoder({
radius: 1000, radius: 1000,
extensions: 'all' extensions: 'all'
}) })
geocoder.getAddress([lng, lat], function(status, result) { geocoder.getAddress([lng, lat], function(status, result) {
if (status === 'complete' && result.info === 'OK') { if (status === 'complete' && result.info === 'OK') {
if (result && result.regeocode) { if (result && result.regeocode) {
let addressComponent = result.regeocode.addressComponent let addressComponent = result.regeocode.addressComponent
let address = addressComponent.province + addressComponent.city + addressComponent.district + addressComponent.street + addressComponent.streetNumber let address = addressComponent.province + addressComponent.city + addressComponent.district + addressComponent.street + addressComponent.streetNumber
self.$emit('update:address', address) self.$emit('update:address', address)
self.$nextTick() self.$nextTick()
} }
} }
}) })
} }
}, },
markerEvents:{ // marker markerEvents:{ // marker
click: e => { click: e => {
const { lng, lat } = e.lnglat const { lng, lat } = e.lnglat
self.lng = lng self.lng = lng
self.lat = lat self.lat = lat
// self.markers[0] = [lng, lat] // self.markers[0] = [lng, lat]
// SDK // SDK
var geocoder = new AMap.Geocoder({ var geocoder = new AMap.Geocoder({
radius: 1000, radius: 1000,
extensions: 'all' extensions: 'all'
}) })
geocoder.getAddress([lng, lat], function(status, result) { geocoder.getAddress([lng, lat], function(status, result) {
if (status === 'complete' && result.info === 'OK') { if (status === 'complete' && result.info === 'OK') {
if (result && result.regeocode) { if (result && result.regeocode) {
let addressComponent = result.regeocode.addressComponent let addressComponent = result.regeocode.addressComponent
let address = addressComponent.province + addressComponent.city + addressComponent.district + addressComponent.street + addressComponent.streetNumber let address = addressComponent.province + addressComponent.city + addressComponent.district + addressComponent.street + addressComponent.streetNumber
self.$emit('update:address', address) self.$emit('update:address', address)
self.$nextTick() self.$nextTick()
} }
} }
}) })
} }
} }
} }
}, },
computed:{ computed:{
markers: { markers: {
get: function () { get: function () {
return [[this.lng, this.lat]] return [[this.lng, this.lat]]
}, },
set: function (newValue) { set: function (newValue) {
} }
} }
}, },
methods: { methods: {
onSearchResult(pois) { onSearchResult(pois) {
let latSum = 0 let latSum = 0
let lngSum = 0 let lngSum = 0
let _self = this let _self = this
this.markers = [] this.markers = []
if (pois.length > 0) { if (pois.length > 0) {
const { lng, lat } = pois[0] const { lng, lat } = pois[0]
_self.lng = lng _self.lng = lng
_self.lat = lat _self.lat = lat
_self.mapCenter = [lng, lat]; _self.mapCenter = [lng, lat];
// SDK // SDK
var geocoder = new AMap.Geocoder({ var geocoder = new AMap.Geocoder({
radius: 1000, radius: 1000,
extensions: 'all' extensions: 'all'
}) })
geocoder.getAddress([lng, lat], (status, result) => { geocoder.getAddress([lng, lat], (status, result) => {
if (status === 'complete' && result.info === 'OK') { if (status === 'complete' && result.info === 'OK') {
if (result && result.regeocode) { if (result && result.regeocode) {
let addressComponent = result.regeocode.addressComponent let addressComponent = result.regeocode.addressComponent
let address = addressComponent.province + addressComponent.city + addressComponent.district + addressComponent.street + addressComponent.streetNumber let address = addressComponent.province + addressComponent.city + addressComponent.district + addressComponent.street + addressComponent.streetNumber
_self.$emit('update:address', address) _self.$emit('update:address', address)
_self.$nextTick() _self.$nextTick()
} }
} }
}) })
} }
}, },
handleClose(done) { handleClose(done) {
this.$emit('update:dialogVisible', false) this.$emit('update:dialogVisible', false)
this.$nextTick(() => { this.$nextTick(() => {
done() done()
}) })
}, },
select() { select() {
this.$emit('update:dialogVisible', false) this.$emit('update:dialogVisible', false)
this.$emit('update:makerPosition', this.markers[0].toString()) this.$emit('update:makerPosition', this.markers[0].toString())
this.$emit('update:address', this.address) this.$emit('update:address', this.address)
} }
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.amap-demo { .amap-demo {
height: 450px; height: 450px;
} }
.search-box { .search-box {
z-index: 999; z-index: 999;
margin-bottom: 20px; margin-bottom: 20px;
position: absolute; position: absolute;
top: 70px; top: 70px;
left: 100px; left: 100px;
} }
.amap-page-container { .amap-page-container {
position: relative; position: relative;
} }
.toolbar{ .toolbar{
padding-bottom: 10px; padding-bottom: 10px;
height: 50px; height: 50px;
line-height: 50px; line-height: 50px;
position: relative; position: relative;
.btn{ .btn{
position: absolute; position: absolute;
right: 0; right: 0;
} }
span{ span{
padding-left: 10px; padding-left: 10px;
} }
} }
</style> </style>

64
demo-web-ui/src/components/flow/flow.vue

@ -1,32 +1,32 @@
<template> <template>
<div> <div>
<bpmn-modeler <bpmn-modeler
ref="refNode" ref="refNode"
:xml="xmlData" :xml="xmlData"
:is-view="true" :is-view="true"
:taskList="taskData" :taskList="taskData"
/> />
</div> </div>
</template> </template>
<script> <script>
import bpmnModeler from '@/views/Process/index' import bpmnModeler from '@/views/Process/index'
export default { export default {
name: "Flow", name: "Flow",
components: { components: {
bpmnModeler bpmnModeler
}, },
props: { props: {
xmlData: { xmlData: {
type: String, type: String,
default: '' default: ''
}, },
taskData: { taskData: {
type: Array, type: Array,
default: () => [] default: () => []
} }
}, },
data() { data() {
return {}; return {};
} }
}; };
</script> </script>

260
demo-web-ui/src/components/flow/flowRecord.vue

@ -1,130 +1,130 @@
<template> <template>
<div> <div>
<!--流程流转记录--> <!--流程流转记录-->
<el-card style="overflow: auto;height: 600px"> <el-card style="overflow: auto;height: 600px">
<el-col :span="24"> <el-col :span="24">
<div> <div>
<div style="width:50%;float:left;"> <div style="width:50%;float:left;">
<span class="el-icon-picture-outline">流程图</span> <span class="el-icon-picture-outline">流程图</span>
<flow :xmlData="xmlData" :taskData="taskData"></flow> <flow :xmlData="xmlData" :taskData="taskData"></flow>
</div> </div>
<div style="width:50%;;float:left;border-left: 1px solid blue"> <div style="width:50%;;float:left;border-left: 1px solid blue">
<el-timeline> <el-timeline>
<el-timeline-item v-for="(item,index ) in flowRecordList" :key="index" :icon="setIcon(item.time)" :color="setColor(item.time)"> <el-timeline-item v-for="(item,index ) in flowRecordList" :key="index" :icon="setIcon(item.time)" :color="setColor(item.time)">
<div v-if="item.flowableRecordVo !== null"> <div v-if="item.flowableRecordVo !== null">
<p style="font-weight: 700">{{ item.flowableRecordVo.taskName }}</p> <p style="font-weight: 700">{{ item.flowableRecordVo.taskName }}</p>
<el-card :body-style="{ padding: '10px' }"> <el-card :body-style="{ padding: '10px' }">
<div style="display: flex;flex-direction: row;justify-content: space-between;align-items: flex-start"> <div style="display: flex;flex-direction: row;justify-content: space-between;align-items: flex-start">
<div> <div>
<label v-if="item.flowableRecordVo.taskUserInfos" style="font-weight: normal;margin-right: 30px;">实际办理 <label v-if="item.flowableRecordVo.taskUserInfos" style="font-weight: normal;margin-right: 30px;">实际办理
<span v-for="(items, index ) in item.flowableRecordVo.taskUserInfos" :key="index">{{ items.assigneeName }},</span> <span v-for="(items, index ) in item.flowableRecordVo.taskUserInfos" :key="index">{{ items.assigneeName }},</span>
<!-- <el-tag type="info" size="mini">{{item.deptName}}</el-tag>--> <!-- <el-tag type="info" size="mini">{{item.deptName}}</el-tag>-->
</label> </label>
<label v-if="item.flowableRecordVo.candidate" style="font-weight: normal;margin-right: 30px;">候选办理{{ item.flowableRecordVo.candidate }}</label><br> <label v-if="item.flowableRecordVo.candidate" style="font-weight: normal;margin-right: 30px;">候选办理{{ item.flowableRecordVo.candidate }}</label><br>
<label style="font-weight: normal">接收时间 </label><label style="color:#8a909c;font-weight: normal">{{ item.flowableRecordVo.createTime }}</label><br> <label style="font-weight: normal">接收时间 </label><label style="color:#8a909c;font-weight: normal">{{ item.flowableRecordVo.createTime }}</label><br>
<label v-if="item.flowableRecordVo.finishTime" style="font-weight: normal">办理时间 </label> <label v-if="item.flowableRecordVo.finishTime" style="font-weight: normal">办理时间 </label>
<label style="color:#8a909c;font-weight: normal">{{ item.flowableRecordVo.finishTime }}</label><br> <label style="color:#8a909c;font-weight: normal">{{ item.flowableRecordVo.finishTime }}</label><br>
</div> </div>
<div> <div>
<label v-if="item.flowableRecordVo.duration" style="font-weight: normal">耗时</label> <label v-if="item.flowableRecordVo.duration" style="font-weight: normal">耗时</label>
<label style="color:red;font-weight: normal">{{ item.flowableRecordVo.duration }}</label> <label style="color:red;font-weight: normal">{{ item.flowableRecordVo.duration }}</label>
</div> </div>
</div> </div>
<div> <div>
<p v-if="item.flowableRecordVo.comment"> <p v-if="item.flowableRecordVo.comment">
<el-tag type="success" v-if="item.flowableRecordVo.comment.type === '1'"> {{ item.flowableRecordVo.comment.comment }}</el-tag> <el-tag type="success" v-if="item.flowableRecordVo.comment.type === '1'"> {{ item.flowableRecordVo.comment.comment }}</el-tag>
<el-tag type="warning" v-if="item.flowableRecordVo.comment.type === '2'"> {{ item.flowableRecordVo.comment.comment }}</el-tag> <el-tag type="warning" v-if="item.flowableRecordVo.comment.type === '2'"> {{ item.flowableRecordVo.comment.comment }}</el-tag>
<el-tag type="danger" v-if="item.flowableRecordVo.comment.type === '3'"> {{ item.flowableRecordVo.comment.comment }}</el-tag> <el-tag type="danger" v-if="item.flowableRecordVo.comment.type === '3'"> {{ item.flowableRecordVo.comment.comment }}</el-tag>
<el-tag type="danger" v-if="item.flowableRecordVo.comment.type === '7'"> {{ item.flowableRecordVo.comment.comment }}</el-tag> <el-tag type="danger" v-if="item.flowableRecordVo.comment.type === '7'"> {{ item.flowableRecordVo.comment.comment }}</el-tag>
<el-tag type="danger" v-if="item.flowableRecordVo.comment.type === '6'"> {{ item.flowableRecordVo.comment.comment }}</el-tag> <el-tag type="danger" v-if="item.flowableRecordVo.comment.type === '6'"> {{ item.flowableRecordVo.comment.comment }}</el-tag>
</p> </p>
</div> </div>
</el-card> </el-card>
</div> </div>
<div v-else> <div v-else>
<p style="font-weight: 700">{{ item.processCommentVo.title }}</p> <p style="font-weight: 700">{{ item.processCommentVo.title }}</p>
<el-card :body-style="{ padding: '10px' }"> <el-card :body-style="{ padding: '10px' }">
<div> <div>
<div> <div>
<label style="font-weight: normal">评论时间 </label><label style="color:#8a909c;font-weight: normal">{{ item.processCommentVo.time }}</label><br> <label style="font-weight: normal">评论时间 </label><label style="color:#8a909c;font-weight: normal">{{ item.processCommentVo.time }}</label><br>
<label style="font-weight: normal">评论内容 </label><label style="color:#8a909c;font-weight: normal">{{ item.processCommentVo.content }}</label><br> <label style="font-weight: normal">评论内容 </label><label style="color:#8a909c;font-weight: normal">{{ item.processCommentVo.content }}</label><br>
<label style="font-weight: normal" v-show="item.processCommentVo.fileList.length > 0">评论图片: </label><label style="color:#0294d7;font-weight: normal" v-show="item.processCommentVo.fileList.length > 0" @click="handLook(item.processCommentVo.fileList)">查看</label> <label style="font-weight: normal" v-show="item.processCommentVo.fileList.length > 0">评论图片: </label><label style="color:#0294d7;font-weight: normal" v-show="item.processCommentVo.fileList.length > 0" @click="handLook(item.processCommentVo.fileList)">查看</label>
</div> </div>
</div> </div>
</el-card> </el-card>
</div> </div>
</el-timeline-item> </el-timeline-item>
</el-timeline> </el-timeline>
</div> </div>
</div> </div>
</el-col> </el-col>
</el-card> </el-card>
<el-dialog :visible="dialogViseble" append-to-body :before-close="handleClose"> <el-dialog :visible="dialogViseble" append-to-body :before-close="handleClose">
<el-image style="width: 178px;height: 178px" v-for="(item,index) in imgList" :key="index" :src="item" :preview-src-list="imgList"></el-image> <el-image style="width: 178px;height: 178px" v-for="(item,index) in imgList" :key="index" :src="item" :preview-src-list="imgList"></el-image>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import flow from '@C/flow/flow' import flow from '@C/flow/flow'
export default { export default {
name: 'flowRecords', name: 'flowRecords',
components: { components: {
flow flow
}, },
props: { props: {
xmlData: { xmlData: {
type: String, type: String,
default: '' default: ''
}, },
taskData: { taskData: {
type: Array, type: Array,
default: () => [] default: () => []
}, },
flowRecordList: { flowRecordList: {
type: Array, type: Array,
default: () => [] default: () => []
} }
}, },
data() { data() {
return { return {
dialogViseble: false, dialogViseble: false,
imgList: [] imgList: []
} }
}, },
created() { created() {
}, },
methods: { methods: {
handLook(value) { handLook(value) {
console.log(value) console.log(value)
this.dialogViseble = true this.dialogViseble = true
this.imgList = value this.imgList = value
}, },
handleClose() { handleClose() {
this.dialogViseble = false this.dialogViseble = false
this.imgList = [] this.imgList = []
}, },
setIcon(val) { setIcon(val) {
if (val) { if (val) {
return 'el-icon-check' return 'el-icon-check'
} else { } else {
return 'el-icon-time' return 'el-icon-time'
} }
}, },
setColor(val) { setColor(val) {
if (val) { if (val) {
return '#2bc418' return '#2bc418'
} else { } else {
return '#b3bdbb' return '#b3bdbb'
} }
} }
} }
} }
</script> </script>
<style scoped> <style scoped>
.el-tag { .el-tag {
white-space: normal; white-space: normal;
height: auto; height: auto;
line-height: 20px; line-height: 20px;
} }
</style> </style>

294
demo-web-ui/src/components/imgCodeRole/index.vue

@ -1,147 +1,147 @@
<template> <template>
<div> <div>
<div class="big-box" id="BigBox" <div class="big-box" id="BigBox"
v-loading="loading" v-loading="loading"
element-loading-text="拼命加载中" element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading" element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)"> element-loading-background="rgba(0, 0, 0, 0.8)">
<img class="codeimg" :src="imgCodeUrl" alt=""> <img class="codeimg" :src="imgCodeUrl" alt="">
<div class="click-box" @click="clickBox"></div> <div class="click-box" @click="clickBox"></div>
</div> </div>
<div class="wordList"> <div class="wordList">
请在上图依次点击: 请在上图依次点击:
<i>{{wordList[0]}}</i> <i>{{wordList[0]}}</i>
<i>{{wordList[1]}}</i> <i>{{wordList[1]}}</i>
<i>{{wordList[2]}}</i> <i>{{wordList[2]}}</i>
<span class="restcode" @click="getCodeImage">换一换</span> <span class="restcode" @click="getCodeImage">换一换</span>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import axios from 'axios' import axios from 'axios'
import qs from 'qs' import qs from 'qs'
export default { export default {
data() { data() {
return { return {
rndNum: '', // rndNum: '', //
imgCodeUrl: '', // imgCodeUrl: '', //
cssCode: '', // cssCode: '', //
isSubmit: true, // isSubmit: true, //
zuobiaoNum: 0, // zuobiaoNum: 0, //
zuobiaoArr: [], // zuobiaoArr: [], //
tempElement: [] ,//使 tempElement: [] ,//使
wordList: [] ,// wordList: [] ,//
uuid: '', uuid: '',
loading: true loading: true
} }
}, },
created() { created() {
// this.getCodeImage() // // this.getCodeImage() //
}, },
methods: { methods: {
// //
getCodeImage() { getCodeImage() {
this.zuobiaoNum = 0 this.zuobiaoNum = 0
this.zuobiaoArr = [] this.zuobiaoArr = []
let BigBox = document.getElementById("BigBox"); let BigBox = document.getElementById("BigBox");
for (let i = 0; i < this.tempElement.length; i++) { for (let i = 0; i < this.tempElement.length; i++) {
BigBox.removeChild(this.tempElement[i]); BigBox.removeChild(this.tempElement[i]);
} }
this.tempElement = [] this.tempElement = []
axios.get('api/portal/v1/captcha/clickWord',{ params:{_t: Date.parse(new Date()) / 1000} }).then(res =>{ axios.get('api/portal/v1/captcha/clickWord',{ params:{_t: Date.parse(new Date()) / 1000} }).then(res =>{
console.log(res); console.log(res);
this.loading = false this.loading = false
this.imgCodeUrl = "data:image/gif;base64," + res.data.data.dataVO.originalImageBase64 this.imgCodeUrl = "data:image/gif;base64," + res.data.data.dataVO.originalImageBase64
this.wordList = res.data.data.dataVO.wordList this.wordList = res.data.data.dataVO.wordList
this.uuid = res.data.data.uuid this.uuid = res.data.data.uuid
}) })
this.rndNum = this.getRndNum() this.rndNum = this.getRndNum()
}, },
//, //,
getRndNum() { getRndNum() {
return Math.random() return Math.random()
.toString() .toString()
.split('.')[1] .split('.')[1]
}, },
clickBox(event) { clickBox(event) {
this.zuobiaoArr[this.zuobiaoNum] = event.offsetX + ',' + event.offsetY this.zuobiaoArr[this.zuobiaoNum] = event.offsetX + ',' + event.offsetY
this.zuobiaoArr[this.zuobiaoNum] = { 'x': parseInt(event.offsetX)-20, 'y': parseInt(event.offsetY)-20 } this.zuobiaoArr[this.zuobiaoNum] = { 'x': parseInt(event.offsetX)-20, 'y': parseInt(event.offsetY)-20 }
this.zuobiaoNum++ this.zuobiaoNum++
let BigBox = document.getElementById("BigBox"); let BigBox = document.getElementById("BigBox");
let addSpan = document.createElement("span"); let addSpan = document.createElement("span");
addSpan.innerText = this.zuobiaoNum addSpan.innerText = this.zuobiaoNum
addSpan.setAttribute('style', 'left: ' + event.offsetX + 'px; top:' + event.offsetY + 'px;') addSpan.setAttribute('style', 'left: ' + event.offsetX + 'px; top:' + event.offsetY + 'px;')
BigBox.appendChild(addSpan) BigBox.appendChild(addSpan)
this.tempElement.push(addSpan) this.tempElement.push(addSpan)
if (this.zuobiaoNum == 3) { if (this.zuobiaoNum == 3) {
let data = { let data = {
uuid: this.uuid, uuid: this.uuid,
verifyCode: '[' verifyCode: '['
} }
for (var i = 0; i < this.zuobiaoArr.length; i++) { for (var i = 0; i < this.zuobiaoArr.length; i++) {
data.verifyCode += "{'x':" + this.zuobiaoArr[i].x + ",'y':" + this.zuobiaoArr[i].y + "}" data.verifyCode += "{'x':" + this.zuobiaoArr[i].x + ",'y':" + this.zuobiaoArr[i].y + "}"
} }
data.verifyCode = data.verifyCode + ']' data.verifyCode = data.verifyCode + ']'
console.log(this.zuobiaoArr,data) console.log(this.zuobiaoArr,data)
this.$emit("login", data) this.$emit("login", data)
data = qs.stringify(data) data = qs.stringify(data)
} }
} }
}, },
} }
</script> </script>
<style lang="scss"> <style lang="scss">
.big-box { .big-box {
position: relative; position: relative;
width: 100%; width: 100%;
height: 200px; height: 200px;
background-size: 100% 100%; background-size: 100% 100%;
.codeimg{ .codeimg{
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.click-box { .click-box {
width: 100%; width: 100%;
height: 200px; height: 200px;
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
z-index: 92; z-index: 92;
} }
span { span {
position: absolute; position: absolute;
width: 40px; width: 40px;
height: 40px; height: 40px;
line-height: 40px; line-height: 40px;
background: rgba(0, 0, 0, 0.4); background: rgba(0, 0, 0, 0.4);
color: #fff; color: #fff;
text-align: center; text-align: center;
font-size: 20px; font-size: 20px;
border-radius: 50%; border-radius: 50%;
z-index: 1; z-index: 1;
transform: translateX(-50%) translateY(-50%); transform: translateX(-50%) translateY(-50%);
} }
} }
.wordList{ .wordList{
font-size: 18px; font-size: 18px;
padding-top: 5px; padding-top: 5px;
i{ i{
padding: 0 8px; padding: 0 8px;
color: #018ad2; color: #018ad2;
} }
.restcode{ .restcode{
float: right; float: right;
color: #018ad2; color: #018ad2;
cursor: pointer; cursor: pointer;
} }
} }
</style> </style>

272
demo-web-ui/src/components/pagination/index.vue

@ -1,136 +1,136 @@
<template> <template>
<div :class="{'hidden':hidden}" class="pagination-container e-pagination"> <div :class="{'hidden':hidden}" class="pagination-container e-pagination">
<el-pagination <el-pagination
:background="background" :background="background"
:current-page.sync="current" :current-page.sync="current"
:page-size.sync="Size" :page-size.sync="Size"
:layout="layout" :layout="layout"
:page-sizes="pageSizes" :page-sizes="pageSizes"
:total="total" :total="total"
v-bind="$attrs" v-bind="$attrs"
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
/> />
</div> </div>
</template> </template>
<script> <script>
/** /**
* props 参数 * props 参数
* @total 默认数据总数 * @total 默认数据总数
* @page 默认开始页面 * @page 默认开始页面
* @limit 每页的数据条数 * @limit 每页的数据条数
* @pageSizes 分组 * @pageSizes 分组
* */ * */
export default { export default {
name: 'Pagination', name: 'Pagination',
props: { props: {
total: { total: {
required: true, required: true,
type: Number type: Number
}, },
page: { page: {
type: Number, type: Number,
default: 1 default: 1
}, },
limit: { limit: {
type: Number, type: Number,
default: 20 default: 20
}, },
pageSizes: { pageSizes: {
type: Array, type: Array,
default() { default() {
return [5, 10, 15, 20, 30, 50] return [5, 10, 15, 20, 30, 50]
} }
}, },
layout: { layout: {
type: String, type: String,
default: 'prev, pager, next, sizes, total, jumper' default: 'prev, pager, next, sizes, total, jumper'
}, },
background: { background: {
type: Boolean, type: Boolean,
default: true default: true
}, },
autoScroll: { autoScroll: {
type: Boolean, type: Boolean,
default: true default: true
}, },
hidden: { hidden: {
type: Boolean, type: Boolean,
default: false default: false
} }
}, },
/** /**
* page-size 每页显示条目个数支持 .sync 修饰符 * page-size 每页显示条目个数支持 .sync 修饰符
* current-page 当前页数支持 .sync 修饰符 * current-page 当前页数支持 .sync 修饰符
* */ * */
computed: { computed: {
current: { current: {
get() { get() {
return this.page return this.page
}, },
set(val) { set(val) {
this.$emit('update:page', val) this.$emit('update:page', val)
} }
}, },
Size: { Size: {
get() { get() {
return this.limit return this.limit
}, },
set(val) { set(val) {
this.$emit('update:limit', val) this.$emit('update:limit', val)
} }
} }
}, },
/** /**
* pagination 父定义请求函数 getList * pagination 父定义请求函数 getList
* */ * */
methods: { methods: {
handleSizeChange(val) { handleSizeChange(val) {
this.$emit('pagination', { pageNum: this.curren, pageSize: val }) this.$emit('pagination', { pageNum: this.curren, pageSize: val })
}, },
handleCurrentChange(val) { handleCurrentChange(val) {
this.$emit('pagination', { pageNum: val, pageSize: this.Size }) this.$emit('pagination', { pageNum: val, pageSize: this.Size })
} }
} }
} }
</script> </script>
<style lang="scss"> <style lang="scss">
.pagination-container.pagesize{ .pagination-container.pagesize{
float: right; float: right;
padding: 0; padding: 0;
} }
.pagination-container { .pagination-container {
background: #fff; background: #fff;
padding: 16px 16px 0 16px; padding: 16px 16px 0 16px;
float: right; float: right;
} }
.pagination-container.hidden { .pagination-container.hidden {
display: none; display: none;
} }
.el-pagination { .el-pagination {
white-space: nowrap; white-space: nowrap;
color: #303133; color: #303133;
font-weight: bold; font-weight: bold;
height: 28px; height: 28px;
} }
.el-pagination.is-background .btn-next, .el-pagination.is-background .btn-prev{ .el-pagination.is-background .btn-next, .el-pagination.is-background .btn-prev{
padding: 0 20px; padding: 0 20px;
border: 1px solid #ccc; border: 1px solid #ccc;
border-radius: 2px; border-radius: 2px;
background-color: #FFFFFF; background-color: #FFFFFF;
} }
.e-pagination{ .e-pagination{
.el-icon-arrow-left:before, .el-icon-arrow-left:before,
.el-icon-arrow-right:before{ .el-icon-arrow-right:before{
content: '下一页'; content: '下一页';
color: #727272; color: #727272;
} }
.el-icon-arrow-left:before{ .el-icon-arrow-left:before{
content: '上一页'; content: '上一页';
} }
} }
</style> </style>

248
demo-web-ui/src/components/pagination/pageye.vue

@ -1,124 +1,124 @@
<template> <template>
<div :class="{'hidden':hidden}" class="pagination-container e-pagination"> <div :class="{'hidden':hidden}" class="pagination-container e-pagination">
<el-pagination <el-pagination
:background="background" :background="background"
:current-page.sync="current" :current-page.sync="current"
:page-size.sync="Size" :page-size.sync="Size"
:layout="layout" :layout="layout"
:page-sizes="pageSizes" :page-sizes="pageSizes"
:total="total" :total="total"
v-bind="$attrs" v-bind="$attrs"
@size-chage="handleSizeChange" @size-chage="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
/> />
</div> </div>
</template> </template>
<script> <script>
/** /**
* props 参数 * props 参数
* @total 默认数据总数 * @total 默认数据总数
* @page 默认开始页面 * @page 默认开始页面
* @limit 每页的数据条数 * @limit 每页的数据条数
* @pageSizes 分组 * @pageSizes 分组
* */ * */
export default { export default {
name:"Pageination", name:"Pageination",
props:{ props:{
total:{ total:{
required:true, required:true,
type:Number type:Number
}, },
page:{ page:{
type:Number, type:Number,
default:1 default:1
}, },
limit:{ limit:{
type:Number, type:Number,
default:20 default:20
}, },
pageSizes:{ pageSizes:{
type:Array, type:Array,
default(){ default(){
return[5,10,15,20,30,50] return[5,10,15,20,30,50]
} }
}, },
layout: { layout: {
type: String, type: String,
// default: 'prev, pager, next, sizes, total, jumper' // default: 'prev, pager, next, sizes, total, jumper'
default: 'sizes' default: 'sizes'
}, },
background: { background: {
type: Boolean, type: Boolean,
default: true default: true
}, },
autoScroll: { autoScroll: {
type: Boolean, type: Boolean,
default: true default: true
}, },
hidden: { hidden: {
type: Boolean, type: Boolean,
default: false default: false
} }
}, },
computed:{ computed:{
current:{ current:{
get(){ get(){
return this.page return this.page
}, },
set(val){ set(val){
this.$emit('update:page',val) this.$emit('update:page',val)
} }
}, },
Size:{ Size:{
get(){ get(){
return this.limit return this.limit
}, },
set(){ set(){
this.$emit('update:limit',val) this.$emit('update:limit',val)
} }
} }
}, },
methods:{ methods:{
handleSizeChange(val){ handleSizeChange(val){
this.$emit('pagination',{pageNum:this.current,pageSize:val}) this.$emit('pagination',{pageNum:this.current,pageSize:val})
}, },
handleCurrentChange(val){ handleCurrentChange(val){
this.$emit('pagination',{pageNum: val, pageSize: this.Size}) this.$emit('pagination',{pageNum: val, pageSize: this.Size})
} }
} }
} }
</script> </script>
<style lang="scss"> <style lang="scss">
.pagination-container.pagesize{ .pagination-container.pagesize{
float: right; float: right;
padding: 0; padding: 0;
} }
.pagination-container { .pagination-container {
background: #fff; background: #fff;
padding: 16px 16px 0 16px; padding: 16px 16px 0 16px;
float: right; float: right;
} }
.pagination-container.hidden { .pagination-container.hidden {
display: none; display: none;
} }
.el-pagination.is-background .btn-next, .el-pagination.is-background .btn-prev{ .el-pagination.is-background .btn-next, .el-pagination.is-background .btn-prev{
padding: 0 20px; padding: 0 20px;
border: 1px solid #ccc; border: 1px solid #ccc;
border-radius: 2px; border-radius: 2px;
background-color: #FFFFFF; background-color: #FFFFFF;
} }
.e-pagination{ .e-pagination{
.el-icon-arrow-left:before, .el-icon-arrow-left:before,
.el-icon-arrow-right:before{ .el-icon-arrow-right:before{
content: '下一页'; content: '下一页';
color: #727272; color: #727272;
} }
.el-icon-arrow-left:before{ .el-icon-arrow-left:before{
content: '上一页'; content: '上一页';
} }
} }
</style> </style>

140
demo-web-ui/src/components/passwordSafe/index.vue

@ -1,70 +1,70 @@
<template> <template>
<div> <div>
<el-input :type="type" v-model="localValue" @input="onInput" :placeholder="placeholder" autocomplete="off" <el-input :type="type" v-model="localValue" @input="onInput" :placeholder="placeholder" autocomplete="off"
:maxlength="maxlength" show-password> :maxlength="maxlength" show-password>
</el-input> </el-input>
<div class="pasTips" v-if="pastips"> <div class="pasTips" v-if="pastips">
<span :class="{'opcity':isopcity == 1}"></span> <span :class="{'opcity':isopcity == 2}"></span> <span :class="{'opcity':isopcity == 3}"></span> <span :class="{'opcity':isopcity == 1}"></span> <span :class="{'opcity':isopcity == 2}"></span> <span :class="{'opcity':isopcity == 3}"></span>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
name: "passwordInput", name: "passwordInput",
props: { props: {
//value //value
value: { value: {
type: String, type: String,
default: '' default: ''
}, },
placeholder: { placeholder: {
type: String, type: String,
default: '' default: ''
}, },
maxlength:{ maxlength:{
type: Number, type: Number,
default: 18 default: 18
}, },
pastips:{ pastips:{
type: Boolean, type: Boolean,
default: false default: false
} }
}, },
data(){ data(){
return{ return{
// propsvalueel-inputpropsvalue // propsvalueel-inputpropsvalue
localValue: this.value, localValue: this.value,
isopcity: 0, isopcity: 0,
type: 'password' type: 'password'
} }
}, },
methods: { methods: {
onInput(e) { onInput(e) {
this.$emit('input', e) this.$emit('input', e)
let $test = /^(?![A-Z]+$)(?![a-z]+$)(?!\d+$)(?![\W_]+$)\S{6,30}$/; let $test = /^(?![A-Z]+$)(?![a-z]+$)(?!\d+$)(?![\W_]+$)\S{6,30}$/;
let $test1 = /^(?:\d+|[a-zA-Z]+|[!@#$%^&*]+){6,12}$/; // let $test1 = /^(?:\d+|[a-zA-Z]+|[!@#$%^&*]+){6,12}$/; //
let $test2 = /^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$/; //+++ let $test2 = /^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$/; //+++
let $test3 = /^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^&*]+$)(?![\d!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$/; //++ let $test3 = /^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^&*]+$)(?![\d!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$/; //++
if(e.length < 1){ this.isopcity = 0; return;} if(e.length < 1){ this.isopcity = 0; return;}
if($test1.test(e)){ if($test1.test(e)){
this.isopcity = 1 this.isopcity = 1
if($test.test(e)){ if($test.test(e)){
if($test2.test(e)){ if($test2.test(e)){
this.isopcity = 2 this.isopcity = 2
if($test3.test(e)){ if($test3.test(e)){
this.isopcity = 3 this.isopcity = 3
} }
} }
} }
}else{// }else{//
this.isopcity = 1 this.isopcity = 1
} }
} }
}, },
} }
</script> </script>
<style> <style>
</style> </style>

160
demo-web-ui/src/components/tab-search/index.vue

@ -1,80 +1,80 @@
<template> <template>
<div class="tab-header"> <div class="tab-header">
<div class="tab-btn clearfix"> <div class="tab-btn clearfix">
<div class="search-from"> <div class="search-from">
<slot name="from"></slot> <slot name="from"></slot>
</div> </div>
<div class="search-bth"> <div class="search-bth">
<slot name="btn"></slot> <slot name="btn"></slot>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
props:{ props:{
search:{ search:{
type: Boolean, type: Boolean,
default: false default: false
} }
}, },
data() { data() {
return { return {
form:{}, form:{},
showsearch: false showsearch: false
} }
}, },
mounted() { mounted() {
}, },
methods: { methods: {
}, },
} }
</script> </script>
<style lang="scss"> <style lang="scss">
@import "~@/styles/variables.scss"; @import "~@/styles/variables.scss";
.tab-header { .tab-header {
background-color: $search-bg; background-color: $search-bg;
padding: 8px 20px; padding: 8px 20px;
margin-bottom: 15px; margin-bottom: 15px;
.tab-search{ .tab-search{
padding: 8px 0px; padding: 8px 0px;
} }
.tab-btn{ .tab-btn{
.search-from{ .search-from{
float: left; float: left;
padding-bottom: 10px; padding-bottom: 10px;
} }
.search-bth{ .search-bth{
float: right; float: right;
} }
} }
.el-form-item{ .el-form-item{
margin-bottom: 0px; margin-bottom: 0px;
.el-input__icon, .el-input__icon,
.el-form-item__content{ .el-form-item__content{
line-height: 32px; line-height: 32px;
} }
.el-input__inner, .el-input__inner,
.el-form-item__label{ .el-form-item__label{
height: 32px; height: 32px;
line-height: 32px; line-height: 32px;
color: $text-color; color: $text-color;
} }
.el-select .el-input.is-focus .el-input__inner{ .el-select .el-input.is-focus .el-input__inner{
border-color: $border-color; border-color: $border-color;
} }
} }
.el-button{ .el-button{
padding: 8px 20px; padding: 8px 20px;
background-color: $color-primary; background-color: $color-primary;
color: $text-color-inverse; color: $text-color-inverse;
} }
.el-select{ .el-select{
width: 150px; width: 150px;
} }
} }
</style> </style>

236
demo-web-ui/src/components/uploadFile/index.vue

@ -1,118 +1,118 @@
<template> <template>
<el-upload class="avatar-uploader" ref="upload" action="fakeaction" <el-upload class="avatar-uploader" ref="upload" action="fakeaction"
:show-file-list="false" :show-file-list="false"
:on-change="uploadchangeFile" :on-change="uploadchangeFile"
:http-request="uploadSectionFile"> :http-request="uploadSectionFile">
<!-- <el-button size="small" type="primary">点击上传</el-button> --> <!-- <el-button size="small" type="primary">点击上传</el-button> -->
<img v-if="Photo" :src="Photo" class="avatar"> <img v-if="Photo" :src="Photo" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i> <i v-else class="el-icon-plus avatar-uploader-icon"></i>
<div slot="tip" class="el-upload__tip">{{tip}}</div> <div slot="tip" class="el-upload__tip">{{tip}}</div>
</el-upload> </el-upload>
</template> </template>
<script> <script>
import { imageUpload } from '@/api/Common/Upload.js' import { imageUpload } from '@/api/Common/Upload.js'
export default { export default {
props:{ props:{
tip:{ tip:{
type: String, type: String,
default: '' default: ''
}, },
FrontPhoto:{ FrontPhoto:{
type: String, type: String,
default: "" default: ""
}, },
}, },
data() { data() {
return { return {
Photo: this.FrontPhoto, Photo: this.FrontPhoto,
loading: null loading: null
}; };
}, },
methods: { methods: {
openFullScreen2() { openFullScreen2() {
this.loading = this.$loading({ this.loading = this.$loading({
lock: true, lock: true,
text: 'Loading', text: 'Loading',
spinner: 'el-icon-loading', spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)' background: 'rgba(0, 0, 0, 0.7)'
}); });
}, },
// FrontPhoto // FrontPhoto
uploadSectionFile(params) { uploadSectionFile(params) {
const file = params.file, const file = params.file,
fileType = file.type, fileType = file.type,
isImage = fileType.indexOf("image") != -1, isImage = fileType.indexOf("image") != -1,
isLt2M = file.size / 1024 / 1024 < 10; isLt2M = file.size / 1024 / 1024 < 10;
this.openFullScreen2() this.openFullScreen2()
console.log(params) console.log(params)
// //
if (!isImage) { if (!isImage) {
this.$message.error("只能上传图片格式png、jpg、gif!"); this.$message.error("只能上传图片格式png、jpg、gif!");
this.loading.close(); this.loading.close();
return; return;
} }
if (!isLt2M) { if (!isLt2M) {
this.$message.error("只能上传图片大小小于10M"); this.$message.error("只能上传图片大小小于10M");
this.loading.close(); this.loading.close();
return; return;
} }
// //
const form = new FormData(); const form = new FormData();
console.log(form) console.log(form)
// //
form.append("file", file); form.append("file", file);
// //
imageUpload(form).then(res => { imageUpload(form).then(res => {
// //
console.log(res) console.log(res)
this.$emit('imgUrl', res.data) this.$emit('imgUrl', res.data)
this.Photo = res.data.fullUrl this.Photo = res.data.fullUrl
if(res.code == 200){ if(res.code == 200){
this.loading.close(); this.loading.close();
this.$message({ this.$message({
message: '上传成功!', message: '上传成功!',
type: 'success' type: 'success'
}); });
} }
}) })
.catch((err) => { .catch((err) => {
console.log(err) console.log(err)
}); });
}, },
uploadchangeFile(file){ uploadchangeFile(file){
// this.Photo = URL.createObjectURL(file.raw) // this.Photo = URL.createObjectURL(file.raw)
} }
} }
} }
</script> </script>
<style> <style>
.avatar-uploader .el-upload { .avatar-uploader .el-upload {
border: 1px dashed #d9d9d9; border: 1px dashed #d9d9d9;
border-radius: 6px; border-radius: 6px;
cursor: pointer; cursor: pointer;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
} }
.avatar-uploader .el-upload:hover { .avatar-uploader .el-upload:hover {
border-color: #409EFF; border-color: #409EFF;
} }
.avatar-uploader-icon { .avatar-uploader-icon {
font-size: 28px; font-size: 28px;
color: #8c939d; color: #8c939d;
width: 200px; width: 200px;
height: 178px; height: 178px;
line-height: 178px; line-height: 178px;
text-align: center; text-align: center;
} }
.avatar { .avatar {
width: 178px; width: 178px;
height: 178px; height: 178px;
display: block; display: block;
} }
</style> </style>

434
demo-web-ui/src/components/uploadFile/upload.vue

@ -1,217 +1,217 @@
<template> <template>
<div> <div>
<el-upload ref="imgUpload" v-loading="loadding" class="avatar-uploader" :headers="accessToken" :action="uploadFile" :accept="accept" list-type="picture-card" :file-list="files" :on-remove="removeImage" :on-preview="handlePictureCardPreview" :on-progress="uploadProgrees" :on-error="uploadError" :on-success="uploadImgSuccess_FuJian"> <el-upload ref="imgUpload" v-loading="loadding" class="avatar-uploader" :headers="accessToken" :action="uploadFile" :accept="accept" list-type="picture-card" :file-list="files" :on-remove="removeImage" :on-preview="handlePictureCardPreview" :on-progress="uploadProgrees" :on-error="uploadError" :on-success="uploadImgSuccess_FuJian">
<i class="el-icon-plus avatar-uploader-icon"/> <i class="el-icon-plus avatar-uploader-icon"/>
</el-upload> </el-upload>
<el-dialog :visible.sync="dialogVisible" title="查看图片"> <el-dialog :visible.sync="dialogVisible" title="查看图片">
<img width="100%" :src="dialogImageUrl" alt=""> <img width="100%" :src="dialogImageUrl" alt="">
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { uploadImgFile } from '@/api/Common/Upload' import { uploadImgFile } from '@/api/Common/Upload'
import { getStorage } from '@/utils/auth.js' import { getStorage } from '@/utils/auth.js'
export default { export default {
model: { model: {
prop: 'name', prop: 'name',
event: 'change' event: 'change'
}, },
props: { props: {
placeholder: { placeholder: {
type: String, type: String,
default: '' default: ''
}, },
bucket: { bucket: {
type: String, type: String,
default: 'abc' default: 'abc'
}, },
// //
width: { width: {
type: String, type: String,
default: '270px' default: '270px'
}, },
accept: { accept: {
type: String, type: String,
default: '.jpg,.jpeg,.png,.JPG,.JPEG,' default: '.jpg,.jpeg,.png,.JPG,.JPEG,'
}, },
// //
name: { name: {
type: Array, type: Array,
required: true required: true
}, },
uploadData: { uploadData: {
type: Object, type: Object,
default: {} default: {}
} }
}, },
data() { data() {
return { return {
dialogImageUrl: '', dialogImageUrl: '',
dialogVisible: false, dialogVisible: false,
accessToken: null, accessToken: null,
uploadFile: uploadImgFile, uploadFile: uploadImgFile,
fileList_FuJian: [], fileList_FuJian: [],
enclosure: '', enclosure: '',
file_add: '', file_add: '',
file_catch: '', file_catch: '',
files: [], files: [],
files_list: [], files_list: [],
filedUrl: '', filedUrl: '',
// fileUrl: fileUrl, // fileUrl: fileUrl,
// showpicture:false, // showpicture:false,
isview: false, isview: false,
nameArr: '', nameArr: '',
loadding: false loadding: false
} }
}, },
watch: { watch: {
name: { name: {
deep: true, deep: true,
immediate: true, immediate: true,
handler(newVal, oldVal) { handler(newVal, oldVal) {
console.log('aaaa1', newVal) console.log('aaaa1', newVal)
this.files = newVal this.files = newVal
console.log('aaaa2', this.files) console.log('aaaa2', this.files)
} }
} }
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
this.Init() this.Init()
}) })
}, },
created() { created() {
this.uploadFile = uploadImgFile // this.uploadFile = uploadImgFile //
this.accessToken = { this.accessToken = {
token: getStorage() token: getStorage()
} }
}, },
methods: { methods: {
showImg(imgList) { showImg(imgList) {
this.files = imgList this.files = imgList
console.log('123123123', this.files) console.log('123123123', this.files)
}, },
view() { view() {
// window.open(this.filedUrl) // window.open(this.filedUrl)
}, },
// //
Init() { Init() {
if (this.name !== undefined) { if (this.name !== undefined) {
this.files = [] this.files = []
for (var i = 0; i < this.name.length; i++) { for (var i = 0; i < this.name.length; i++) {
this.files.push({ this.files.push({
name: this.name[i], name: this.name[i],
url: this.name[i] url: this.name[i]
}) })
} }
} }
}, },
handlePictureCardPreview(file) { handlePictureCardPreview(file) {
this.dialogVisible = true this.dialogVisible = true
this.dialogImageUrl = file.url this.dialogImageUrl = file.url
}, },
// -- // --
uploadImgSuccess_FuJian(response, file, fileList) { uploadImgSuccess_FuJian(response, file, fileList) {
console.log('您选择的file:', file) console.log('您选择的file:', file)
if (file.response.code === '200') { if (file.response.code === '200') {
this.loadding = false this.loadding = false
// //
this.filedUrl = this.fileUrl + file.response.data this.filedUrl = this.fileUrl + file.response.data
// var uid = file.response.data // var uid = file.response.data
this.files.push({ this.files.push({
name: file.response.data.sourceFileName, name: file.response.data.sourceFileName,
url: file.response.data.fullUrl, url: file.response.data.fullUrl,
size: file.response.data.size size: file.response.data.size
}) })
this.$emit('change', this.files) this.$emit('change', this.files)
this.$emit('eett', this.files) this.$emit('eett', this.files)
} }
}, },
removeImage(file, ImageFileList) { removeImage(file, ImageFileList) {
this.files.splice(this.files.indexOf(file), 1) this.files.splice(this.files.indexOf(file), 1)
const imgFiles = [] const imgFiles = []
this.files.forEach((o) => { this.files.forEach((o) => {
imgFiles.push(o.url) imgFiles.push(o.url)
}) })
this.$emit('fileChange', this.files) this.$emit('fileChange', this.files)
}, },
handleRemove(file, fileList) { handleRemove(file, fileList) {
console.log('file:' + JSON.stringify(file)) console.log('file:' + JSON.stringify(file))
console.log('fileList:' + JSON.stringify(fileList)) console.log('fileList:' + JSON.stringify(fileList))
this.enclosure = '' this.enclosure = ''
// 1. id(this.file_add) // 1. id(this.file_add)
this.getNewFileId(fileList) this.getNewFileId(fileList)
// 2. id(this.file_catch) // 2. id(this.file_catch)
this.getCatchFileId(file) this.getCatchFileId(file)
// 3. id // 3. id
this.getFileId() this.getFileId()
// 4. id // 4. id
this.$emit('change', this.enclosure) this.$emit('change', this.enclosure)
}, },
// this.file_add(id) // this.file_add(id)
getNewFileId(fileList) { getNewFileId(fileList) {
// debugger // debugger
this.file_add = '' this.file_add = ''
for (var i = 0; i < fileList.length; i++) { for (var i = 0; i < fileList.length; i++) {
if (fileList[i].response && fileList[i].response.code === '200') { if (fileList[i].response && fileList[i].response.code === '200') {
this.file_add = this.file_add + fileList[i].response.data + ',' this.file_add = this.file_add + fileList[i].response.data + ','
} }
} }
if (this.file_add !== '') { if (this.file_add !== '') {
this.file_add = this.file_add.substring(0, this.file_add.length - 1) this.file_add = this.file_add.substring(0, this.file_add.length - 1)
} }
// console.log('1. this.file_add: ' + this.file_add) // console.log('1. this.file_add: ' + this.file_add)
}, },
// this.file_catchid // this.file_catchid
getCatchFileId(file) { getCatchFileId(file) {
for (var i = 0; i < this.files_list.length; i++) { for (var i = 0; i < this.files_list.length; i++) {
if (this.file_catch !== '') { if (this.file_catch !== '') {
// 1. id // 1. id
if (this.files_list[i].name === file.name) { if (this.files_list[i].name === file.name) {
// 2. file_catchfils_arry // 2. file_catchfils_arry
var fils_arry = this.file_catch.split(',') var fils_arry = this.file_catch.split(',')
// 3. fils_arry this.files_list[i].id // 3. fils_arry this.files_list[i].id
var arry = [] var arry = []
fils_arry.forEach((element) => { fils_arry.forEach((element) => {
// //
if (element !== this.files_list[i].id) { if (element !== this.files_list[i].id) {
arry.push(element) arry.push(element)
} }
}) })
// 4. file_catch // 4. file_catch
this.file_catch = arry.join(',') this.file_catch = arry.join(',')
} }
} }
} }
// console.log('2. this.file_catch:' + this.file_catch) // console.log('2. this.file_catch:' + this.file_catch)
}, },
// id // id
getFileId() { getFileId() {
// console.log('3. this.file_catch:' + this.file_catch + ',this.file_add:' + this.file_add) // console.log('3. this.file_catch:' + this.file_catch + ',this.file_add:' + this.file_add)
if (this.file_catch !== '') { if (this.file_catch !== '') {
if (this.file_add !== '') { if (this.file_add !== '') {
this.enclosure = this.file_catch + ',' + this.file_add this.enclosure = this.file_catch + ',' + this.file_add
} else { } else {
this.enclosure = this.file_catch this.enclosure = this.file_catch
} }
} else { } else {
this.enclosure = this.file_add this.enclosure = this.file_add
} }
}, },
// //
uploadError() { uploadError() {
this.loadding = false this.loadding = false
}, },
uploadProgrees(event, file, fileList) { uploadProgrees(event, file, fileList) {
if (Number(event.percent) > 0) { if (Number(event.percent) > 0) {
this.loadding = true this.loadding = true
} }
} }
} }
} }
</script> </script>
<style scoped></style> <style scoped></style>

110
demo-web-ui/src/components/uploadFile/upload_apk.vue

@ -1,55 +1,55 @@
<template> <template>
<el-upload <el-upload
class="upload-demo" class="upload-demo"
ref="upload" ref="upload"
:action="uploadFile" :action="uploadFile"
:on-preview="handlePreview" :on-preview="handlePreview"
:on-remove="handleRemove" :on-remove="handleRemove"
:on-success="handleSuccess" :on-success="handleSuccess"
:file-list="fileList" :file-list="fileList"
:limit="1" :limit="1"
name="multipartFile" name="multipartFile"
:data="fileInfo" :data="fileInfo"
:auto-upload="false"> :auto-upload="false">
<el-button slot="trigger" size="small" type="primary">选取文件</el-button> <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
</el-upload> </el-upload>
</template> </template>
<script> <script>
import { uploadFile } from '@/api/Common/Upload' import { uploadFile } from '@/api/Common/Upload'
export default { export default {
props: { props: {
fileInfo: { fileInfo: {
type: Object, type: Object,
default: {} default: {}
} }
}, },
data() { data() {
return { return {
fileList: [], fileList: [],
uploadFile: uploadFile uploadFile: uploadFile
} }
}, },
created() { created() {
this.fileList = [] this.fileList = []
this.uploadFile = uploadFile this.uploadFile = uploadFile
}, },
methods: { methods: {
handleSuccess(event, file, fileList) { handleSuccess(event, file, fileList) {
console.log(file) console.log(file)
this.$emit('change', file) this.$emit('change', file)
}, },
handleRemove(file, fileList) { handleRemove(file, fileList) {
console.log(file, fileList) console.log(file, fileList)
}, },
handlePreview(file) { handlePreview(file) {
console.log(file) console.log(file)
}, },
submitUpload() { submitUpload() {
console.log(this.fileInfo) console.log(this.fileInfo)
this.$refs.upload.submit() this.$refs.upload.submit()
} }
} }
} }
</script> </script>

108
demo-web-ui/src/components/uploadFile/upload_frameApk.vue

@ -1,54 +1,54 @@
<template> <template>
<el-upload <el-upload
class="upload-demo" class="upload-demo"
ref="upload" ref="upload"
:action="uploadFile" :action="uploadFile"
:on-preview="handlePreview" :on-preview="handlePreview"
:on-remove="handleRemove" :on-remove="handleRemove"
:on-success="handleSuccess" :on-success="handleSuccess"
:file-list="fileList" :file-list="fileList"
:limit="1" :limit="1"
name="file" name="file"
:data="fileInfo" :data="fileInfo"
:auto-upload="false"> :auto-upload="false">
<el-button slot="trigger" size="small" type="primary">选取文件</el-button> <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
</el-upload> </el-upload>
</template> </template>
<script> <script>
import { upload_frameFile } from '@/api/Common/Upload' import { upload_frameFile } from '@/api/Common/Upload'
export default { export default {
props: { props: {
fileInfo: { fileInfo: {
type: Object type: Object
} }
}, },
data() { data() {
return { return {
fileList: [], fileList: [],
uploadFile: upload_frameFile uploadFile: upload_frameFile
} }
}, },
created() { created() {
this.fileList = [] this.fileList = []
this.uploadFile = upload_frameFile this.uploadFile = upload_frameFile
}, },
methods: { methods: {
handleSuccess(event, file, fileList) { handleSuccess(event, file, fileList) {
console.log(file) console.log(file)
this.$emit('change', file) this.$emit('change', file)
}, },
handleRemove(file, fileList) { handleRemove(file, fileList) {
console.log(file, fileList) console.log(file, fileList)
}, },
handlePreview(file) { handlePreview(file) {
console.log(file) console.log(file)
}, },
submitUpload() { submitUpload() {
console.log(this.fileInfo) console.log(this.fileInfo)
this.$refs.upload.submit() this.$refs.upload.submit()
} }
} }
} }
</script> </script>

288
demo-web-ui/src/components/uploadFile/upload_icon.vue

@ -1,144 +1,144 @@
<template> <template>
<div><!----> <div><!---->
<el-upload class="avatar-uploader" :headers="accessToken" :action="uploadFile" :accept="accept" :data="uploadData" :on-success="uploadImgSuccess_FuJian" :on-remove="handleRemove" :limit="1" :file-list="files" list-type="picture-card" :on-preview="handlePictureCardPreview"> <el-upload class="avatar-uploader" :headers="accessToken" :action="uploadFile" :accept="accept" :data="uploadData" :on-success="uploadImgSuccess_FuJian" :on-remove="handleRemove" :limit="1" :file-list="files" list-type="picture-card" :on-preview="handlePictureCardPreview">
<i class="el-icon-plus avatar-uploader-icon"/> <i class="el-icon-plus avatar-uploader-icon"/>
</el-upload> </el-upload>
<el-dialog :visible.sync="dialogVisible" :append-to-body="true" title="查看图片"> <el-dialog :visible.sync="dialogVisible" :append-to-body="true" title="查看图片">
<img width="100%" :src="dialogImageUrl" alt=""> <img width="100%" :src="dialogImageUrl" alt="">
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { uploadFileIcon } from '@/api/Common/Upload' import { uploadFileIcon } from '@/api/Common/Upload'
import { getStorage } from '@/utils/auth.js' // token import { getStorage } from '@/utils/auth.js' // token
export default { export default {
model: { model: {
prop: 'name', prop: 'name',
event: 'change' event: 'change'
}, },
props: { props: {
placeholder: { placeholder: {
type: String, type: String,
default: '' default: ''
}, },
bucket: { bucket: {
type: String, type: String,
default: 'abc' default: 'abc'
}, },
// //
width: { width: {
type: String, type: String,
default: '270px' default: '270px'
}, },
limit: { limit: {
type: Number, type: Number,
default: 1 default: 1
}, },
accept: { accept: {
type: String, type: String,
default: default:
'.jpg,.jpeg,.png,.JPG,.JPEG,' '.jpg,.jpeg,.png,.JPG,.JPEG,'
}, },
// //
name: { name: {
type: Array, type: Array,
required: true required: true
}, },
uploadData: { uploadData: {
type: Object, type: Object,
default: {} default: {}
} }
}, },
data() { data() {
return { return {
dialogImageUrl: '', dialogImageUrl: '',
dialogVisible: false, dialogVisible: false,
accessToken: null, accessToken: null,
uploadFile: uploadFileIcon, uploadFile: uploadFileIcon,
fileList_FuJian: [], fileList_FuJian: [],
enclosure: '', enclosure: '',
file_add: '', file_add: '',
file_catch: '', file_catch: '',
files: [], files: [],
files_list: [], files_list: [],
filedUrl: '', filedUrl: '',
// fileUrl: fileUrl, // fileUrl: fileUrl,
// showpicture:false, // showpicture:false,
isview: false, isview: false,
nameArr: '', nameArr: '',
loadding: false, loadding: false,
stateName: '', stateName: '',
/* uploadData: { modelSid: '' },*/ /* uploadData: { modelSid: '' },*/
sid: '' sid: ''
} }
}, },
watch: { watch: {
name: { name: {
deep: true, deep: true,
immediate: true, immediate: true,
handler(newVal, oldVal) { handler(newVal, oldVal) {
console.log('aaaa1', newVal) console.log('aaaa1', newVal)
this.files = newVal this.files = newVal
console.log('aaaa2', this.files) console.log('aaaa2', this.files)
} }
} }
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
this.Init() this.Init()
}) })
}, },
created() { created() {
this.uploadFile = uploadFileIcon // this.uploadFile = uploadFileIcon //
this.accessToken = { this.accessToken = {
token: getStorage() token: getStorage()
} }
}, },
methods: { methods: {
// //
Init() { Init() {
if (this.name !== undefined) { if (this.name !== undefined) {
this.files = [] this.files = []
for (var i = 0; i < this.name.length; i++) { for (var i = 0; i < this.name.length; i++) {
this.files.push({ this.files.push({
name: this.name[i], name: this.name[i],
url: this.name[i] url: this.name[i]
}) })
} }
} }
}, },
// -- // --
uploadImgSuccess_FuJian(response, file, fileList) { uploadImgSuccess_FuJian(response, file, fileList) {
let _this = this let _this = this
console.log('您选择的file:', file) console.log('您选择的file:', file)
// console.log('data:', _this.uploadData) // console.log('data:', _this.uploadData)
if (file.response.code === '200') { if (file.response.code === '200') {
this.loadding = false this.loadding = false
// //
this.filedUrl = this.fileUrl + file.response.data this.filedUrl = this.fileUrl + file.response.data
// var uid = file.response.data // var uid = file.response.data
const files = [] const files = []
files.push({ files.push({
name: file.response.data.sourceFileName, name: file.response.data.sourceFileName,
url: file.response.data.fullUrl, url: file.response.data.fullUrl,
size: file.response.data.size size: file.response.data.size
}) })
this.$emit('change', files) this.$emit('change', files)
} }
}, },
handleRemove(file, fileList) { handleRemove(file, fileList) {
console.log('file:' + JSON.stringify(file)) console.log('file:' + JSON.stringify(file))
console.log('fileList:' + JSON.stringify(fileList)) console.log('fileList:' + JSON.stringify(fileList))
}, },
handlePictureCardPreview(file) { handlePictureCardPreview(file) {
this.dialogVisible = true this.dialogVisible = true
this.dialogImageUrl = file.url this.dialogImageUrl = file.url
} }
} }
} }
</script> </script>
<style scoped> <style scoped>
</style> </style>

108
demo-web-ui/src/components/uploadFile/upload_updateApk.vue

@ -1,54 +1,54 @@
<template> <template>
<el-upload <el-upload
class="upload-demo" class="upload-demo"
ref="upload" ref="upload"
:action="uploadFile" :action="uploadFile"
:on-preview="handlePreview" :on-preview="handlePreview"
:on-remove="handleRemove" :on-remove="handleRemove"
:on-success="handleSuccess" :on-success="handleSuccess"
:file-list="fileList" :file-list="fileList"
:limit="1" :limit="1"
name="multipartFile" name="multipartFile"
:data="fileInfo" :data="fileInfo"
:auto-upload="false"> :auto-upload="false">
<el-button slot="trigger" size="small" type="primary">选取文件</el-button> <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
</el-upload> </el-upload>
</template> </template>
<script> <script>
import { upload_UpdateFile } from '@/api/Common/Upload' import { upload_UpdateFile } from '@/api/Common/Upload'
export default { export default {
props: { props: {
fileInfo: { fileInfo: {
type: Object type: Object
} }
}, },
data() { data() {
return { return {
fileList: [], fileList: [],
uploadFile: upload_UpdateFile uploadFile: upload_UpdateFile
} }
}, },
created() { created() {
this.fileList = [] this.fileList = []
this.uploadFile = upload_UpdateFile this.uploadFile = upload_UpdateFile
}, },
methods: { methods: {
handleSuccess(event, file, fileList) { handleSuccess(event, file, fileList) {
console.log(file) console.log(file)
this.$emit('change', file) this.$emit('change', file)
}, },
handleRemove(file, fileList) { handleRemove(file, fileList) {
console.log(file, fileList) console.log(file, fileList)
}, },
handlePreview(file) { handlePreview(file) {
console.log(file) console.log(file)
}, },
submitUpload() { submitUpload() {
console.log(this.fileInfo) console.log(this.fileInfo)
this.$refs.upload.submit() this.$refs.upload.submit()
} }
} }
} }
</script> </script>

208
demo-web-ui/src/components/uploadFileimg/index.vue

@ -1,104 +1,104 @@
<template> <template>
<el-upload class="avatar-uploader" ref="upload" action="fakeaction" <el-upload class="avatar-uploader" ref="upload" action="fakeaction"
:show-file-list="false" :show-file-list="false"
:on-change="uploadchangeFile" :on-change="uploadchangeFile"
:http-request="uploadSectionFile"> :http-request="uploadSectionFile">
<img v-if="FrontPhoto" :src="FrontPhoto" class="avatar"> <img v-if="FrontPhoto" :src="FrontPhoto" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i> <i v-else class="el-icon-plus avatar-uploader-icon"></i>
<div slot="tip" class="el-upload__tip">{{tip}}</div> <div slot="tip" class="el-upload__tip">{{tip}}</div>
</el-upload> </el-upload>
</template> </template>
<script> <script>
import { imageUpload } from '@/api/Upload.js' import { imageUpload } from '@/api/Upload.js'
export default { export default {
props:{ props:{
tip:{ tip:{
type: String, type: String,
default: '' default: ''
} }
}, },
data() { data() {
return { return {
FrontPhoto: '', FrontPhoto: '',
}; };
}, },
methods: { methods: {
// FrontPhoto // FrontPhoto
uploadSectionFile(params) { uploadSectionFile(params) {
const file = params.file, const file = params.file,
fileType = file.type, fileType = file.type,
isImage = fileType.indexOf("image") != -1, isImage = fileType.indexOf("image") != -1,
isLt2M = file.size / 1024 / 1024 < 2; isLt2M = file.size / 1024 / 1024 < 2;
console.log(params) console.log(params)
// //
if (!isImage) { if (!isImage) {
this.$message.error("只能上传图片格式png、jpg、gif!"); this.$message.error("只能上传图片格式png、jpg、gif!");
return; return;
} }
if (!isLt2M) { if (!isLt2M) {
this.$message.error("只能上传图片大小小于2M"); this.$message.error("只能上传图片大小小于2M");
return; return;
} }
// //
const form = new FormData(); const form = new FormData();
console.log(form) console.log(form)
// //
form.append("file", file); form.append("file", file);
// //
imageUpload(form).then(res => { imageUpload(form).then(res => {
// //
console.log(res) console.log(res)
this.$emit('imgUrl',res.filePath) this.$emit('imgUrl',res.filePath)
// this.FrontPhoto = res.fullUrl // this.FrontPhoto = res.fullUrl
if(res.msg == '操作成功'){ if(res.msg == '操作成功'){
this.$message({ this.$message({
message: '上传成功!', message: '上传成功!',
type: 'success' type: 'success'
}); });
} }
}) })
.catch((err) => { .catch((err) => {
console.log(err) console.log(err)
}); });
}, },
uploadchangeFile(file){ uploadchangeFile(file){
this.FrontPhoto = URL.createObjectURL(file.raw) this.FrontPhoto = URL.createObjectURL(file.raw)
} }
} }
} }
</script> </script>
<style> <style>
.avatar-uploader .el-upload { .avatar-uploader .el-upload {
border: 1px dashed #d9d9d9; border: 1px dashed #d9d9d9;
border-radius: 6px; border-radius: 6px;
cursor: pointer; cursor: pointer;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
} }
.avatar-uploader .el-upload:hover { .avatar-uploader .el-upload:hover {
border-color: #409EFF; border-color: #409EFF;
} }
.avatar-uploader-icon { .avatar-uploader-icon {
font-size: 28px; font-size: 28px;
color: #8c939d; color: #8c939d;
width: 200px; width: 200px;
height: 178px; height: 178px;
line-height: 178px; line-height: 178px;
text-align: center; text-align: center;
} }
.avatar { .avatar {
width: 178px; width: 178px;
height: 178px; height: 178px;
display: block; display: block;
} }
.el-upload__tip{ .el-upload__tip{
line-height: 25px; line-height: 25px;
margin-top: 0; margin-top: 0;
} }
</style> </style>

110
demo-web-ui/src/components/viewerjs/index.vue

@ -1,55 +1,55 @@
<template> <template>
<div id="index"> <div id="index">
<ul> <ul>
<li v-for="(item,index) of imgArr"><img :src="item" alt="图片描述"></li> <li v-for="(item,index) of imgArr"><img :src="item" alt="图片描述"></li>
</ul> </ul>
</div> </div>
</template> </template>
<script> <script>
import Viewer from 'viewerjs'; import Viewer from 'viewerjs';
import 'viewerjs/dist/viewer.css'; import 'viewerjs/dist/viewer.css';
export default { export default {
name: 'HelloWorld', name: 'HelloWorld',
data() { data() {
return { return {
imgArr:[ imgArr:[
'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2181711937,4147085500&fm=26&gp=0.jpg', 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2181711937,4147085500&fm=26&gp=0.jpg',
'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1403641414,3238219543&fm=26&gp=0.jpg', 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1403641414,3238219543&fm=26&gp=0.jpg',
] ]
} }
}, },
mounted(){ mounted(){
const ViewerDom = document.getElementById('index'); const ViewerDom = document.getElementById('index');
const viewer = new Viewer(ViewerDom, { const viewer = new Viewer(ViewerDom, {
// , // ,
}); });
} }
} }
</script> </script>
<style> <style>
*{ *{
padding:0; padding:0;
margin: 0; margin: 0;
} }
/* ul { /* ul {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
} }
ul li{ ul li{
width:265px; width:265px;
height: 180px; height: 180px;
list-style: none; list-style: none;
border:2px solid #CCC; border:2px solid #CCC;
border-radius: 3px; border-radius: 3px;
padding: 1px; padding: 1px;
margin: 10px; margin: 10px;
cursor: pointer; cursor: pointer;
} */ } */
ul li img{ ul li img{
width:100px; width:100px;
height: 100px; height: 100px;
} }
</style> </style>

18
demo-web-ui/src/icons/index.js

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

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

Loading…
Cancel
Save