初次提交

This commit is contained in:
2025-06-30 10:17:15 +08:00
commit 5446088524
989 changed files with 365987 additions and 0 deletions

14
.editorconfig Normal file
View File

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

9
.env.app Normal file
View File

@ -0,0 +1,9 @@
NODE_ENV = production
# just a flag
ENV = 'app'
# base api //http://192.168.1.181:8000/api 192.168.1.199:8000/api // http://124.71.192.230:8000/api // http://127.0.0.1:4523/m1/1450402-0-default
VUE_APP_BASE_API = 'https://hoenergy.woaitw.com/api'
VUE_APP_VISUALE_API = https://hoenergy.woaitw.com
#VUE_APP_BASE_API = 'https://albtest.woaitw.com/api'
#VUE_APP_VISUALE_API = https://albtest.woaitw.com

15
.env.development Normal file
View File

@ -0,0 +1,15 @@
# just a flag
ENV = 'development'
# base api //http://192.168.1.181:8000/api 192.168.1.199:8000/api // http://124.71.192.230:8000/api // http://127.0.0.1:4523/m1/1450402-0-default
VUE_APP_BASE_API = 'http://121.237.176.143:9091/api'
VUE_APP_VISUALE_API = http://192.168.0.82:9527
VUE_APP_ZUTAI_API = http://192.168.100.83:8001
VUE_APP_CHUNENG_URL = http://123.60.190.77
VUE_APP_GUANGFU_URL = http://123.60.162.194:9090/index?istrue=f
VUE_APP_JIACHU_URL = http://192.168.0.147:9530
VUE_APP_SZLS_URL = http://localhost:801/digitaltwin.mp4

5
.env.exploit Normal file
View File

@ -0,0 +1,5 @@
# just a flag
ENV = 'development'
# base api //http://192.168.1.181:8000/api 192.168.1.199:8000/api // http://124.71.192.230:8000/api // http://127.0.0.1:4523/m1/1450402-0-default
VUE_APP_BASE_API = 'http://192.168.1.181:8000/api'

7
.env.jingkeprod Normal file
View File

@ -0,0 +1,7 @@
NODE_ENV = production
# just a flag
ENV = 'jingkeprod'
# base api //http://192.168.1.181:8000/api 192.168.1.199:8000/api // http://124.71.192.230:8000/api // http://127.0.0.1:4523/m1/1450402-0-default
VUE_APP_BASE_API = 'http://106.15.53.66:8000/api'
VUE_APP_VISUALE_API = http://106.15.53.66

13
.env.open Normal file
View File

@ -0,0 +1,13 @@
NODE_ENV = production
# just a flag
ENV = 'open'
# base api //http://192.168.1.181:8000/api 192.168.1.199:8000/api // http://124.71.192.230:8000/api // http://127.0.0.1:4523/m1/1450402-0-default
VUE_APP_BASE_API = 'https://ecloud.hoenergypower.cn/api'
VUE_APP_VISUALE_API = https://ecloud.hoenergypower.cn
VUE_APP_CHUNENG_URL = https://ecloud.hoenergypower.cn
VUE_APP_GUANGFU_URL = http://123.60.162.194:9090/index?istrue=f
VUE_APP_JIACHU_URL = http://192.168.100.252:8095
VUE_APP_SZLS_URL = http://localhost:801/digitaltwin.mp4
VUE_APP_ZUTAI_API = https://ecloud.hoenergypower.cn:8090

8
.env.opendev Normal file
View File

@ -0,0 +1,8 @@
NODE_ENV = production
# just a flag
ENV = 'opendev'
# base api //http://192.168.1.181:8000/api 192.168.1.199:8000/api // http://124.71.192.230:8000/api // http://127.0.0.1:4523/m1/1450402-0-default
VUE_APP_BASE_API = 'http://192.168.100.237:8000/api'
VUE_APP_VISUALE_API = http://192.168.100.237:9091
VUE_APP_ZUTAI_API = http://192.168.100.244:9090

8
.env.opentest Normal file
View File

@ -0,0 +1,8 @@
NODE_ENV = production
# just a flag
ENV = 'opentest'
# base api //http://192.168.1.181:8000/api 192.168.1.199:8000/api // http://124.71.192.230:8000/api // http://127.0.0.1:4523/m1/1450402-0-default
VUE_APP_BASE_API = 'https://zzkj-cloud.com/api'
VUE_APP_VISUALE_API = https://zzkj-cloud.com
VUE_APP_ZUTAI_API = https://zzkj-cloud.com:9090

6
.env.production Normal file
View File

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

8
.env.staging Normal file
View File

@ -0,0 +1,8 @@
NODE_ENV = production
# just a flag
ENV = 'staging'
# base api
VUE_APP_BASE_API = 'http://124.71.192.230:8000/api'

7
.env.stationtest Normal file
View File

@ -0,0 +1,7 @@
NODE_ENV = production
# just a flag
ENV = 'stationtest'
# base api //http://192.168.1.181:8000/api 192.168.1.199:8000/api // http://124.71.192.230:8000/api // http://127.0.0.1:4523/m1/1450402-0-default
VUE_APP_BASE_API = 'http://47.122.16.39/api'
VUE_APP_VISUALE_API = http://47.122.16.39

5
.env.tonghe Normal file
View File

@ -0,0 +1,5 @@
# just a flag
ENV = 'development'
# base api //http://192.168.1.181:8000/api 192.168.1.199:8000/api // http://124.71.192.230:8000/api // http://127.0.0.1:4523/m1/1450402-0-default
VUE_APP_BASE_API = 'http://123.60.162.194:8000/api'

8
.env.xingneng Normal file
View File

@ -0,0 +1,8 @@
NODE_ENV = production
# just a flag
ENV = 'xingneng'
# base api //http://192.168.1.181:8000/api 192.168.1.199:8000/api // http://124.71.192.230:8000/api // http://127.0.0.1:4523/m1/1450402-0-default
VUE_APP_BASE_API = 'http://192.168.100.237:8000/api'
VUE_APP_VISUALE_API = http://192.168.100.237:9091
VUE_APP_ZUTAI_API = http://192.168.100.244:9090

4
.eslintignore Normal file
View File

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

201
.eslintrc.js Normal file
View File

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

23
.gitignore vendored Normal file
View File

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

5
.travis.yml Normal file
View File

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

21
LICENSE Normal file
View File

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

128
README.es.md Normal file
View File

@ -0,0 +1,128 @@
Español | [English](./README.md) | [简体中文](./README.zh-CN.md) | [日本語](./README.ja.md)
## Características
```
- Iniciar / Cerrar Sesión
- Permisos de Autenticación
- Página de Permisos
- Directivas de permisos
- Página de configuración de permisos
- Autenticación por dos pasos
- Construcción Multi-entorno
- Desarrollo (dev)
- sit
- Escenario de pruebas (stage),
- Producción (prod)
- Características Globales
- I18n
- Temas dinámicos
- Menu lateral dinámico (soporte a rutas multi-nivel)
- Barra de rutas dinámica
- Tags-view (Pestañas de página, Soporta operación de clic derecho)
- Svg Sprite
- Datos de simulación con Mock
- Pantalla completa
- Menu lateral responsivo
- Editor
- Editor de Texto Enriquecido
- Editor Markdown
- Editor JSON
- Excel
- Exportación a Excel
- Carga de Excel
- Visualización de Excel
- Exportación como ZIP
- Tabla
- Tabla Dinámica
- Tabla con Arrastrar y Soltar
- Tabla de edición en línea
- Páginas de Error
- 401
- 404
- Componentes
- Carga de Avatar
- Botón para subir al inicio
- Arrastrar y Soltar (Diaglogo)
- Arrastrar y Soltar (Seleccionar)
- Arrastrar y Soltar (Kanban)
- Arrastrar y Soltar (Lista)
- Panel de división
- Componente para soltar archivos
- Adhesión de objetos
- Contador hasta
- Ejemplo Avanzado
- Registro de Errores
- Tablero de indicadores
- Página de Guías
- ECharts (Gráficos)
- Portapapeles
- Convertidor de Markdown a HTML
```
## Iniciando
```bash
# clone el proyecto
git clone https://github.com/PanJiaChen/vue-element-admin.git
# vaya al directorio clonado
cd vue-element-admin
# instale las dependencias
npm install
# corra el proyecto como desarrollador
npm run dev
```
Automáticamente se abrirá el siguiente enlace en su navegador http://localhost:9527
## Construcción
```bash
# Construcción para entornos de prueba
npm run build:stage
# Construcción para entornos de producción
npm run build:prod
```
## Avanzado
```bash
# Vista previa con efectos de entorno
npm run preview
# Vista previa con efectos + análisis de recursos estáticos
npm run preview -- --report
# Chequeo de formato de código
npm run lint
# Chequeo de formato de código y auto-corrección
npm run lint -- --fix
```
## Navegadores Soportados
Navegadores modernos e 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" />](https://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" />](https://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" />](https://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" />](https://godban.github.io/browsers-support-badges/)</br>Safari |
| --------- | --------- | --------- | --------- |
| IE10, IE11, Edge | últimas 2 versiones | últimas 2 versiones | últimas 2 versiones |
## Licencia
Copyright (c) 2017-presente PanJiaChen

128
README.ja.md Normal file
View File

@ -0,0 +1,128 @@
日本語 | [English](./README.md) | [简体中文](./README.zh-CN.md) | [Spanish](./README.es.md)
## 機能一覧
```
- ログイン / ログアウト
- Auth認証
- ページ権限
- 権限パーミッション
- 権限設定
- 外部IDでログイン
- 複数環境デプロイ
- dev
- sit
- stage
- prod
- 共通機能
- 多言語切替
- テーマ切替
- サイトメニュー(ルートから生成)
- パンくずリストナビゲーション
- タブナビゲーション
- Svg Sprite アイコン
- ローカル/バックエンド モック データ
- Screenfull
- WYSIWYG
- TinyMCE
- Markdown
- JSON
- Excel
- エクスポート
- インポート
- リード
- Zip
- テーブル
- ダイナミックテーブル
- ドラッグアンドドロップテーブル
- インラインエディットテーブル
- エラーページ
- 401
- 404
- コンポーネント
- アバターアップロード
- トップに戻る
- ドラッグダイアログ
- ドラッグ選択
- ドラッグKanban
- ドラッグリスト
- ペインの分割
- Dropzone
- スティッキー
- CountTo
- 高度なサンプル
- エラーログ
- ダッシュボード
- ガイドページ
- ECharts
- クリップボード
- Markdown to html
```
## Getting started
```bash
# clone the project
git clone -b i18n git@github.com:PanJiaChen/vue-element-admin.git
# enter the project directory
cd vue-element-admin
# install dependency
npm install
# develop
npm run dev
```
http://localhost:9527 が自動的に開きます。
## Build
```bash
# build for test environment
npm run build:stage
# build for production environment
npm run build:prod
```
## Advanced
```bash
# preview the release environment effect
npm run preview
# preview the release environment effect + static resource analysis
npm run preview -- --report
# code format check
npm run lint
# code format check and auto fix
npm run lint -- --fix
```
## Browsers support
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" />](https://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" />](https://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" />](https://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" />](https://godban.github.io/browsers-support-badges/)</br>Safari |
| --------- | --------- | --------- | --------- |
| IE10, IE11, Edge | last 2 versions | last 2 versions | last 2 versions |
## License
Copyright (c) 2022-present Hoenergy

131
README.md Normal file
View File

@ -0,0 +1,131 @@
English | [简体中文](./README.zh-CN.md) | [日本語](./README.ja.md) | [Spanish](./README.es.md)
## Features
```
- Login / Logout
- Permission Authentication
- Page permission
- Directive permission
- Permission configuration page
- Two-step login
- Multi-environment build
- Develop (dev)
- sit
- Stage Test (stage)
- Production (prod)
- Global Features
- I18n
- Multiple dynamic themes
- Dynamic sidebar (supports multi-level routing)
- Dynamic breadcrumb
- Tags-view (Tab page Support right-click operation)
- Svg Sprite
- Mock data
- Screenfull
- Responsive Sidebar
- Editor
- Rich Text Editor
- Markdown Editor
- JSON Editor
- Excel
- Export Excel
- Upload Excel
- Visualization Excel
- Export zip
- Table
- Dynamic Table
- Drag And Drop Table
- Inline Edit Table
- Error Page
- 401
- 404
- Components
- Avatar Upload
- Back To Top
- Drag Dialog
- Drag Select
- Drag Kanban
- Drag List
- SplitPane
- Dropzone
- Sticky
- CountTo
- Advanced Example
- Error Log
- Dashboard
- Guide Page
- ECharts
- Clipboard
- Markdown to html
```
## Getting started
```bash
# clone the project
git clone -b i18n git@github.com:PanJiaChen/vue-element-admin.git
# enter the project directory
cd vue-element-admin
# install dependency
npm install
# develop
npm run dev
```
This will automatically open http://localhost:9527
## Build
```bash
# build for test environment
npm run build:stage
# build for production environment
npm run build:prod
```
## Advanced
```bash
# preview the release environment effect
npm run preview
# preview the release environment effect + static resource analysis
npm run preview -- --report
# code format check
npm run lint
# code format check and auto fix
npm run lint -- --fix
```
## Changelog
## Browsers support
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" />](https://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" />](https://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" />](https://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" />](https://godban.github.io/browsers-support-badges/)</br>Safari |
| --------- | --------- | --------- | --------- |
| IE10, IE11, Edge | last 2 versions | last 2 versions | last 2 versions |
## License
Copyright (c) 2022-present Hoenergy

131
README.zh-CN.md Normal file
View File

@ -0,0 +1,131 @@
简体中文 | [English](./README.md) | [日本語](./README.ja.md) | [Spanish](./README.es.md)
## 简介
## 功能
```
- 登录 / 注销
- 权限验证
- 页面权限
- 指令权限
- 权限配置
- 二步登录
- 多环境发布
- dev
- sit
- stage
- prod
- 全局功能
- 国际化多语言
- 多种动态换肤
- 动态侧边栏(支持多级路由嵌套)
- 动态面包屑
- 快捷导航(标签页)
- Svg Sprite 图标
- 本地/后端 mock 数据
- Screenfull全屏
- 自适应收缩侧边栏
- 编辑器
- 富文本
- Markdown
- JSON 等多格式
- Excel
- 导出excel
- 导入excel
- 前端可视化excel
- 导出zip
- 表格
- 动态表格
- 拖拽表格
- 内联编辑
- 错误页面
- 401
- 404
- 組件
- 头像上传
- 返回顶部
- 拖拽Dialog
- 拖拽Select
- 拖拽看板
- 列表拖拽
- SplitPane
- Dropzone
- Sticky
- CountTo
- 综合实例
- 错误日志
- Dashboard
- 引导页
- ECharts 图表
- Clipboard(剪贴复制)
- Markdown2html
```
## 开发
```bash
# 进入项目目录
cd hoenergy-pc
# 安装依赖
npm install
# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npm.taobao.org
# 启动服务
npm run dev
```
浏览器访问 http://localhost:9527
## 发布
```bash
# 构建测试环境
npm run build:stage
# 构建生产环境
npm run build:prod
```
## 其它
```bash
# 预览发布环境效果
npm run preview
# 预览发布环境效果 + 静态资源分析
npm run preview -- --report
# 代码格式检查
npm run lint
# 代码格式检查并自动修复
npm run lint -- --fix
```
## Browsers support
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" />](https://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" />](https://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" />](https://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" />](https://godban.github.io/browsers-support-badges/)</br>Safari |
| --------- | --------- | --------- | --------- |
| IE10, IE11, Edge | last 2 versions | last 2 versions | last 2 versions |
## License
Copyright (c) 2022-present Hoenergy

14
babel.config.js Normal file
View File

@ -0,0 +1,14 @@
module.exports = {
presets: [
// https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
'@vue/cli-plugin-babel/preset'
],
'env': {
'development': {
// 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.
// https://panjiachen.github.io/vue-element-admin-site/guide/advanced/lazy-loading.html
'plugins': ['dynamic-import-node']
}
}
}

35
build/index.js Normal file
View File

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

24
jest.config.js Normal file
View File

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

9
jsconfig.json Normal file
View File

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

116
mock/article.js Normal file
View File

@ -0,0 +1,116 @@
const Mock = require('mockjs')
const List = []
const count = 100
const baseContent = '<p>I am testing data, I am testing data.</p><p><img src="https://wpimg.wallstcn.com/4c69009c-0fd4-4153-b112-6cb53d1cf943"></p>'
const image_uri = 'https://wpimg.wallstcn.com/e4558086-631c-425c-9430-56ffb46e70b3'
for (let i = 0; i < count; i++) {
List.push(Mock.mock({
id: '@increment',
timestamp: +Mock.Random.date('T'),
author: '@first',
reviewer: '@first',
title: '@title(5, 10)',
content_short: 'mock data',
content: baseContent,
forecast: '@float(0, 100, 2, 2)',
importance: '@integer(1, 3)',
'type|1': ['CN', 'US', 'JP', 'EU'],
'status|1': ['published', 'draft'],
display_time: '@datetime',
comment_disabled: true,
pageviews: '@integer(300, 5000)',
image_uri,
platforms: ['a-platform']
}))
}
module.exports = [
{
url: '/vue-element-admin/article/list',
type: 'get',
response: config => {
const { importance, type, title, page = 1, limit = 20, sort } = config.query
let mockList = List.filter(item => {
if (importance && item.importance !== +importance) return false
if (type && item.type !== type) return false
if (title && item.title.indexOf(title) < 0) return false
return true
})
if (sort === '-id') {
mockList = mockList.reverse()
}
const pageList = mockList.filter((item, index) => index < limit * page && index >= limit * (page - 1))
return {
code: 20000,
data: {
total: mockList.length,
items: pageList
}
}
}
},
{
url: '/vue-element-admin/article/detail',
type: 'get',
response: config => {
const { id } = config.query
for (const article of List) {
if (article.id === +id) {
return {
code: 20000,
data: article
}
}
}
}
},
{
url: '/vue-element-admin/article/pv',
type: 'get',
response: _ => {
return {
code: 20000,
data: {
pvData: [
{ key: 'PC', pv: 1024 },
{ key: 'mobile', pv: 1024 },
{ key: 'ios', pv: 1024 },
{ key: 'android', pv: 1024 }
]
}
}
}
},
{
url: '/vue-element-admin/article/create',
type: 'post',
response: _ => {
return {
code: 20000,
data: 'success'
}
}
},
{
url: '/vue-element-admin/article/update',
type: 'post',
response: _ => {
return {
code: 20000,
data: 'success'
}
}
}
]

60
mock/index.js Normal file
View File

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

81
mock/mock-server.js Normal file
View File

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

51
mock/remote-search.js Normal file
View File

@ -0,0 +1,51 @@
const Mock = require('mockjs')
const NameList = []
const count = 100
for (let i = 0; i < count; i++) {
NameList.push(Mock.mock({
name: '@first'
}))
}
NameList.push({ name: 'mock-Pan' })
module.exports = [
// username search
{
url: '/vue-element-admin/search/user',
type: 'get',
response: config => {
const { name } = config.query
const mockNameList = NameList.filter(item => {
const lowerCaseName = item.name.toLowerCase()
return !(name && lowerCaseName.indexOf(name.toLowerCase()) < 0)
})
return {
code: 20000,
data: { items: mockNameList }
}
}
},
// transaction list
{
url: '/vue-element-admin/transaction/list',
type: 'get',
response: _ => {
return {
code: 20000,
data: {
total: 20,
'items|20': [{
order_no: '@guid()',
timestamp: +Mock.Random.date('T'),
username: '@name()',
price: '@float(1000, 15000, 0, 2)',
'status|1': ['success', 'pending']
}]
}
}
}
}
]

98
mock/role/index.js Normal file
View File

@ -0,0 +1,98 @@
const Mock = require('mockjs')
const { deepClone } = require('../utils')
const { asyncRoutes, constantRoutes } = require('./routes.js')
const routes = deepClone([...constantRoutes, ...asyncRoutes])
const roles = [
{
key: 'admin',
name: 'admin',
description: 'Super Administrator. Have access to view all pages.',
routes: routes
},
{
key: 'editor',
name: 'editor',
description: 'Normal Editor. Can see all pages except permission page',
routes: routes.filter(i => i.path !== '/permission')// just a mock
},
{
key: 'visitor',
name: 'visitor',
description: 'Just a visitor. Can only see the home page and the document page',
routes: [{
path: '',
redirect: 'dashboard',
children: [
{
path: 'dashboard',
name: 'Dashboard',
meta: { title: 'dashboard', icon: 'dashboard' }
}
]
}]
}
]
module.exports = [
// mock get all routes form server
{
url: '/vue-element-admin/routes',
type: 'get',
response: _ => {
return {
code: 20000,
data: routes
}
}
},
// mock get all roles form server
{
url: '/vue-element-admin/roles',
type: 'get',
response: _ => {
return {
code: 20000,
data: roles
}
}
},
// add role
{
url: '/vue-element-admin/role',
type: 'post',
response: {
code: 20000,
data: {
key: Mock.mock('@integer(300, 5000)')
}
}
},
// update role
{
url: '/vue-element-admin/role/[A-Za-z0-9]',
type: 'put',
response: {
code: 20000,
data: {
status: 'success'
}
}
},
// delete role
{
url: '/vue-element-admin/role/[A-Za-z0-9]',
type: 'delete',
response: {
code: 20000,
data: {
status: 'success'
}
}
}
]

10
mock/role/routes.js Normal file
View File

@ -0,0 +1,10 @@
// Just a mock data
const constantRoutes = []
const asyncRoutes = []
module.exports = {
constantRoutes,
asyncRoutes
}

84
mock/user.js Normal file
View File

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

48
mock/utils.js Normal file
View File

@ -0,0 +1,48 @@
/**
* @param {string} url
* @returns {Object}
*/
function param2Obj(url) {
const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ')
if (!search) {
return {}
}
const obj = {}
const searchArr = search.split('&')
searchArr.forEach(v => {
const index = v.indexOf('=')
if (index !== -1) {
const name = v.substring(0, index)
const val = v.substring(index + 1, v.length)
obj[name] = val
}
})
return obj
}
/**
* This is just a simple version of deep copy
* Has a lot of edge cases bug
* If you want to use a perfect deep copy, use lodash's _.cloneDeep
* @param {Object} source
* @returns {Object}
*/
function deepClone(source) {
if (!source && typeof source !== 'object') {
throw new Error('error arguments', 'deepClone')
}
const targetObj = source.constructor === Array ? [] : {}
Object.keys(source).forEach(keys => {
if (source[keys] && typeof source[keys] === 'object') {
targetObj[keys] = deepClone(source[keys])
} else {
targetObj[keys] = source[keys]
}
})
return targetObj
}
module.exports = {
param2Obj,
deepClone
}

21499
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

151
package.json Normal file
View File

@ -0,0 +1,151 @@
{
"name": "energy-yun",
"version": "4.3.4",
"description": "energy-yun",
"author": "bpchow",
"scripts": {
"dev": "vue-cli-service serve",
"lint": "eslint --ext .js,.vue src",
"build:prod": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"build:app": "vue-cli-service build --mode app",
"build:tonghe": "vue-cli-service build --mode tonghe",
"build:exploit": "vue-cli-service build --mode exploit",
"build:danji": "vue-cli-service build --mode danji",
"build:open": "vue-cli-service build --mode open",
"build:jingkeprod": "vue-cli-service build --mode jingkeprod",
"build:stationtest": "vue-cli-service build --mode stationtest",
"build:opentest": "vue-cli-service build --mode opentest",
"build:opendev": "vue-cli-service build --mode opendev",
"build:xingneng": "vue-cli-service build --mode xingneng",
"preview": "node build/index.js --preview",
"new": "plop",
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml",
"test:unit": "jest --clearCache && vue-cli-service test:unit",
"test:ci": "npm run lint && npm run test:unit"
},
"dependencies": {
"@amap/amap-jsapi-loader": "^1.0.1",
"@amap/amap-vue": "^2.0.13",
"@jiaminghi/data-view": "^2.10.0",
"@riophae/vue-treeselect": "^0.4.0",
"@toast-ui/editor": "^3.1.3",
"@wchbrad/vue-easy-tree": "^1.0.12",
"axios": "0.18.1",
"bcryptjs": "^2.4.3",
"clipboard": "2.0.4",
"codemirror": "5.45.0",
"core-js": "3.6.5",
"crypto-js": "^4.1.1",
"driver.js": "0.9.5",
"dropzone": "5.5.1",
"echarts": "^4.9.0",
"echarts-gl": "^1.1.2",
"echarts-liquidfill": "^2.0.6",
"el-table-draggable": "^1.4.12",
"el-table-infinite-scroll": "^1.0.10",
"el-table-virtual-scroll": "^1.0.13",
"element-ui": "2.13.2",
"fuse.js": "3.4.4",
"hoenergycalendar": "^1.0.6",
"hoenergychart": "^1.0.0",
"hoenergycollistdata": "^1.0.0",
"hoenergycolselect": "^1.0.4",
"hoenergydynamicchart": "^1.0.0",
"hoenergydynamicpoint": "^1.0.5",
"hoenergyitembox": "^1.1.5",
"hoenergypricedialog": "^1.0.5",
"hoenergystationdata": "^1.0.0",
"hoenergystrategytable": "^1.0.0",
"hoenergytablechart": "^1.0.1",
"js-cookie": "2.2.0",
"jsencrypt": "^3.3.1",
"jsonlint": "1.6.3",
"jszip": "3.2.1",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
"path-to-regexp": "2.4.0",
"screenfull": "4.2.0",
"script-loader": "0.7.2",
"sortablejs": "1.8.4",
"v-charts": "^1.19.0",
"vue": "2.6.10",
"vue-amap": "^0.5.10",
"vue-awesome-swiper": "^3.1.3",
"vue-contextmenujs": "^1.4.9",
"vue-count-to": "1.0.13",
"vue-fragment": "^1.6.0",
"vue-i18n": "7.3.2",
"vue-pdf": "^4.3.0",
"vue-router": "3.0.2",
"vue-seamless-scroll": "^1.1.23",
"vuedraggable": "2.20.0",
"vuex": "3.1.0",
"xlsx": "^0.14.1"
},
"devDependencies": {
"@vue/cli-plugin-babel": "4.4.4",
"@vue/cli-plugin-eslint": "4.4.4",
"@vue/cli-plugin-unit-jest": "4.4.4",
"@vue/cli-service": "4.4.4",
"@vue/test-utils": "1.0.0-beta.29",
"autoprefixer": "9.5.1",
"babel-eslint": "10.1.0",
"babel-jest": "23.6.0",
"babel-plugin-dynamic-import-node": "2.3.3",
"chalk": "2.4.2",
"chokidar": "2.1.5",
"connect": "3.6.6",
"eslint": "6.7.2",
"eslint-plugin-vue": "6.2.2",
"html-webpack-plugin": "3.2.0",
"husky": "1.3.1",
"lint-staged": "8.1.5",
"mockjs": "1.0.1-beta3",
"node-sass": "^4.14.1",
"plop": "2.3.0",
"runjs": "4.3.2",
"sass-loader": "8.0.2",
"script-ext-html-webpack-plugin": "2.1.3",
"serve-static": "1.13.2",
"svg-sprite-loader": "4.1.3",
"svgo": "1.2.0",
"vue-template-compiler": "2.6.10"
},
"browserslist": [
"> 1%",
"last 2 versions"
],
"bugs": {
"url": "https://github.com/PanJiaChen/vue-element-admin/issues"
},
"engines": {
"node": ">=8.9",
"npm": ">= 3.0.0"
},
"keywords": [
"vue",
"admin",
"dashboard",
"element-ui",
"boilerplate",
"admin-template",
"management-system"
],
"license": "MIT",
"lint-staged": {
"src/**/*.{js,vue}": [
"eslint --fix",
"git add"
]
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"repository": {
"type": "git",
"url": "git+https://github.com/PanJiaChen/vue-element-admin.git"
}
}

View File

@ -0,0 +1,26 @@
{{#if template}}
<template>
<div />
</template>
{{/if}}
{{#if script}}
<script>
export default {
name: '{{ properCase name }}',
props: {},
data() {
return {}
},
created() {},
mounted() {},
methods: {}
}
</script>
{{/if}}
{{#if style}}
<style lang="scss" scoped>
</style>
{{/if}}

View File

@ -0,0 +1,55 @@
const { notEmpty } = require('../utils.js')
module.exports = {
description: 'generate vue component',
prompts: [{
type: 'input',
name: 'name',
message: 'component name please',
validate: notEmpty('name')
},
{
type: 'checkbox',
name: 'blocks',
message: 'Blocks:',
choices: [{
name: '<template>',
value: 'template',
checked: true
},
{
name: '<script>',
value: 'script',
checked: true
},
{
name: 'style',
value: 'style',
checked: true
}
],
validate(value) {
if (value.indexOf('script') === -1 && value.indexOf('template') === -1) {
return 'Components require at least a <script> or <template> tag.'
}
return true
}
}
],
actions: data => {
const name = '{{properCase name}}'
const actions = [{
type: 'add',
path: `src/components/${name}/index.vue`,
templateFile: 'plop-templates/component/index.hbs',
data: {
name: name,
template: data.blocks.includes('template'),
script: data.blocks.includes('script'),
style: data.blocks.includes('style')
}
}]
return actions
}
}

View File

@ -0,0 +1,16 @@
{{#if state}}
const state = {}
{{/if}}
{{#if mutations}}
const mutations = {}
{{/if}}
{{#if actions}}
const actions = {}
{{/if}}
export default {
namespaced: true,
{{options}}
}

View File

@ -0,0 +1,62 @@
const { notEmpty } = require('../utils.js')
module.exports = {
description: 'generate store',
prompts: [{
type: 'input',
name: 'name',
message: 'store name please',
validate: notEmpty('name')
},
{
type: 'checkbox',
name: 'blocks',
message: 'Blocks:',
choices: [{
name: 'state',
value: 'state',
checked: true
},
{
name: 'mutations',
value: 'mutations',
checked: true
},
{
name: 'actions',
value: 'actions',
checked: true
}
],
validate(value) {
if (!value.includes('state') || !value.includes('mutations')) {
return 'store require at least state and mutations'
}
return true
}
}
],
actions(data) {
const name = '{{name}}'
const { blocks } = data
const options = ['state', 'mutations']
const joinFlag = `,
`
if (blocks.length === 3) {
options.push('actions')
}
const actions = [{
type: 'add',
path: `src/store/modules/${name}.js`,
templateFile: 'plop-templates/store/index.hbs',
data: {
options: options.join(joinFlag),
state: blocks.includes('state'),
mutations: blocks.includes('mutations'),
actions: blocks.includes('actions')
}
}]
return actions
}
}

2
plop-templates/utils.js Normal file
View File

@ -0,0 +1,2 @@
exports.notEmpty = name => v =>
!v || v.trim() === '' ? `${name} is required` : true

View File

@ -0,0 +1,26 @@
{{#if template}}
<template>
<div />
</template>
{{/if}}
{{#if script}}
<script>
export default {
name: '{{ properCase name }}',
props: {},
data() {
return {}
},
created() {},
mounted() {},
methods: {}
}
</script>
{{/if}}
{{#if style}}
<style lang="scss" scoped>
</style>
{{/if}}

View File

@ -0,0 +1,55 @@
const { notEmpty } = require('../utils.js')
module.exports = {
description: 'generate a view',
prompts: [{
type: 'input',
name: 'name',
message: 'view name please',
validate: notEmpty('name')
},
{
type: 'checkbox',
name: 'blocks',
message: 'Blocks:',
choices: [{
name: '<template>',
value: 'template',
checked: true
},
{
name: '<script>',
value: 'script',
checked: true
},
{
name: 'style',
value: 'style',
checked: true
}
],
validate(value) {
if (value.indexOf('script') === -1 && value.indexOf('template') === -1) {
return 'View require at least a <script> or <template> tag.'
}
return true
}
}
],
actions: data => {
const name = '{{name}}'
const actions = [{
type: 'add',
path: `src/views/${name}/index.vue`,
templateFile: 'plop-templates/view/index.hbs',
data: {
name: name,
template: data.blocks.includes('template'),
script: data.blocks.includes('script'),
style: data.blocks.includes('style')
}
}]
return actions
}
}

9
plopfile.js Normal file
View File

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

5
postcss.config.js Normal file
View File

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

753
public/bpmnjs/css/app.css Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,718 @@
/**
* outline styles
*/
.djs-outline {
fill: none;
visibility: hidden;
}
.djs-element.hover .djs-outline,
.djs-element.selected .djs-outline {
visibility: visible;
shape-rendering: crispEdges;
stroke-dasharray: 3,3;
}
.djs-element.selected .djs-outline {
stroke: #8888FF;
stroke-width: 1px;
}
.djs-element.hover .djs-outline {
stroke: #FF8888;
stroke-width: 1px;
}
.djs-shape.connect-ok .djs-visual > :nth-child(1) {
fill: #DCFECC /* light-green */ !important;
}
.djs-shape.connect-not-ok .djs-visual > :nth-child(1),
.djs-shape.drop-not-ok .djs-visual > :nth-child(1) {
fill: #f9dee5 /* light-red */ !important;
}
.djs-shape.new-parent .djs-visual > :nth-child(1) {
fill: #025388 !important;
}
svg.drop-not-ok {
background: #3c5d76/* light-red */ !important;
}
svg.new-parent {
background: rgba(4, 48, 80, 0.3) /* light-blue */ !important;
}
.djs-connection.connect-ok .djs-visual > :nth-child(1),
.djs-connection.drop-ok .djs-visual > :nth-child(1) {
stroke: #90DD5F /* light-green */ !important;
}
.djs-connection.connect-not-ok .djs-visual > :nth-child(1),
.djs-connection.drop-not-ok .djs-visual > :nth-child(1) {
stroke: #E56283 /* light-red */ !important;
}
.drop-not-ok,
.connect-not-ok {
cursor: not-allowed;
}
.djs-element.attach-ok .djs-visual > :nth-child(1) {
stroke-width: 5px !important;
stroke: rgba(20, 196, 239, 0.7) !important;
}
.djs-frame.connect-not-ok .djs-visual > :nth-child(1),
.djs-frame.drop-not-ok .djs-visual > :nth-child(1) {
stroke-width: 3px !important;
stroke: #E56283 /* light-red */ !important;
fill: none !important;
}
/**
* Selection box style
*
*/
.djs-lasso-overlay {
fill: rgb(20, 196, 239);
fill-opacity: 0.1;
stroke-dasharray: 5 1 3 1;
stroke: rgb(20, 196, 239);
shape-rendering: crispEdges;
pointer-events: none;
}
/**
* Resize styles
*/
.djs-resize-overlay {
fill: none;
stroke-dasharray: 5 1 3 1;
stroke: rgb(20, 196, 239);
pointer-events: none;
}
.djs-resizer-hit {
fill: none;
pointer-events: all;
}
.djs-resizer-visual {
fill: white;
stroke-width: 1px;
stroke: #025388;
shape-rendering: crispEdges;
stroke-opacity: 0.2;
}
.djs-cursor-resize-nwse,
.djs-resizer-nw,
.djs-resizer-se {
cursor: nwse-resize;
}
.djs-cursor-resize-nesw,
.djs-resizer-ne,
.djs-resizer-sw {
cursor: nesw-resize;
}
.djs-shape.djs-resizing > .djs-outline {
visibility: hidden !important;
}
.djs-shape.djs-resizing > .djs-resizer {
visibility: hidden;
}
.djs-dragger > .djs-resizer {
visibility: hidden;
}
/**
* drag styles
*/
.djs-dragger * {
fill: none !important;
stroke: rgb(20, 196, 239) !important;
}
.djs-dragger tspan,
.djs-dragger text {
fill: rgb(20, 196, 239) !important;
stroke: none !important;
}
marker.djs-dragger circle,
marker.djs-dragger path,
marker.djs-dragger polygon,
marker.djs-dragger polyline,
marker.djs-dragger rect {
fill: rgb(20, 196, 239) !important;
stroke: none !important;
}
marker.djs-dragger text,
marker.djs-dragger tspan {
fill: none !important;
stroke: rgb(20, 196, 239) !important;
}
.djs-dragging {
opacity: 0.3;
}
.djs-dragging,
.djs-dragging > * {
pointer-events: none !important;
}
.djs-dragging .djs-context-pad,
.djs-dragging .djs-outline {
display: none !important;
}
/**
* no pointer events for visual
*/
.djs-visual,
.djs-outline {
pointer-events: none;
}
.djs-element.attach-ok .djs-hit {
stroke-width: 60px !important;
}
/**
* all pointer events for hit shape
*/
.djs-element > .djs-hit-all {
pointer-events: all;
}
.djs-element > .djs-hit-stroke,
.djs-element > .djs-hit-click-stroke {
pointer-events: stroke;
}
/**
* all pointer events for hit shape
*/
.djs-drag-active .djs-element > .djs-hit-click-stroke {
pointer-events: all;
}
/**
* shape / connection basic styles
*/
.djs-connection .djs-visual {
stroke-width: 2px;
fill: none;
}
.djs-cursor-grab {
cursor: -webkit-grab;
cursor: -moz-grab;
cursor: grab;
}
.djs-cursor-grabbing {
cursor: -webkit-grabbing;
cursor: -moz-grabbing;
cursor: grabbing;
}
.djs-cursor-crosshair {
cursor: crosshair;
}
.djs-cursor-move {
cursor: move;
}
.djs-cursor-resize-ns {
cursor: ns-resize;
}
.djs-cursor-resize-ew {
cursor: ew-resize;
}
/**
* snapping
*/
.djs-snap-line {
stroke: rgb(255, 195, 66);
stroke: rgba(255, 195, 66, 0.50);
stroke-linecap: round;
stroke-width: 2px;
pointer-events: none;
}
/**
* snapping
*/
.djs-crosshair {
stroke: #555;
stroke-linecap: round;
stroke-width: 1px;
pointer-events: none;
shape-rendering: crispEdges;
stroke-dasharray: 5, 5;
}
/**
* palette
*/
.djs-palette {
position: absolute;
left: 20px;
top: 20px;
box-sizing: border-box;
width: 48px;
}
.djs-palette .separator {
margin: 0 5px;
padding-top: 5px;
border: none;
border-bottom: solid 1px #DDD;
clear: both;
}
.djs-palette .entry:before {
vertical-align: text-bottom;
}
.djs-palette .djs-palette-toggle {
cursor: pointer;
}
.djs-palette .entry,
.djs-palette .djs-palette-toggle {
color: #ffffff;
font-size: 30px;
text-align: center;
}
.djs-palette .entry {
float: left;
}
.djs-palette .entry img {
max-width: 100%;
}
.djs-palette .djs-palette-entries:after {
content: '';
display: table;
clear: both;
}
.djs-palette .djs-palette-toggle:hover {
background: #666;
}
.djs-palette .entry:hover {
color: rgb(20, 196, 239);
}
.djs-palette .highlighted-entry {
color: rgb(20, 196, 239) !important;
}
.djs-palette .entry,
.djs-palette .djs-palette-toggle {
width: 46px;
height: 46px;
line-height: 46px;
cursor: default;
}
/**
* Palette open / two-column layout is controlled via
* classes on the palette. Events to hook into palette
* changed life-cycle are available in addition.
*/
.djs-palette.two-column.open {
width: 94px;
}
.djs-palette:not(.open) .djs-palette-entries {
display: none;
}
.djs-palette:not(.open) {
overflow: hidden;
}
.djs-palette.open .djs-palette-toggle {
display: none;
}
/**
* context-pad
*/
.djs-overlay-context-pad {
width: 72px;
}
.djs-context-pad {
position: absolute;
display: none;
pointer-events: none;
}
.djs-context-pad .entry {
width: 22px;
height: 22px;
text-align: center;
display: inline-block;
font-size: 22px;
margin: 0 2px 2px 0;
border-radius: 3px;
cursor: default;
background-color: rgba(4, 48, 80, 0.3);
box-shadow: 0 0 2px 1px rgba(4, 48, 80, 0.3);
pointer-events: all;
}
.djs-context-pad .entry:before {
vertical-align: top;
}
.djs-context-pad .entry:hover {
background: #025388;
}
.djs-context-pad.open {
display: block;
color: #ffffff;
}
/**
* popup styles
*/
.djs-popup .entry {
line-height: 20px;
white-space: nowrap;
cursor: default;
color: #ffffff;
}
/* larger font for prefixed icons */
.djs-popup .entry:before {
vertical-align: middle;
font-size: 20px;
}
.djs-popup .entry > span {
vertical-align: middle;
font-size: 14px;
}
.djs-popup .entry:hover,
.djs-popup .entry.active:hover {
background: #025388;
}
.djs-popup .entry.disabled {
background: inherit;
}
.djs-popup .djs-popup-header .entry {
display: inline-block;
padding: 2px 3px 2px 3px;
border: solid 1px transparent;
border-radius: 3px;
}
.djs-popup .djs-popup-header .entry.active {
color: rgb(20, 196, 239);
border: solid 1px rgb(20, 196, 239);
background-color: rgba(4, 48, 80, 0.3);
}
.djs-popup-body .entry {
padding: 4px 10px 4px 5px;
}
.djs-popup-body .entry > span {
margin-left: 5px;
}
.djs-popup-body {
background-color: rgba(4, 48, 80, 0.3);
}
.djs-popup-header {
border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}
.djs-popup-header .entry {
margin: 1px;
margin-left: 3px;
}
.djs-popup-header .entry:last-child {
margin-right: 3px;
}
/**
* popup / palette styles
*/
.djs-popup, .djs-palette {
background: rgba(4, 48, 80, 0.3);
border: solid 1px rgba(255, 255, 255, 0.3);
border-radius: 2px;
}
/**
* touch
*/
.djs-shape,
.djs-connection {
touch-action: none;
}
.djs-segment-dragger,
.djs-bendpoint {
display: none;
}
/**
* bendpoints
*/
.djs-segment-dragger .djs-visual {
fill: rgba(255, 255, 121, 0.2);
stroke-width: 1px;
stroke-opacity: 1;
stroke: rgba(255, 255, 121, 0.3);
}
.djs-bendpoint .djs-visual {
fill: rgba(255, 255, 121, 0.8);
stroke-width: 1px;
stroke-opacity: 0.5;
stroke: black;
}
.djs-segment-dragger:hover,
.djs-bendpoints.hover .djs-segment-dragger,
.djs-bendpoints.selected .djs-segment-dragger,
.djs-bendpoint:hover,
.djs-bendpoints.hover .djs-bendpoint,
.djs-bendpoints.selected .djs-bendpoint {
display: block;
}
.djs-drag-active .djs-bendpoints * {
display: none;
}
.djs-bendpoints:not(.hover) .floating {
display: none;
}
.djs-segment-dragger:hover .djs-visual,
.djs-segment-dragger.djs-dragging .djs-visual,
.djs-bendpoint:hover .djs-visual,
.djs-bendpoint.floating .djs-visual {
fill: yellow;
stroke-opacity: 0.5;
stroke: black;
}
.djs-bendpoint.floating .djs-hit {
pointer-events: none;
}
.djs-segment-dragger .djs-hit,
.djs-bendpoint .djs-hit {
pointer-events: all;
fill: none;
}
.djs-segment-dragger.horizontal .djs-hit {
cursor: ns-resize;
}
.djs-segment-dragger.vertical .djs-hit {
cursor: ew-resize;
}
.djs-segment-dragger.djs-dragging .djs-hit {
pointer-events: none;
}
.djs-updating,
.djs-updating > * {
pointer-events: none !important;
}
.djs-updating .djs-context-pad,
.djs-updating .djs-outline,
.djs-updating .djs-bendpoint,
.connect-ok .djs-bendpoint,
.connect-not-ok .djs-bendpoint,
.drop-ok .djs-bendpoint,
.drop-not-ok .djs-bendpoint {
display: none !important;
}
.djs-segment-dragger.djs-dragging,
.djs-bendpoint.djs-dragging {
display: block;
opacity: 1.0;
}
.djs-segment-dragger.djs-dragging .djs-visual,
.djs-bendpoint.djs-dragging .djs-visual {
fill: yellow;
stroke-opacity: 0.5;
}
/**
* tooltips
*/
.djs-tooltip-error {
font-size: 11px;
line-height: 18px;
text-align: left;
padding: 5px;
opacity: 0.7;
}
.djs-tooltip-error > * {
width: 160px;
background: rgb(252, 236, 240);
color: rgb(158, 76, 76);
padding: 3px 7px;
border-radius: 5px;
border-left: solid 5px rgb(174, 73, 73);
}
.djs-tooltip-error:hover {
opacity: 1;
}
/**
* search pad
*/
.djs-search-container {
position: absolute;
top: 20px;
left: 0;
right: 0;
margin-left: auto;
margin-right: auto;
width: 25%;
min-width: 300px;
max-width: 400px;
z-index: 10;
font-size: 1.05em;
opacity: 0.9;
background: rgba(4, 48, 80, 0.3);
border: solid 1px rgba(255, 255, 255, 0.3);
border-radius: 2px;
}
.djs-search-container:not(.open) {
display: none;
}
.djs-search-input input {
font-size: 1.05em;
width: 100%;
padding: 6px 10px;
border: 1px solid rgba(255, 255, 255, 0.3);
}
.djs-search-input input:focus {
outline: none;
border-color: #52B415;
}
.djs-search-results {
position: relative;
overflow-y: auto;
max-height: 200px;
}
.djs-search-results:hover {
/*background: #fffdd7;*/
cursor: pointer;
}
.djs-search-result {
width: 100%;
padding: 6px 10px;
background: white;
border-bottom: solid 1px #AAA;
border-radius: 1px;
}
.djs-search-highlight {
color: black;
}
.djs-search-result-primary {
margin: 0 0 10px;
}
.djs-search-result-secondary {
font-family: monospace;
margin: 0;
}
.djs-search-result:hover {
background: #fdffd6;
}
.djs-search-result-selected {
background: #fffcb0;
}
.djs-search-result-selected:hover {
background: #f7f388;
}
.djs-search-overlay {
background: yellow;
opacity: 0.3;
}
/**
* hidden styles
*/
.djs-element-hidden,
.djs-element-hidden .djs-hit,
.djs-element-hidden .djs-outline,
.djs-label-hidden .djs-label {
display: none !important;
}

BIN
public/bpmnjs/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

248
public/bpmnjs/index.html Normal file
View File

@ -0,0 +1,248 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>在线绘制流程</title>
<link rel="icon" href="favicon.ico">
<link rel="stylesheet" href="css/diagram-js.css" />
<link rel="stylesheet" href="vendor/bpmn-font/css/bpmn-embedded.css" />
<link rel="stylesheet" href="css/app.css" />
<style>
.item {
display: none;
cursor: pointer;
}
.bjs-powered-by {
display: none;
}
.buttons>li {
/* display: inline-block; */
margin-right: 10px;
height: 26px;
line-height: 26px;
float: left;
}
.buttons>li>a.btn {
background: #00BCD4;
border: none;
outline: none;
padding: 0px 10px;
color: #fff;
display: inline-block;
opacity: 1;
height: 26px;
font-size: 14px;
line-height: 26px;
}
.label {
background: #00BCD4;
border: none;
outline: none;
padding: 0px 10px;
color: #fff;
display: inline-block;
cursor: pointer;
opacity: 1;
height: 26px;
font-size: 14px;
line-height: 26px;
}
.sy-mask {
width: 100%;
height: 100%;
position: fixed;
background: rgba(0, 0, 0, 0.8);
left: 0;
top: 0;
z-index: 1000;
display: none;
}
.sy-alert {
position: fixed;
display: none;
background: #fff;
border-radius: 5px;
overflow: hidden;
width: 300px;
max-width: 90%;
max-height: 80%;
left: 0;
right: 0;
margin: 0 auto;
z-index: 9999
}
.sy-alert.animated {
-webkit-animation-duration: .3s;
animation-duration: .3s
}
.sy-alert .sy-title {
height: 45px;
color: #333;
line-height: 45px;
font-size: 15px;
border-bottom: 1px solid #eee;
padding: 0 12px
}
.sy-alert .sy-content {
padding: 20px;
text-align: center;
font-size: 14px;
line-height: 24px;
color: #666;
overflow-y: auto
}
.sy-alert .sy-btn {
height: 50%;
border-top: 1px solid #eee;
overflow: hidden
}
.sy-alert .sy-btn button {
float: left;
border: 0;
color: #333;
cursor: pointer;
background: #fff;
width: 50%;
line-height: 45px;
font-size: 15px;
text-align: center
}
.sy-alert .sy-btn button:nth-child(1) {
color: #888;
border-right: 1px solid #eee
}
.sy-alert.sy-alert-alert .sy-btn button {
float: none;
width: 100%
}
.sy-alert.sy-alert-tips {
text-align: center;
width: 150px;
background: rgba(0, 0, 0, 0.7)
}
.sy-alert.sy-alert-tips .sy-content {
padding: 8px;
color: #fff;
font-size: 14px
}
.sy-alert.sy-alert-model .sy-content {
text-align: left
}
.sy-alert.sy-alert-model .sy-content .form .input-item {
margin-bottom: 12px;
position: relative
}
.sy-alert.sy-alert-model .sy-content .form .input-item input {
display: block;
position: relative;
width: 100%;
border: 1px solid #eee;
padding: 10px
}
.sy-alert.sy-alert-model .sy-content .form .input-item .getcode {
border: 0;
top: 0;
right: 0;
position: absolute;
background: 0;
line-height: 37px;
color: #f60;
width: 100px;
text-align: center
}
</style>
</head>
<body>
<div class="content with-diagram" id="js-drop-zone">
<div class="message error">
<div class="note">
<p id="wfxs">无法显示bpms2.0</p>
<div class="details">
<span id="cwDetail">错误详细信息</span>
<pre></pre>
</div>
</div>
</div>
<div class="canvas" id="js-canvas"></div>
<div class="properties-panel-parent" id="js-properties-panel"></div>
</div>
<ul class="buttons">
<!-- <li class="item upload">
<form id="form1" name="myForm" onsubmit="return false" method="post" enctype="multipart/form-data" title="上传文件">
<input type="file" name="uploadFile" id="uploadFile" accept=".bpmn" style="display: none">
<label class="label" for="uploadFile" >导入</label>
</form>
</li> -->
<li class="item download">
<a class="btn" href id="downloadBpmn">导出</a>
</li>
<li class="item submit">
<a class="btn" id="js-download-diagram">
部署
</a>
</li>
<li class="item saveTemplate">
<a class="btn" id="saveTemplateBpmn">
保存
</a>
</li>
<!-- 保存为模板 -->
<li class="item saveToTemplate">
<a class="btn" id="saveToTemplateBpmn">
保存为模板
</a>
</li>
</ul>
<div class="sy-alert sy-alert-model animated" sy-enter="zoomIn" sy-leave="zoomOut" sy-type="confirm" sy-mask="true"
id="alert">
<div class="sy-title" id="bslc">部署流程</div>
<div class="sy-content" id="qrbs">
确认是否部署该流程
<!-- <div class="form">-->
<!-- <p class="input-item"><input id="deploymentName" type="text" placeholder="请输入流程名称"></p>-->
<!-- </div>-->
</div>
<div class="sy-btn">
<button id="sure">确定</button>
<button class="cancel" id="cancel">取消</button>
</div>
</div>
<div class="sy-mask cancel"></div>
<script type="text/javascript" src="index.js"></script>
<script>
document.getElementById('downloadBpmn').innerText = sessionStorage.getItem('language') === 'en' ? 'Export' : '导出';
document.getElementById('js-download-diagram').innerText = sessionStorage.getItem('language') === 'en' ? 'Deploy' : '部署';
document.getElementById('saveTemplateBpmn').innerText = sessionStorage.getItem('language') === 'en' ? 'Save' : '保存';
document.getElementById('saveToTemplateBpmn').innerText = sessionStorage.getItem('language') === 'en' ? 'Save as a template' : '保存为模板';
document.getElementById('bslc').innerText = sessionStorage.getItem('language') === 'en' ? 'Deployment process' : '部署流程';
document.getElementById('qrbs').innerText = sessionStorage.getItem('language') === 'en' ? 'Confirm whether the process is deployed' : '确认是否部署该流程';
document.getElementById('sure').innerText = sessionStorage.getItem('language') === 'en' ? 'Sure' : '确定';
document.getElementById('cancel').innerText = sessionStorage.getItem('language') === 'en' ? 'Cancel' : '取消';
document.getElementById('wfxs').innerText = sessionStorage.getItem('language') === 'en' ? 'BPMS2.0 cannot be displayed' : '取消';
document.getElementById('cwDetail').innerText = sessionStorage.getItem('language') === 'en' ? 'Error details' : '取消';
</script>
</body>
</html>

90192
public/bpmnjs/index.js Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,108 @@
.bpmn-icon-screw-wrench:before { content: '\e800'; } /* '' */
.bpmn-icon-trash:before { content: '\e801'; } /* '' */
.bpmn-icon-conditional-flow:before { content: '\e802'; } /* '' */
.bpmn-icon-default-flow:before { content: '\e803'; } /* '' */
.bpmn-icon-gateway-parallel:before { content: '\e804'; } /* '' */
.bpmn-icon-intermediate-event-catch-cancel:before { content: '\e805'; } /* '' */
.bpmn-icon-intermediate-event-catch-non-interrupting-message:before { content: '\e806'; } /* '' */
.bpmn-icon-start-event-compensation:before { content: '\e807'; } /* '' */
.bpmn-icon-start-event-non-interrupting-parallel-multiple:before { content: '\e808'; } /* '' */
.bpmn-icon-loop-marker:before { content: '\e809'; } /* '' */
.bpmn-icon-parallel-mi-marker:before { content: '\e80a'; } /* '' */
.bpmn-icon-start-event-non-interrupting-signal:before { content: '\e80b'; } /* '' */
.bpmn-icon-intermediate-event-catch-non-interrupting-timer:before { content: '\e80c'; } /* '' */
.bpmn-icon-intermediate-event-catch-parallel-multiple:before { content: '\e80d'; } /* '' */
.bpmn-icon-intermediate-event-catch-compensation:before { content: '\e80e'; } /* '' */
.bpmn-icon-gateway-xor:before { content: '\e80f'; } /* '' */
.bpmn-icon-connection:before { content: '\e810'; } /* '' */
.bpmn-icon-end-event-cancel:before { content: '\e811'; } /* '' */
.bpmn-icon-intermediate-event-catch-condition:before { content: '\e812'; } /* '' */
.bpmn-icon-intermediate-event-catch-non-interrupting-parallel-multiple:before { content: '\e813'; } /* '' */
.bpmn-icon-start-event-condition:before { content: '\e814'; } /* '' */
.bpmn-icon-start-event-non-interrupting-timer:before { content: '\e815'; } /* '' */
.bpmn-icon-sequential-mi-marker:before { content: '\e816'; } /* '' */
.bpmn-icon-user-task:before { content: '\e817'; } /* '' */
.bpmn-icon-business-rule:before { content: '\e818'; } /* '' */
.bpmn-icon-sub-process-marker:before { content: '\e819'; } /* '' */
.bpmn-icon-start-event-parallel-multiple:before { content: '\e81a'; } /* '' */
.bpmn-icon-start-event-error:before { content: '\e81b'; } /* '' */
.bpmn-icon-intermediate-event-catch-signal:before { content: '\e81c'; } /* '' */
.bpmn-icon-intermediate-event-catch-error:before { content: '\e81d'; } /* '' */
.bpmn-icon-end-event-compensation:before { content: '\e81e'; } /* '' */
.bpmn-icon-subprocess-collapsed:before { content: '\e81f'; } /* '' */
.bpmn-icon-subprocess-expanded:before { content: '\e820'; } /* '' */
.bpmn-icon-task:before { content: '\e821'; } /* '' */
.bpmn-icon-end-event-error:before { content: '\e822'; } /* '' */
.bpmn-icon-intermediate-event-catch-escalation:before { content: '\e823'; } /* '' */
.bpmn-icon-intermediate-event-catch-timer:before { content: '\e824'; } /* '' */
.bpmn-icon-start-event-escalation:before { content: '\e825'; } /* '' */
.bpmn-icon-start-event-signal:before { content: '\e826'; } /* '' */
.bpmn-icon-business-rule-task:before { content: '\e827'; } /* '' */
.bpmn-icon-manual:before { content: '\e828'; } /* '' */
.bpmn-icon-receive:before { content: '\e829'; } /* '' */
.bpmn-icon-call-activity:before { content: '\e82a'; } /* '' */
.bpmn-icon-start-event-timer:before { content: '\e82b'; } /* '' */
.bpmn-icon-start-event-message:before { content: '\e82c'; } /* '' */
.bpmn-icon-intermediate-event-none:before { content: '\e82d'; } /* '' */
.bpmn-icon-intermediate-event-catch-link:before { content: '\e82e'; } /* '' */
.bpmn-icon-end-event-escalation:before { content: '\e82f'; } /* '' */
.bpmn-icon-text-annotation:before { content: '\e830'; } /* '' */
.bpmn-icon-bpmn-io:before { content: '\e831'; } /* '' */
.bpmn-icon-gateway-complex:before { content: '\e832'; } /* '' */
.bpmn-icon-gateway-eventbased:before { content: '\e833'; } /* '' */
.bpmn-icon-gateway-none:before { content: '\e834'; } /* '' */
.bpmn-icon-gateway-or:before { content: '\e835'; } /* '' */
.bpmn-icon-end-event-terminate:before { content: '\e836'; } /* '' */
.bpmn-icon-end-event-signal:before { content: '\e837'; } /* '' */
.bpmn-icon-end-event-none:before { content: '\e838'; } /* '' */
.bpmn-icon-end-event-multiple:before { content: '\e839'; } /* '' */
.bpmn-icon-end-event-message:before { content: '\e83a'; } /* '' */
.bpmn-icon-end-event-link:before { content: '\e83b'; } /* '' */
.bpmn-icon-intermediate-event-catch-message:before { content: '\e83c'; } /* '' */
.bpmn-icon-intermediate-event-throw-compensation:before { content: '\e83d'; } /* '' */
.bpmn-icon-start-event-multiple:before { content: '\e83e'; } /* '' */
.bpmn-icon-script:before { content: '\e83f'; } /* '' */
.bpmn-icon-manual-task:before { content: '\e840'; } /* '' */
.bpmn-icon-send:before { content: '\e841'; } /* '' */
.bpmn-icon-service:before { content: '\e842'; } /* '' */
.bpmn-icon-receive-task:before { content: '\e843'; } /* '' */
.bpmn-icon-user:before { content: '\e844'; } /* '' */
.bpmn-icon-start-event-none:before { content: '\e845'; } /* '' */
.bpmn-icon-intermediate-event-throw-escalation:before { content: '\e846'; } /* '' */
.bpmn-icon-intermediate-event-catch-multiple:before { content: '\e847'; } /* '' */
.bpmn-icon-intermediate-event-catch-non-interrupting-escalation:before { content: '\e848'; } /* '' */
.bpmn-icon-intermediate-event-throw-link:before { content: '\e849'; } /* '' */
.bpmn-icon-start-event-non-interrupting-condition:before { content: '\e84a'; } /* '' */
.bpmn-icon-data-object:before { content: '\e84b'; } /* '' */
.bpmn-icon-script-task:before { content: '\e84c'; } /* '' */
.bpmn-icon-send-task:before { content: '\e84d'; } /* '' */
.bpmn-icon-data-store:before { content: '\e84e'; } /* '' */
.bpmn-icon-start-event-non-interrupting-escalation:before { content: '\e84f'; } /* '' */
.bpmn-icon-intermediate-event-throw-message:before { content: '\e850'; } /* '' */
.bpmn-icon-intermediate-event-catch-non-interrupting-multiple:before { content: '\e851'; } /* '' */
.bpmn-icon-intermediate-event-catch-non-interrupting-signal:before { content: '\e852'; } /* '' */
.bpmn-icon-intermediate-event-throw-multiple:before { content: '\e853'; } /* '' */
.bpmn-icon-start-event-non-interrupting-message:before { content: '\e854'; } /* '' */
.bpmn-icon-ad-hoc-marker:before { content: '\e855'; } /* '' */
.bpmn-icon-service-task:before { content: '\e856'; } /* '' */
.bpmn-icon-task-none:before { content: '\e857'; } /* '' */
.bpmn-icon-compensation-marker:before { content: '\e858'; } /* '' */
.bpmn-icon-start-event-non-interrupting-multiple:before { content: '\e859'; } /* '' */
.bpmn-icon-intermediate-event-throw-signal:before { content: '\e85a'; } /* '' */
.bpmn-icon-intermediate-event-catch-non-interrupting-condition:before { content: '\e85b'; } /* '' */
.bpmn-icon-participant:before { content: '\e85c'; } /* '' */
.bpmn-icon-event-subprocess-expanded:before { content: '\e85d'; } /* '' */
.bpmn-icon-lane-insert-below:before { content: '\e85e'; } /* '' */
.bpmn-icon-space-tool:before { content: '\e85f'; } /* '' */
.bpmn-icon-connection-multi:before { content: '\e860'; } /* '' */
.bpmn-icon-lane:before { content: '\e861'; } /* '' */
.bpmn-icon-lasso-tool:before { content: '\e862'; } /* '' */
.bpmn-icon-lane-insert-above:before { content: '\e863'; } /* '' */
.bpmn-icon-lane-divide-three:before { content: '\e864'; } /* '' */
.bpmn-icon-lane-divide-two:before { content: '\e865'; } /* '' */
.bpmn-icon-data-input:before { content: '\e866'; } /* '' */
.bpmn-icon-data-output:before { content: '\e867'; } /* '' */
.bpmn-icon-hand-tool:before { content: '\e868'; } /* '' */
.bpmn-icon-group:before { content: '\e869'; } /* '' */
.bpmn-icon-transaction:before { content: '\e8c4'; } /* '' */

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,164 @@
@font-face {
font-family: 'bpmn';
src: url('../font/bpmn.eot?26374340');
src: url('../font/bpmn.eot?26374340#iefix') format('embedded-opentype'),
url('../font/bpmn.woff2?26374340') format('woff2'),
url('../font/bpmn.woff?26374340') format('woff'),
url('../font/bpmn.ttf?26374340') format('truetype'),
url('../font/bpmn.svg?26374340#bpmn') format('svg');
font-weight: normal;
font-style: normal;
}
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'bpmn';
src: url('../font/bpmn.svg?26374340#bpmn') format('svg');
}
}
*/
[class^="bpmn-icon-"]:before, [class*=" bpmn-icon-"]:before {
font-family: "bpmn";
font-style: normal;
font-weight: normal;
speak: never;
display: inline-block;
text-decoration: inherit;
width: 1em;
/* margin-right: .2em; */
text-align: center;
/* opacity: .8; */
/* For safety - reset parent styles, that can break glyph codes*/
font-variant: normal;
text-transform: none;
/* fix buttons height, for twitter bootstrap */
line-height: 1em;
/* Animation center compensation - margins should be symmetric */
/* remove if not needed */
/* margin-left: .2em; */
/* you can be more comfortable with increased icons size */
/* font-size: 120%; */
/* Font smoothing. That was taken from TWBS */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
/* Uncomment for 3D effect */
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}
.bpmn-icon-screw-wrench:before { content: '\e800'; } /* '' */
.bpmn-icon-trash:before { content: '\e801'; } /* '' */
.bpmn-icon-conditional-flow:before { content: '\e802'; } /* '' */
.bpmn-icon-default-flow:before { content: '\e803'; } /* '' */
.bpmn-icon-gateway-parallel:before { content: '\e804'; } /* '' */
.bpmn-icon-intermediate-event-catch-cancel:before { content: '\e805'; } /* '' */
.bpmn-icon-intermediate-event-catch-non-interrupting-message:before { content: '\e806'; } /* '' */
.bpmn-icon-start-event-compensation:before { content: '\e807'; } /* '' */
.bpmn-icon-start-event-non-interrupting-parallel-multiple:before { content: '\e808'; } /* '' */
.bpmn-icon-loop-marker:before { content: '\e809'; } /* '' */
.bpmn-icon-parallel-mi-marker:before { content: '\e80a'; } /* '' */
.bpmn-icon-start-event-non-interrupting-signal:before { content: '\e80b'; } /* '' */
.bpmn-icon-intermediate-event-catch-non-interrupting-timer:before { content: '\e80c'; } /* '' */
.bpmn-icon-intermediate-event-catch-parallel-multiple:before { content: '\e80d'; } /* '' */
.bpmn-icon-intermediate-event-catch-compensation:before { content: '\e80e'; } /* '' */
.bpmn-icon-gateway-xor:before { content: '\e80f'; } /* '' */
.bpmn-icon-connection:before { content: '\e810'; } /* '' */
.bpmn-icon-end-event-cancel:before { content: '\e811'; } /* '' */
.bpmn-icon-intermediate-event-catch-condition:before { content: '\e812'; } /* '' */
.bpmn-icon-intermediate-event-catch-non-interrupting-parallel-multiple:before { content: '\e813'; } /* '' */
.bpmn-icon-start-event-condition:before { content: '\e814'; } /* '' */
.bpmn-icon-start-event-non-interrupting-timer:before { content: '\e815'; } /* '' */
.bpmn-icon-sequential-mi-marker:before { content: '\e816'; } /* '' */
.bpmn-icon-user-task:before { content: '\e817'; } /* '' */
.bpmn-icon-business-rule:before { content: '\e818'; } /* '' */
.bpmn-icon-sub-process-marker:before { content: '\e819'; } /* '' */
.bpmn-icon-start-event-parallel-multiple:before { content: '\e81a'; } /* '' */
.bpmn-icon-start-event-error:before { content: '\e81b'; } /* '' */
.bpmn-icon-intermediate-event-catch-signal:before { content: '\e81c'; } /* '' */
.bpmn-icon-intermediate-event-catch-error:before { content: '\e81d'; } /* '' */
.bpmn-icon-end-event-compensation:before { content: '\e81e'; } /* '' */
.bpmn-icon-subprocess-collapsed:before { content: '\e81f'; } /* '' */
.bpmn-icon-subprocess-expanded:before { content: '\e820'; } /* '' */
.bpmn-icon-task:before { content: '\e821'; } /* '' */
.bpmn-icon-end-event-error:before { content: '\e822'; } /* '' */
.bpmn-icon-intermediate-event-catch-escalation:before { content: '\e823'; } /* '' */
.bpmn-icon-intermediate-event-catch-timer:before { content: '\e824'; } /* '' */
.bpmn-icon-start-event-escalation:before { content: '\e825'; } /* '' */
.bpmn-icon-start-event-signal:before { content: '\e826'; } /* '' */
.bpmn-icon-business-rule-task:before { content: '\e827'; } /* '' */
.bpmn-icon-manual:before { content: '\e828'; } /* '' */
.bpmn-icon-receive:before { content: '\e829'; } /* '' */
.bpmn-icon-call-activity:before { content: '\e82a'; } /* '' */
.bpmn-icon-start-event-timer:before { content: '\e82b'; } /* '' */
.bpmn-icon-start-event-message:before { content: '\e82c'; } /* '' */
.bpmn-icon-intermediate-event-none:before { content: '\e82d'; } /* '' */
.bpmn-icon-intermediate-event-catch-link:before { content: '\e82e'; } /* '' */
.bpmn-icon-end-event-escalation:before { content: '\e82f'; } /* '' */
.bpmn-icon-text-annotation:before { content: '\e830'; } /* '' */
.bpmn-icon-bpmn-io:before { content: '\e831'; } /* '' */
.bpmn-icon-gateway-complex:before { content: '\e832'; } /* '' */
.bpmn-icon-gateway-eventbased:before { content: '\e833'; } /* '' */
.bpmn-icon-gateway-none:before { content: '\e834'; } /* '' */
.bpmn-icon-gateway-or:before { content: '\e835'; } /* '' */
.bpmn-icon-end-event-terminate:before { content: '\e836'; } /* '' */
.bpmn-icon-end-event-signal:before { content: '\e837'; } /* '' */
.bpmn-icon-end-event-none:before { content: '\e838'; } /* '' */
.bpmn-icon-end-event-multiple:before { content: '\e839'; } /* '' */
.bpmn-icon-end-event-message:before { content: '\e83a'; } /* '' */
.bpmn-icon-end-event-link:before { content: '\e83b'; } /* '' */
.bpmn-icon-intermediate-event-catch-message:before { content: '\e83c'; } /* '' */
.bpmn-icon-intermediate-event-throw-compensation:before { content: '\e83d'; } /* '' */
.bpmn-icon-start-event-multiple:before { content: '\e83e'; } /* '' */
.bpmn-icon-script:before { content: '\e83f'; } /* '' */
.bpmn-icon-manual-task:before { content: '\e840'; } /* '' */
.bpmn-icon-send:before { content: '\e841'; } /* '' */
.bpmn-icon-service:before { content: '\e842'; } /* '' */
.bpmn-icon-receive-task:before { content: '\e843'; } /* '' */
.bpmn-icon-user:before { content: '\e844'; } /* '' */
.bpmn-icon-start-event-none:before { content: '\e845'; } /* '' */
.bpmn-icon-intermediate-event-throw-escalation:before { content: '\e846'; } /* '' */
.bpmn-icon-intermediate-event-catch-multiple:before { content: '\e847'; } /* '' */
.bpmn-icon-intermediate-event-catch-non-interrupting-escalation:before { content: '\e848'; } /* '' */
.bpmn-icon-intermediate-event-throw-link:before { content: '\e849'; } /* '' */
.bpmn-icon-start-event-non-interrupting-condition:before { content: '\e84a'; } /* '' */
.bpmn-icon-data-object:before { content: '\e84b'; } /* '' */
.bpmn-icon-script-task:before { content: '\e84c'; } /* '' */
.bpmn-icon-send-task:before { content: '\e84d'; } /* '' */
.bpmn-icon-data-store:before { content: '\e84e'; } /* '' */
.bpmn-icon-start-event-non-interrupting-escalation:before { content: '\e84f'; } /* '' */
.bpmn-icon-intermediate-event-throw-message:before { content: '\e850'; } /* '' */
.bpmn-icon-intermediate-event-catch-non-interrupting-multiple:before { content: '\e851'; } /* '' */
.bpmn-icon-intermediate-event-catch-non-interrupting-signal:before { content: '\e852'; } /* '' */
.bpmn-icon-intermediate-event-throw-multiple:before { content: '\e853'; } /* '' */
.bpmn-icon-start-event-non-interrupting-message:before { content: '\e854'; } /* '' */
.bpmn-icon-ad-hoc-marker:before { content: '\e855'; } /* '' */
.bpmn-icon-service-task:before { content: '\e856'; } /* '' */
.bpmn-icon-task-none:before { content: '\e857'; } /* '' */
.bpmn-icon-compensation-marker:before { content: '\e858'; } /* '' */
.bpmn-icon-start-event-non-interrupting-multiple:before { content: '\e859'; } /* '' */
.bpmn-icon-intermediate-event-throw-signal:before { content: '\e85a'; } /* '' */
.bpmn-icon-intermediate-event-catch-non-interrupting-condition:before { content: '\e85b'; } /* '' */
.bpmn-icon-participant:before { content: '\e85c'; } /* '' */
.bpmn-icon-event-subprocess-expanded:before { content: '\e85d'; } /* '' */
.bpmn-icon-lane-insert-below:before { content: '\e85e'; } /* '' */
.bpmn-icon-space-tool:before { content: '\e85f'; } /* '' */
.bpmn-icon-connection-multi:before { content: '\e860'; } /* '' */
.bpmn-icon-lane:before { content: '\e861'; } /* '' */
.bpmn-icon-lasso-tool:before { content: '\e862'; } /* '' */
.bpmn-icon-lane-insert-above:before { content: '\e863'; } /* '' */
.bpmn-icon-lane-divide-three:before { content: '\e864'; } /* '' */
.bpmn-icon-lane-divide-two:before { content: '\e865'; } /* '' */
.bpmn-icon-data-input:before { content: '\e866'; } /* '' */
.bpmn-icon-data-output:before { content: '\e867'; } /* '' */
.bpmn-icon-hand-tool:before { content: '\e868'; } /* '' */
.bpmn-icon-group:before { content: '\e869'; } /* '' */
.bpmn-icon-transaction:before { content: '\e8c4'; } /* '' */

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

822
public/bpmnjs/vendor/diagram-js.css vendored Normal file
View File

@ -0,0 +1,822 @@
/**
* color definitions
*/
.djs-container {
--blue-base-65: #4d90ff;
--blue-base-65-opacity-30: rgba(77, 144, 255, 0.3);
--blue-darken-48: #005df7;
--blue-darken-55: #1a70ff;
--blue-lighten-82: #a2c5ff;
--orange-base-60: #ffa533;
--orange-base-60-opacity-30: rgba(255, 165, 51, 0.3);
--orange-base-60-opacity-50: rgba(255, 165, 51, 0.5);
--orange-lighten-85: #ffddb3;
--red-base-62: #ff3d3d;
--red-base-62-opacity-10: rgba(255, 61, 61, 0.1);
--silver-darken-94: #efefef;
--color-000000: #000000;
--color-000000-opacity-05: rgba(0, 0, 0, 0.05);
--color-000000-opacity-10: rgba(0, 0, 0, 0.1);
--color-333333: #333333;
--color-666666: #666666;
--color-aaaaaa: #aaaaaa;
--color-cccccc: #cccccc;
--color-cdcdcd: #cdcdcd;
--color-dddddd: #dddddd;
--color-f6f6f6: #f6f6f6;
--color-fafafa: #fafafa;
--color-fefefe: #fefefe;
--color-ffffff: #ffffff;
--bendpoint-fill-color: var(--blue-base-65-opacity-30);
--bendpoint-stroke-color: var(--blue-base-65);
--context-pad-entry-background-color: var(--color-fefefe);
--context-pad-entry-hover-background-color: var(--silver-darken-94);
--element-dragger-color: var(--blue-base-65);
--element-hover-outline-fill-color: var(--blue-darken-48);
--element-selected-outline-stroke-color: var(--blue-base-65);
--lasso-fill-color: var(--color-000000-opacity-05);
--lasso-stroke-color: var(--color-000000);
--palette-entry-color: var(--color-333333);
--palette-entry-hover-color: var(--blue-darken-48);
--palette-entry-selected-color: var(--blue-base-65);
--palette-separator-color: var(--color-aaaaaa);
--palette-toggle-hover-background-color: var(--color-666666);
--palette-background-color: var(--color-fafafa);
--palette-border-color: var(--color-cccccc);
--popup-body-background-color: var(--color-fefefe);
--popup-header-entry-selected-color: var(--blue-base-65);
--popup-header-entry-selected-background-color: var(--color-000000-opacity-10);
--popup-header-separator-color: var(--color-dddddd);
--popup-background-color: var(--color-fafafa);
--popup-border-color: var(--color-cccccc);
--resizer-fill-color: var(--blue-base-65-opacity-30);
--resizer-stroke-color: var(--blue-base-65);
--search-container-background-color: var(--color-fafafa);
--search-container-border-color: var(--blue-darken-55);
--search-container-box-shadow-color: var(--blue-lighten-82);
--search-container-box-shadow-inset-color: var(--color-cdcdcd);
--search-input-border-color: var(--color-cccccc);
--search-result-border-color: var(--color-aaaaaa);
--search-result-highlight-color: var(--color-000000);
--search-result-selected-color: var(--blue-base-65-opacity-30);
--shape-attach-allowed-stroke-color: var(--blue-base-65);
--shape-connect-allowed-fill-color: var(--color-000000-opacity-05);
--shape-drop-allowed-fill-color: var(--color-000000-opacity-05);
--shape-drop-not-allowed-fill-color: var(--red-base-62-opacity-10);
--shape-resize-preview-stroke-color: var(--blue-base-65);
--snap-line-stroke-color: var(--blue-base-65-opacity-30);
--space-tool-crosshair-stroke-color: var(--color-000000);
--tooltip-error-background-color: var(--red-base-62-opacity-10);
--tooltip-error-border-color: var(--red-base-62);
--tooltip-error-color: var(--red-base-62);
}
/**
* outline styles
*/
.djs-outline {
fill: none;
visibility: hidden;
}
.djs-element.hover .djs-outline,
.djs-element.selected .djs-outline {
visibility: visible;
shape-rendering: geometricPrecision;
stroke-dasharray: 3,3;
}
.djs-element.selected .djs-outline {
stroke: var(--element-selected-outline-stroke-color);
stroke-width: 1px;
}
.djs-element.hover .djs-outline {
stroke: var(--element-hover-outline-fill-color);
stroke-width: 1px;
}
.djs-shape.connect-ok .djs-visual > :nth-child(1) {
fill: var(--shape-connect-allowed-fill-color) !important;
}
.djs-shape.connect-not-ok .djs-visual > :nth-child(1),
.djs-shape.drop-not-ok .djs-visual > :nth-child(1) {
fill: var(--shape-drop-not-allowed-fill-color) !important;
}
.djs-shape.new-parent .djs-visual > :nth-child(1) {
fill: var(--shape-drop-allowed-fill-color) !important;
}
svg.drop-not-ok {
background: var(--shape-drop-not-allowed-fill-color) !important;
}
svg.new-parent {
background: var(--shape-drop-allowed-fill-color) !important;
}
.djs-connection.connect-ok .djs-visual > :nth-child(1),
.djs-connection.drop-ok .djs-visual > :nth-child(1) {
stroke: var(--shape-drop-allowed-fill-color) !important;
}
.djs-connection.connect-not-ok .djs-visual > :nth-child(1),
.djs-connection.drop-not-ok .djs-visual > :nth-child(1) {
stroke: var(--shape-drop-not-allowed-fill-color) !important;
}
.drop-not-ok,
.connect-not-ok {
stroke: var(--shape-attach-allowed-stroke-color) !important;
cursor: not-allowed;
}
.djs-element.attach-ok .djs-visual > :nth-child(1) {
stroke-width: 5px !important;
}
.djs-frame.connect-not-ok .djs-visual > :nth-child(1),
.djs-frame.drop-not-ok .djs-visual > :nth-child(1) {
stroke-width: 3px !important;
stroke: var(--shape-drop-not-allowed-fill-color) !important;
fill: none !important;
}
/**
* Selection box style
*
*/
.djs-lasso-overlay {
fill: var(--lasso-fill-color);
stroke-dasharray: 5 1 3 1;
stroke: var(--lasso-stroke-color);
shape-rendering: geometricPrecision;
pointer-events: none;
}
/**
* Resize styles
*/
.djs-resize-overlay {
fill: none;
stroke-dasharray: 5 1 3 1;
stroke: var(--shape-resize-preview-stroke-color);
pointer-events: none;
}
.djs-resizer-hit {
fill: none;
pointer-events: all;
}
.djs-resizer-visual {
fill: var(--resizer-fill-color);;
stroke-width: 1px;
stroke-opacity: 0.5;
stroke: var(--resizer-stroke-color);
shape-rendering: geometricprecision;
}
.djs-resizer:hover .djs-resizer-visual {
stroke: var(--resizer-stroke-color);
stroke-opacity: 1;
}
.djs-cursor-resize-ns,
.djs-resizer-n,
.djs-resizer-s {
cursor: ns-resize;
}
.djs-cursor-resize-ew,
.djs-resizer-e,
.djs-resizer-w {
cursor: ew-resize;
}
.djs-cursor-resize-nwse,
.djs-resizer-nw,
.djs-resizer-se {
cursor: nwse-resize;
}
.djs-cursor-resize-nesw,
.djs-resizer-ne,
.djs-resizer-sw {
cursor: nesw-resize;
}
.djs-shape.djs-resizing > .djs-outline {
visibility: hidden !important;
}
.djs-shape.djs-resizing > .djs-resizer {
visibility: hidden;
}
.djs-dragger > .djs-resizer {
visibility: hidden;
}
/**
* drag styles
*/
.djs-dragger * {
fill: none !important;
stroke: var(--element-dragger-color) !important;
}
.djs-dragger tspan,
.djs-dragger text {
fill: var(--element-dragger-color) !important;
stroke: none !important;
}
marker.djs-dragger circle,
marker.djs-dragger path,
marker.djs-dragger polygon,
marker.djs-dragger polyline,
marker.djs-dragger rect {
fill: var(--element-dragger-color) !important;
stroke: none !important;
}
marker.djs-dragger text,
marker.djs-dragger tspan {
fill: none !important;
stroke: var(--element-dragger-color) !important;
}
.djs-dragging {
opacity: 0.3;
}
.djs-dragging,
.djs-dragging > * {
pointer-events: none !important;
}
.djs-dragging .djs-context-pad,
.djs-dragging .djs-outline {
display: none !important;
}
/**
* no pointer events for visual
*/
.djs-visual,
.djs-outline {
pointer-events: none;
}
.djs-element.attach-ok .djs-hit {
stroke-width: 60px !important;
}
/**
* all pointer events for hit shape
*/
.djs-element > .djs-hit-all {
pointer-events: all;
}
.djs-element > .djs-hit-stroke,
.djs-element > .djs-hit-click-stroke {
pointer-events: stroke;
}
/**
* all pointer events for hit shape
*/
.djs-drag-active .djs-element > .djs-hit-click-stroke {
pointer-events: all;
}
/**
* shape / connection basic styles
*/
.djs-connection .djs-visual {
stroke-width: 2px;
fill: none;
}
.djs-cursor-grab {
cursor: -webkit-grab;
cursor: -moz-grab;
cursor: grab;
}
.djs-cursor-grabbing {
cursor: -webkit-grabbing;
cursor: -moz-grabbing;
cursor: grabbing;
}
.djs-cursor-crosshair {
cursor: crosshair;
}
.djs-cursor-move {
cursor: move;
}
.djs-cursor-resize-ns {
cursor: ns-resize;
}
.djs-cursor-resize-ew {
cursor: ew-resize;
}
/**
* snapping
*/
.djs-snap-line {
stroke: var(--snap-line-stroke-color);
stroke-linecap: round;
stroke-width: 2px;
pointer-events: none;
}
/**
* snapping
*/
.djs-crosshair {
stroke: var(--space-tool-crosshair-stroke-color);
stroke-linecap: round;
stroke-width: 1px;
pointer-events: none;
shape-rendering: crispEdges;
stroke-dasharray: 5, 5;
}
/**
* palette
*/
.djs-palette {
position: absolute;
left: 20px;
top: 20px;
box-sizing: border-box;
width: 48px;
}
.djs-palette .separator {
margin: 0 5px;
padding-top: 5px;
border: none;
border-bottom: solid 1px var(--palette-separator-color);
clear: both;
}
.djs-palette .entry:before {
vertical-align: text-bottom;
}
.djs-palette .djs-palette-toggle {
cursor: pointer;
}
.djs-palette .entry,
.djs-palette .djs-palette-toggle {
color: var(--palette-entry-color);
font-size: 30px;
text-align: center;
}
.djs-palette .entry {
float: left;
}
.djs-palette .entry img {
max-width: 100%;
}
.djs-palette .djs-palette-entries:after {
content: '';
display: table;
clear: both;
}
.djs-palette .djs-palette-toggle:hover {
background: var(--palette-toggle-hover-background-color);
}
.djs-palette .entry:hover {
color: var(--palette-entry-hover-color);
}
.djs-palette .highlighted-entry {
color: var(--palette-entry-selected-color) !important;
}
.djs-palette .entry,
.djs-palette .djs-palette-toggle {
width: 46px;
height: 46px;
line-height: 46px;
cursor: default;
}
/**
* Palette open / two-column layout is controlled via
* classes on the palette. Events to hook into palette
* changed life-cycle are available in addition.
*/
.djs-palette.two-column.open {
width: 94px;
}
.djs-palette:not(.open) .djs-palette-entries {
display: none;
}
.djs-palette:not(.open) {
overflow: hidden;
}
.djs-palette.open .djs-palette-toggle {
display: none;
}
/**
* context-pad
*/
.djs-overlay-context-pad {
width: 72px;
}
.djs-context-pad {
position: absolute;
display: none;
pointer-events: none;
}
.djs-context-pad .entry {
width: 22px;
height: 22px;
text-align: center;
display: inline-block;
font-size: 22px;
margin: 0 2px 2px 0;
border-radius: 3px;
cursor: default;
background-color: var(--context-pad-entry-background-color);
box-shadow: 0 0 2px 1px var(--context-pad-entry-background-color);
pointer-events: all;
}
.djs-context-pad .entry:before {
vertical-align: top;
}
.djs-context-pad .entry:hover {
background: var(--context-pad-entry-hover-background-color);
}
.djs-context-pad.open {
display: block;
color: #ffffff;
}
/**
* popup styles
*/
.djs-popup .entry {
line-height: 20px;
white-space: nowrap;
cursor: default;
color: #ffffff;
}
/* larger font for prefixed icons */
.djs-popup .entry:before {
vertical-align: middle;
font-size: 20px;
}
.djs-popup .entry > span {
vertical-align: middle;
font-size: 14px;
}
.djs-popup .entry:hover,
.djs-popup .entry.active:hover {
background: var(--popup-header-entry-selected-background-color);
}
.djs-popup .entry.disabled {
background: inherit;
}
.djs-popup .djs-popup-header .entry {
display: inline-block;
padding: 2px 3px 2px 3px;
border: solid 1px transparent;
border-radius: 3px;
}
.djs-popup .djs-popup-header .entry.active {
color: var(--popup-header-entry-selected-color);
border: solid 1px var(--popup-header-entry-selected-color);
background-color: var(--popup-header-entry-selected-background-color);
}
.djs-popup-body .entry {
padding: 4px 10px 4px 5px;
}
.djs-popup-body .entry > span {
margin-left: 5px;
}
.djs-popup-body {
background-color: var(--popup-body-background-color);
}
.djs-popup-header {
border-bottom: 1px solid var(--popup-header-separator-color);
}
.djs-popup-header .entry {
margin: 1px;
margin-left: 3px;
}
.djs-popup-header .entry:last-child {
margin-right: 3px;
}
/**
* popup / palette styles
*/
.djs-palette {
background: var(--palette-background-color);
border: solid 1px var(--palette-border-color);
border-radius: 2px;
}
.djs-popup {
background: var(--popup-background-color);
border: solid 1px var(--popup-border-color);
border-radius: 2px;
}
/**
* touch
*/
.djs-shape,
.djs-connection {
touch-action: none;
}
.djs-segment-dragger,
.djs-bendpoint {
display: none;
}
/**
* bendpoints
*/
.djs-segment-dragger .djs-visual {
display: none;
fill: var(--bendpoint-fill-color);
stroke: var(--bendpoint-stroke-color);
stroke-width: 1px;
stroke-opacity: 1;
}
.djs-segment-dragger:hover .djs-visual {
display: block;
}
.djs-bendpoint .djs-visual {
fill: var(--bendpoint-fill-color);
stroke: var(--bendpoint-stroke-color);
stroke-width: 1px;
stroke-opacity: 0.5;
}
.djs-segment-dragger:hover,
.djs-bendpoints.hover .djs-segment-dragger,
.djs-bendpoints.selected .djs-segment-dragger,
.djs-bendpoint:hover,
.djs-bendpoints.hover .djs-bendpoint,
.djs-bendpoints.selected .djs-bendpoint {
display: block;
}
.djs-drag-active .djs-bendpoints * {
display: none;
}
.djs-bendpoints:not(.hover) .floating {
display: none;
}
.djs-segment-dragger:hover .djs-visual,
.djs-segment-dragger.djs-dragging .djs-visual,
.djs-bendpoint:hover .djs-visual,
.djs-bendpoint.floating .djs-visual {
fill: var(--bendpoint-fill-color);
stroke: var(--bendpoint-stroke-color);
stroke-opacity: 1;
}
.djs-bendpoint.floating .djs-hit {
pointer-events: none;
}
.djs-segment-dragger .djs-hit,
.djs-bendpoint .djs-hit {
fill: none;
pointer-events: all;
}
.djs-segment-dragger.horizontal .djs-hit {
cursor: ns-resize;
}
.djs-segment-dragger.vertical .djs-hit {
cursor: ew-resize;
}
.djs-segment-dragger.djs-dragging .djs-hit {
pointer-events: none;
}
.djs-updating,
.djs-updating > * {
pointer-events: none !important;
}
.djs-updating .djs-context-pad,
.djs-updating .djs-outline,
.djs-updating .djs-bendpoint,
.connect-ok .djs-bendpoint,
.connect-not-ok .djs-bendpoint,
.drop-ok .djs-bendpoint,
.drop-not-ok .djs-bendpoint {
display: none !important;
}
.djs-segment-dragger.djs-dragging,
.djs-bendpoint.djs-dragging {
display: block;
opacity: 1.0;
}
/**
* tooltips
*/
.djs-tooltip-error {
width: 160px;
padding: 6px;
background: var(--tooltip-error-background-color);
border: solid 1px var(--tooltip-error-border-color);
border-radius: 2px;
color: var(--tooltip-error-color);
font-size: 12px;
line-height: 16px;
opacity: 0.75;
}
.djs-tooltip-error:hover {
opacity: 1;
}
/**
* search pad
*/
.djs-search-container {
position: absolute;
top: 20px;
left: 0;
right: 0;
margin-left: auto;
margin-right: auto;
width: 25%;
min-width: 300px;
max-width: 400px;
z-index: 10;
font-size: 1.05em;
opacity: 0.9;
background: var(--search-container-background-color);
border: solid 1px var(--search-container-border-color);
border-radius: 2px;
box-shadow: 0 0 0 2px var(--search-container-box-shadow-color), 0 0 0 1px var(--search-container-box-shadow-inset-color) inset;
}
.djs-search-container:not(.open) {
display: none;
}
.djs-search-input input {
font-size: 1.05em;
width: 100%;
padding: 6px 10px;
border: 1px solid var(--search-input-border-color);
}
.djs-search-input input:focus {
outline: none;
border-color: var(--search-input-border-color);
}
.djs-search-results {
position: relative;
overflow-y: auto;
max-height: 200px;
}
.djs-search-results:hover {
cursor: pointer;
}
.djs-search-result {
width: 100%;
padding: 6px 10px;
background: white;
border-bottom: solid 1px var(--search-result-border-color);
border-radius: 1px;
}
.djs-search-highlight {
color: var(--search-result-highlight-color);
}
.djs-search-result-primary {
margin: 0 0 10px;
}
.djs-search-result-secondary {
font-family: monospace;
margin: 0;
}
.djs-search-result:hover {
background: var(--search-result-selected-color);
}
.djs-search-result-selected {
background: var(--search-result-selected-color);
}
.djs-search-result-selected:hover {
background: var(--search-result-selected-color);
}
.djs-search-overlay {
background: var(--search-result-selected-color);
}
/**
* hidden styles
*/
.djs-element-hidden,
.djs-element-hidden .djs-hit,
.djs-element-hidden .djs-outline,
.djs-label-hidden .djs-label {
display: none !important;
}

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

18
public/index.html Normal file
View File

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="renderer" content="webkit" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
/>
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= webpackConfig.name %></title>
</head>
<body>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

92
src/App.vue Normal file
View File

@ -0,0 +1,92 @@
<template>
<div id="app">
<router-view />
</div>
</template>
<script>
import { windowResize } from '@/utils/index'
export default {
name: 'App',
components: {
},
data() {
return {
}
},
mounted() {
this.$nextTick(() => {
windowResize()
})
}
}
</script>
<style>
/* aa */
@import "~@/assets/font/font.css";
/* 设置滚动条的样式 */
*::-webkit-scrollbar {
height: 4px;
/*设置横向滚动条的高度*/
width: 4px;
/*设置纵向向滚动条宽带*/
background-color: #ffffff;
}
*::-webkit-scrollbar-track {
display: none;
border-radius: 10px;
}
/* 滚动条滑块样式 */
*::-webkit-scrollbar-thumb {
background-color: #056fb9;
border-radius: 10px;
}
*::-webkit-scrollbar-track-piece {
border-radius: 10px;
}
*::-webkit-scrollbar {
height: 6px;
width: 6px;
background-color: transparent !important;
} /*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/
*::-webkit-scrollbar-track {
background-color: rgba(0, 68, 255, 0.5);
} /*定义滚动条轨道 内阴影+圆角*/
</style>
<style lang="scss" scoped>
::v-deep .item-top-new {
background-image: var(--item-header-bg) !important;
}
::v-deep #chart{
overflow: hidden;
}
::v-deep .top-left-container {
.item-wrap {
background: url(./assets/images/right-item.png) no-repeat !important;
background-size: 100% 100%!important;
}
}
::v-deep .top-left-container {
.error-item-wrap {
background: url(./assets/images/error-right-item.png) no-repeat !important;
background-size: 100% 100%!important;
}
}
::v-deep .stationData-content-box{
background: url(./assets/station-data/item-bg.png) no-repeat !important;
background-size: 100% 100%!important;
}
::v-deep .price-con-item {
background: url(./assets/images/price-bg.png) no-repeat !important;
background-size: 100% 100%!important;
}
</style>

View File

@ -0,0 +1,27 @@
import request from '@/utils/request'
// 分页查询
export function GetProcessManagement(data) {
return request({
url: '/flow/processDefinition/list',
method: 'post',
data
})
}
// 删除流程模板
export function DeleteProcessManagement(data) {
return request({
url: '/flow/processDefinition/remove/' + data.deploymentId,
method: 'DELETE'
})
}
// 修改流程模板
export function EditProcessManagement(data) {
return request({
url: '/flow/processDefinition/suspendOrActiveApply',
method: 'post',
data: data
})
}

47
src/api/activiti/task.js Normal file
View File

@ -0,0 +1,47 @@
import request from '@/utils/request'
// 发起工单
export function InitProcessInstance(data) {
return request({
url: '/flow/processFlowNew/initProcessInstance',
method: 'post',
data: data
})
}
// 查询代办
export function GetTodoList(data) {
return request({
url: '/flow/processFlowNew/queryTodoList',
method: 'post',
data: data
})
}
// 任务详情
export function GetTaskInfo(data) {
return request({
url: '/flow/processFlowNew/taskInfo',
method: 'post',
data: data
})
}
// 编辑工单
export function SaveWorkOrder(data) {
return request({
url: '/flow/processFlowNew/save',
method: 'post',
data: data
})
}
// 查询已办
export function GetQueryDoneList(data) {
return request({
url: '/flow/processFlowNew/queryDoneList',
method: 'post',
data: data
})
}

54
src/api/activiti/temp.js Normal file
View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 分页查询模板
export function GetProcessTemplate(data) {
return request({
url: '/flow/processTemplate',
method: 'post',
data
})
}
// 分页查询模板
export function GetProcessTemplateList(data) {
return request({
url: '/flow/processTemplate/list',
method: 'post',
data
})
}
// 新增模板
export function AddProcessTemplate(data) {
return request({
url: '/flow/processTemplate/add',
method: 'post',
data
})
}
// 删除模板
export function DeleteProcessTemplate(data) {
return request({
url: '/flow/processTemplate/delete',
method: 'post',
data
})
}
// 修改模板
export function EditProcessTemplate(data) {
return request({
url: '/flow/processTemplate/edit',
method: 'post',
data
})
}
// 查询详情
export function GetTemplate(data) {
return request({
url: '/flow/processTemplate/' + data,
method: 'get'
})
}

View File

@ -0,0 +1,71 @@
import request from '@/utils/request'
// 查询电站下的设备类型列表
export function GetdeviceType(data) {
return request({
url: `/business/device/deviceType`,
method: 'post',
data
})
}
// 查询告警配置接口
// 批量新增电站告警遥信配置接口
export function addSignalBatch(data) {
return request({
url: '/flow/alarmConfig/addSignalBatch',
method: 'post',
data
})
}
// 更改电站告警等级接口
export function modifyLevel(data) {
return request({
url: '/flow/alarmConfig/modifyLevel',
method: 'post',
data
})
}
// 分页查询遥信告警配置接口
export function signalPage(data) {
return request({
url: '/flow/alarmConfig/signalPage',
method: 'post',
data
})
}
// 分页查询遥测告警配置接口
export function measurePage(data) {
return request({
url: '/flow/alarmConfig/measurePage',
method: 'post',
data
})
}
// 批量新增告警遥测配置接口
export function addMeasureBatch(data) {
return request({
url: '/flow/alarmConfig/addMeasureBatch',
method: 'post',
data
})
}
// 批量删除告警遥信配置
export function deleteSignalBatch(data) {
return request({
url: '/flow/alarmConfig/deleteSignalBatch',
method: 'post',
data
})
}
// 分页查询遥信告警配置已经选中的接口
export function signalCheckListPage(data) {
return request({
url: '/flow/alarmConfig/signalCheckListPage',
method: 'post',
data
})
}

View File

@ -0,0 +1,64 @@
import request from '@/utils/request'
// 获取电站数据
export function GetDeviceType(data) {
return request({
url: '/business/device/deviceType',
method: 'post',
data
})
}
// 分页查询告警配置
export function GetDeviceColDefinePage(data) {
return request({
url: '/flow/deviceColDefine/page',
method: 'post',
data
})
}
// 删除告警字段定义
export function DelDeviceColDefine(data) {
return request({
url: '/flow/deviceColDefine/deleteDeviceColDefine',
method: 'post',
data
})
}
// 分页查询点表数据
export function GetDeviceTypeCol(data) {
return request({
url: '/business/deviceTypeCol/page',
method: 'post',
data
})
}
// 新增告警字段
export function AddDeviceColDefine(data) {
return request({
url: '/flow/deviceColDefine/addDeviceColDefine',
method: 'post',
data
})
}
// 修改告警字段
export function UpdataDeviceColDefine(data) {
return request({
url: '/flow/deviceColDefine/modifyDeviceColDefine',
method: 'post',
data
})
}
// 同步告警字段
export function SyncDeviceColDefine(data) {
return request({
url: '/flow/deviceColDefine/syncDeviceColDefines',
method: 'post',
data
})
}

53
src/api/alarm/realtime.js Normal file
View File

@ -0,0 +1,53 @@
import request from '@/utils/request'
// 获取电站数据
export function GetStationlist() {
return request({
url: '/business/station/all',
method: 'post'
})
}
// 获取实时告警数据
export function GetAlarmList(data) {
return request({
url: '/flow/event/page',
method: 'post',
data
})
}
// 获取实时告警历史数据
export function GetAlarmHistoryList(data) {
return request({
url: '/flow/event/hispage',
method: 'post',
data
})
}
// 确认告警
export function SetAlarmConfirm(ids) {
return request({
url: '/flow/event/confirm',
method: 'put',
data: ids
})
}
// 转工单
export function TransferOrder(ids) {
return request({
url: '/business/event/conversion',
method: 'post',
data: ids
})
}
// 手动转工单
export function TransMovement(data) {
return request({
url: '/flow/processFlowNew/movement',
method: 'post',
data: data
})
}

View File

@ -0,0 +1,147 @@
import request from '@/utils/request'
// 获取系统转换率
export function GetEfficiencyDate(data) {
return request({
url: '/business/IargeScreenShow/getCommonEfficiencyDate',
method: 'post',
data,
headers: {
isScreen: true
}
})
}
// 获取电站区域分布
export function GetRegionalDistribution(data) {
return request({
url: '/business/IargeScreenShow/getCommonRegionalDistribution',
method: 'post',
data,
headers: {
isScreen: true
}
})
}
// 电站收益率排名
export function GetRegionalIncomeDate(data) {
return request({
url: '/business/IargeScreenShow/getCommonIncomeList',
method: 'post',
data,
headers: {
isScreen: true
}
})
}
// 告警
export function GetRealTimeAlarm(data) {
return request({
url: '/flow/event/realTimeAlarm',
method: 'post',
data,
headers: {
isScreen: true
}
})
}
// 获取电站信息
export function GetStationInfo(data) {
return request({
url: '/business/IargeScreenShow/getCommonStationInfo',
method: 'post',
data,
headers: {
isScreen: true
}
})
}
// 日充日放对比图
export function GetChargeDailyChart(data) {
return request({
url: '/business/IargeScreenShow/getCommonChargeDailyChart',
method: 'post',
data,
headers: {
isScreen: true
}
})
}
// 总览
export function GetOverviewData(data) {
return request({
url: '/business/IargeScreenShow/getCommonOverviewData',
method: 'post',
data,
headers: {
isScreen: true
}
})
}
// 天气
export function GetNewWeather(data) {
return request({
url: '/business/IargeScreenShow/newWeather',
method: 'post',
data,
headers: {
isScreen: true
}
})
}
export function GetCapacity(data) {
return request({
url: '/business/IargeScreenShow/getCommonCapacity',
method: 'post',
data,
headers: {
isScreen: true
}
})
}
export function GetIncomeCurve(data) {
return request({
url: '/business/IargeScreenShow/getCommonIncomeCurve',
method: 'post',
data,
headers: {
isScreen: true
}
})
}
export function GetEnergySaving(data) {
return request({
url: '/business/IargeScreenShow/getCommonEnergySaving',
method: 'post',
data,
headers: {
isScreen: true
}
})
}
// 节能减排
export function GetQTEnergySaving(data) {
return request({
url: '/business/IargeScreenShow/getEnergySaving',
method: 'post',
data
})
}
// 告警及正常设备统计
export function GeteventDeviceNum(data) {
return request({
url: '/flow/event/eventDeviceNum',
method: 'post',
data
})
}

View File

@ -0,0 +1,76 @@
import request from '@/utils/request'
// 策略对比默认参数获取接口
export function GetParameters(data) {
return request({
url: '/business/strategyComparison/getParameters',
method: 'post',
data
})
}
// 2、获取电价曲线
export function GetElecPrice(data) {
return request({
url: '/business/strategyComparison/elecPrice',
method: 'post',
data
})
}
// 2、获取默认曲线
export function GetDefaultCurve(data) {
return request({
url: '/business/strategyComparison/defaultCurve',
method: 'post',
data
})
}
// 3、策略生成
export function PolicyGenerationCurve(data) {
return request({
url: '/business/strategyComparison/policyGenerationCurve',
method: 'post',
timeout: 1000 * 20,
data
})
}
// 4、策略托管
export function PolicyHosting(data) {
return request({
url: '/business/strategyComparison/hosting',
method: 'post',
timeout: 1000 * 20,
data
})
}
// 收益复盘
export function EarningsReview(data) {
return request({
url: '/business/strategyEarnings/earningsReview',
method: 'post',
data
})
}
// 取消策略托管
export function PolicyUnHosting(data) {
return request({
url: '/business/strategyComparison/unHosting',
method: 'post',
timeout: 1000 * 20,
data
})
}
// 策略复盘曲线
export function StrategyReviewCurve(data) {
return request({
url: '/business/strategyEarnings/strategyReviewCurve',
method: 'post',
data
})
}

79
src/api/file/index.js Normal file
View File

@ -0,0 +1,79 @@
import request from '@/utils/request'
// 文件读取
export function GetReadFileAttribute(data) {
return request({
url: '/media/file/readFileAttribute',
method: 'post',
data
})
}
// 文件上传
export function fileUploadForDevice(data) {
return request({
url: '/media/file/fileUploadForDevice',
method: 'post',
data
})
}
// 文件下载
export function downloadFromDevice(data) {
return request({
url: '/media/file/downloadFromDevice',
method: 'post',
data
})
}
// 文件下载进度
export function downloadProgressBar(data) {
return request({
url: '/media/file/downloadProgressBar',
method: 'post',
data
})
}
// 文件删除
export function deleteDeviceFiles(data) {
return request({
url: '/media/file/deleteDeviceFiles',
method: 'post',
data
})
}
// 文件下发
export function SetFileIssued(data) {
return request({
url: '/media/file/fileIssued',
method: 'post',
data
})
}
// 文件下发进度
export function IssuedProgressBar(data) {
return request({
url: '/media/file/progressBar',
method: 'post',
data
})
}
// 文件权限变化
export function ChangePermission(data) {
return request({
url: '/media/file/chargeFilePermission',
method: 'post',
data
})
}
// 修改文件权限下发进度
export function GetChangePermissionBar(data) {
return request({
url: '/media/file/chargeFilePermissionProgressBar',
method: 'post',
data
})
}

302
src/api/home-page/index.js Normal file
View File

@ -0,0 +1,302 @@
import request from '@/utils/request'
// 充放电量
export function GetElecData(data) {
return request({
url: '/business/openStation/elecData',
method: 'post',
data
})
}
// 电站信息
export function GetPcsStationData(data) {
return request({
url: '/business/openStation/pcsStationData',
method: 'post',
data
})
}
// 数据总览
export function GetPcsTotalData(data) {
return request({
url: '/business/openStation/pcsTotalData',
method: 'post',
data
})
}
// 实时曲线
export function GetRealtimeCurve(data) {
return request({
url: '/business/openStation/realtimeCurve',
method: 'post',
data
})
}
// 状态监控
export function GetOpenStationMiddle(data) {
return request({
url: '/business/openStation/middle',
method: 'post',
data
})
}
// 状态监控
export function GetOpenStationMiddlePart(data) {
return request({
url: '/business/openStation/middlePart',
method: 'post',
data
})
}
// 环控数据
export function GetCircleCtr(data) {
return request({
url: '/business/openStation/circleCtr',
method: 'post',
data
})
}
// 收益曲线
export function GetIncomeData(data) {
return request({
url: '/business/openStation/incomeData',
method: 'post',
data
})
}
// 215kw累计充放电
export function GetPCSElecData(data) {
return request({
url: '/business/openStation/getPCSElecData',
method: 'post',
data
})
}
// 查询空调
export function GetAirConfig(data) {
return request({
url: '/business/common/getAirCondition',
method: 'post',
data
})
}
// 查询总有功功率
export function GetMiddleActive(data) {
return request({
url: '/business/xinFengMing/middlePart',
method: 'post',
data
})
}
// /xfm
// 增加充放电量时间设定
export function addElecMeterConfig(data) {
return request({
url: '/business/xinFengMing/addElecMeterConfig',
method: 'post',
data
})
}
// 查询充放电量时间设定
export function queryElecMeterConfig(data) {
return request({
url: '/business/xinFengMing/queryElecMeterConfig',
method: 'post',
data
})
}
// 更新充放电量时间设定
export function updateElecMeterConfig(data) {
return request({
url: '/business/xinFengMing/updateElecMeterConfig',
method: 'post',
data
})
}
// 三合一总功率
export function GetTotalPower(data) {
return request({
url: '/business/common/middlePart',
method: 'post',
data
})
}
export function GetMiddlePartInverter(data) {
return request({
url: '/business/openStation/middlePartInverter',
method: 'post',
data
})
}
// 中自环保
export function GetZJHBStatus(data) {
return request({
url: '/business/zhongZiHuanBao/status',
method: 'post',
data
})
}
// 济宁微山湖
export function GetWSHStatus(data) {
return request({
url: '/business/weiShanHu/status',
method: 'post',
data
})
}
// 获取电表
export function GetgetElec(data) {
return request({
url: '/business/common/getElec',
method: 'post',
data
})
}
// 光伏并网
export function GetPVElec(data) {
return request({
url: 'business/common/getPVElec',
method: 'post',
data
})
}
// 横沥103光伏
export function GetOpticalStorage(data) {
return request({
url: 'business/common/getOpticalStorage',
method: 'post',
data
})
}
// 横沥电表
export function GetHLEleMeter(data) {
return request({
url: '/business/common/getEleMeter',
method: 'post',
data
})
}
// 批量增加曲线配置信息
export function AddCurveList(data) {
return request({
url: '/business/dynamicConfig/addCurveList',
method: 'post',
data
})
}
// 删除曲线
export function DelDynamicConfigTitle(data) {
return request({
url: '/business/dynamicConfig/delDynamicConfigTitle',
method: 'post',
data
})
}
// 批量增加曲线配置信息
export function GetDynamicRealtimeCurve(data) {
return request({
url: '/business/openStation/dynamicRealtimeCurve',
method: 'post',
data
})
}
// 查询曲线配置信息
export function GetCurveConfig(data) {
return request({
url: '/business/dynamicConfig/queryCurveConfig',
method: 'post',
data
})
}
// 批量增加点配置信息
export function AddPointList(data) {
return request({
url: '/business/dynamicConfig/addPointList',
method: 'post',
data
})
}
// 批量增加点配置信息
export function GetPointConfig(data) {
return request({
url: '/business/dynamicConfig/pointList',
method: 'post',
data
})
}
// 批量增加点配置信息
export function DynamicConfigPoint(data) {
return request({
url: '/business/dynamicConfig/pointListData',
method: 'post',
data
})
}
// 获取电站收益
export function GetEarnings(data) {
return request({
url: 'business/openStation/getEarnings',
method: 'post',
data
})
}
// 获取品胜
export function GetPinShengStatus(data) {
return request({
url: 'business/pinSheng/status',
method: 'post',
data
})
}
// 保存srcid
export function SaveSrcId(data) {
return request({
url: 'business/topologyJumpConfig/add',
method: 'post',
data
})
}
// 获取srcid
export function GetSrcId(data) {
return request({
url: 'business/topologyJumpConfig/list',
method: 'post',
data
})
}
// 配置数据来源
export function SetDataConfig(data) {
return request({
url: 'business/singapore/setPoint',
method: 'post',
data
})
}

View File

@ -0,0 +1,78 @@
import request from '@/utils/request'
// 空调
// export function GetAirCondition(data) {
// return request({
// url: '/business/bozhou/airCondition',
// method: 'post',
// data
// })
// }
// 电站数据
export function GetbozhouStationData(data) {
return request({
url: '/business/bozhou/stationData',
method: 'post',
data
})
}
// 拓扑数据
export function GetbozhouTuopuStatus(data) {
return request({
url: 'business/bozhou/status',
method: 'post',
data
})
}
// 瑞安汽车数据总览
export function GetRAPcsTotalData(data) {
return request({
url: '/business/openStation/getPcsTotalData',
method: 'post',
data
})
}
export function GetShanghaiKJYAirData(data) {
return request({
url: 'business/common/commonAirCondition',
method: 'post',
data
})
}
// 晶科
export function GetJKStatus(data) {
return request({
url: '/business/jingke/status',
method: 'post',
data
})
}
export function GetWSHday(data) {
return request({
url: '/business/weiShanHu/getStationData',
method: 'post',
data
})
}
export function GetZZHBday(data) {
return request({
url: '/business/zhongZiHuanBao/getStationData',
method: 'post',
data
})
}
// 横沥103
export function GetHengli(data) {
return request({
url: '/business/openStation/getStationData',
method: 'post',
data
})
}

View File

@ -0,0 +1,135 @@
import request from '@/utils/request'
// 获取一体柜信息
export function GetPointList(data = {}) {
return request({
url: '/business/point/page',
method: 'post',
data
})
}
// 获取一体柜设备类型
export function GetFindIntegratedCabinets(data) {
return request({
url: '/business/point/treeDevices',
method: 'post',
data
})
}
// 获取一体柜sn类型
export function GetSNBystationId(data) {
return request({
url: '/business/point/getSN',
method: 'post',
data
})
}
// shuaxin
export function GetObjById(data) {
return request({
url: '/business/point/updateOne',
method: 'post',
data
})
}
// 下发
export function SetOrderIssued(data) {
return request({
url: '/media/orderSend/orderIssued',
method: 'post',
data
})
}
// 指令下发
export function GetOrderProgressBar(data) {
return request({
url: '/media/orderSend/progressBar',
method: 'post',
data
})
}
// 指令下发
export function GetHeartbeat(data) {
return request({
url: '/media/heartbeatCheck/getHeartbeat',
method: 'post',
data
})
}
// 设备下发,批量下发
export function FileUploadForDeviceList(data) {
return request({
url: '/media/file/fileUploadForDeviceList',
method: 'post',
data
})
}
export function getNewDevice(data) {
return request({
url: '/business/device/treeDevices',
method: 'post',
data
})
}
export function beforeOrderSend(data) {
return request({
url: 'business/point/beforeOrderSend',
method: 'post',
data
})
}
// 新增用户习惯
export function addUserHabit(data) {
return request({
url: '/business/point/addUserHabit',
method: 'post',
data
})
}
// 查询用户习惯
export function getUserHabit(data) {
return request({
url: '/business/point/queryUserHabit',
method: 'post',
data
})
}
// 更新用户习惯
export function updataUserHabit(data) {
return request({
url: '/business/point/updateUserHabit',
method: 'post',
data
})
}
// 电表数据展示
export function GetPointDataShow(data) {
return request({
url: '/business/point/pointDataShow',
method: 'post',
data
})
}
// 新增取代点
export function AddSubstiutionValuePoint(data) {
return request({
url: '/business/substitutionValue/addPoint',
method: 'post',
data
})
}
export function GetSelectAllPoint(data) {
return request({
url: '/business/substitutionValue/selectAllPoint',
method: 'post',
data
})
}

View File

@ -0,0 +1,74 @@
import request from '@/utils/request'
// 查询信息列表
export function GetInformationList(data) {
return request({
url: '/business/noteAndRepair/selectStationNote',
method: 'post',
data
})
}
// 新增信息
export function AddInformation(data) {
return request({
url: '/business/noteAndRepair/addStationNote',
method: 'post',
data
})
}
// 编辑信息
export function EditInformation(data) {
return request({
url: '/business/noteAndRepair/updateStationNote',
method: 'post',
data
})
}
// 删除信息
export function DelInformation(data) {
return request({
url: '/business/noteAndRepair/deleteStationNote',
method: 'post',
data
})
}
// 查询电站维修记录
export function GetStationRepair(data) {
return request({
url: '/business/noteAndRepair/selectStationRepair',
method: 'post',
data
})
}
// 新增电站维修记录
export function AddStationRepair(data) {
return request({
url: '/business/noteAndRepair/addStationRepair',
method: 'post',
data
})
}
// 修改电站维修记录
export function UpdateStationRepair(data) {
return request({
url: '/business/noteAndRepair/updateStationRepair',
method: 'post',
data
})
}
// 删除电站维修记录
export function DelStationRepair(data) {
return request({
url: '/business/noteAndRepair/deleteStationRepair',
method: 'post',
data
})
}

View File

@ -0,0 +1,145 @@
import request from '@/utils/request'
// 查询巡检模板列表
export function GetTemList(data) {
return request({
url: '/business/autoInspection/selectInspectionTemplate',
method: 'post',
data
})
}
// 查询五遥表测点
export function GetColList(data) {
return request({
url: '/business/configure/configureTableData',
method: 'post',
data
})
}
// 新增巡检模板
export function AddTem(data) {
return request({
url: '/business/autoInspection/addInspectionTemplate',
method: 'post',
data
})
}
// 删除巡检模板
export function DelTem(data) {
return request({
url: '/business/autoInspection/deleteInspectionTemplate',
method: 'post',
data
})
}
// 巡检模板详情
export function DetailTem(data) {
return request({
url: '/business/autoInspection/selectInspectionTemplateDetail',
method: 'post',
data
})
}
// 巡检模板详情
export function UpdateTem(data) {
return request({
url: '/business/autoInspection/updateInspectionTemplate',
method: 'post',
data
})
}
// 查询巡检报告列表
export function InspectionList(data) {
return request({
url: '/business/autoInspection/selectInspectionReport',
method: 'post',
data
})
}
// 手动巡检
export function MannualInspection(data) {
return request({
url: '/business/autoInspection/mannualInspection',
method: 'post',
data
})
}
// 查询故障列表
export function GetSpectionFault(data) {
return request({
url: '/business/autoInspection/selectInspectionFault',
method: 'post',
data
})
}
// 巡检看板光字牌查询
export function GetSpectionPanel(data) {
return request({
url: '/business/autoInspection/selectInspectionPanel',
method: 'post',
data
})
}
// 获取巡检看板故障状态饼图
export function GetStatusChart(data) {
return request({
url: '/business/autoInspection/selectInspectionStatus',
method: 'post',
data
})
}
// 获取巡检看板故障类型柱状图
export function GetTypeChart(data) {
return request({
url: '/business/autoInspection/selectInspectionType',
method: 'post',
data
})
}
// 获取巡检看板故障数量趋势图
export function GetCountChart(data) {
return request({
url: '/business/autoInspection/selectInspectionCountCurve',
method: 'post',
data
})
}
// 删除巡检报告
export function DelReport(data) {
return request({
url: '/business/autoInspection/deleteInspectionReport',
method: 'post',
data
})
}
// 查询巡检相关未完成工单
export function GetInspectionList(data) {
return request({
url: '/flow/processFlowNew/queryInspectionList',
method: 'post',
data
})
}
// 上海MES文件查询
export function GetMesFileList(data) {
return request({
url: '/business/outerApi/selectMesFile',
method: 'post',
data
})
}

View File

@ -0,0 +1,37 @@
import request from '@/utils/request'
// 查询消息
export function GetMessage(data) {
return request({
url: '/business/messageInfo/selectMessageInfo',
method: 'post',
data
})
}
// 新增消息/修改消息
export function AddMessage(data) {
return request({
url: '/business/messageInfo/modifyMessageInfo',
method: 'post',
data
})
}
// 删除消息
export function DelMessage(data) {
return request({
url: '/business/messageInfo/deleteMessage',
method: 'post',
data
})
}
// 已读消息
export function UpdateMessageStatus(data) {
return request({
url: '/business/messageInfo/updateMessageReadStatus',
method: 'post',
data
})
}

View File

@ -0,0 +1,30 @@
import request from '@/utils/request'
/** 获取月发电量报表 */
export function GetTotal(data) {
return request({
url: '/business/earningsCalculate/getTotal',
method: 'post',
data
})
}
/** 查询一键重算 */
export function OneKeyComputation(data) {
return request({
url: '/business/earningsCalculate/oneKeyComputation',
method: 'post',
data
})
}
/** 确认一键重算 */
export function SureOneKeyComputation(data) {
return request({
url: '/business/earningsCalculate/getOneKeyComputationProgress',
method: 'post',
data
})
}

View File

@ -0,0 +1,65 @@
import request from '@/utils/request'
/** 查询所有电价曲线模板 */
export function GetElecPriceCurveAll(data) {
return request({
url: '/business/elecPriceCurve/all',
method: 'post',
data
})
}
/** 查询单个电价曲线模板 */
export function GetElecPriceCurveOne(data) {
return request({
url: '/business/elecPriceCurve/one',
method: 'post',
data
})
}
/** 新增电价曲线模板 */
export function AddElecPriceCurveOne(data) {
return request({
url: '/business/elecPriceCurve/add',
method: 'post',
data
})
}
/** 修改电价曲线模板 */
export function UpdateElecPriceCurveOne(data) {
return request({
url: '/business/elecPriceCurve/update',
method: 'post',
data
})
}
/** 修改电价曲线模板 */
export function DeletePriceCurveOne(data) {
return request({
url: '/business/elecPriceCurve/deleted',
method: 'post',
data
})
}
/** 批量删除电价曲线模板 */
export function DeletePriceCurve(data) {
return request({
url: '/business/elecPriceCurve/batchDelete',
method: 'post',
data
})
}
/** 模板查询电价 */
export function AddSearch(data) {
return request({
url: '/business/elecPriceCurve/addSearch',
method: 'post',
data
})
}

View File

@ -0,0 +1,52 @@
import request from '@/utils/request'
/** 查询所有代理电价区域-分页*/
export function GetIndustrialElecRegionPage(data) {
return request({
url: '/business/industrialElecRegion/page',
method: 'post',
data
})
}
/** 查询所有代理电价区域-列表*/
export function GetIndustrialElecRegionList(data) {
return request({
url: '/business/industrialElecRegion/list',
method: 'post',
data
})
}
/** 新增代理电价区域*/
export function AddIndustrialElecRegion(data) {
return request({
url: '/business/industrialElecRegion/add',
method: 'post',
data
})
}
/** 编辑代理电价区域*/
export function EditIndustrialElecRegion(data) {
return request({
url: '/business/industrialElecRegion/updateById',
method: 'post',
data
})
}
/** 删除代理电价区域*/
export function DeleteIndustrialElecRegion(data) {
return request({
url: '/business/industrialElecRegion/deleteById',
method: 'post',
data
})
}
/** 详情代理电价区域*/
export function GetIndustrialElecRegionDetail(id) {
return request({
url: `/business/industrialElecRegion/findById/${id}`,
method: 'get'
})
}

View File

@ -0,0 +1,84 @@
import request from '@/utils/request'
/** 查询所有代理电价-分页*/
export function GetIndustrialElecPricePage(data) {
return request({
url: '/business/industrialElecPrice/page',
method: 'post',
data
})
}
/** 新增代理电价*/
export function AddIndustrialElecPrice(data) {
return request({
url: '/business/industrialElecPrice/add',
method: 'post',
data
})
}
/** 编辑代理电价*/
export function EditIndustrialElecPrice(data) {
return request({
url: '/business/industrialElecPrice/updateById',
method: 'post',
data
})
}
/** 删除代理电价*/
export function DeleteIndustrialElecPrice(data) {
return request({
url: '/business/industrialElecPrice/deleteById',
method: 'post',
data
})
}
/** 详情代理电价*/
export function GetIndustrialElecPriceDetail(id) {
return request({
url: `/business/industrialElecPrice/findById/${id}`,
method: 'get'
})
}
/**
* 根据id查询峰谷电差价折线图/表格
* */
export function GetMaxPriceDiffById(id) {
return request({
url: `/business/industrialElecPrice/getMaxPriceDiffById/${id}`,
method: 'get'
})
}
/**
* 根据id查询分时电价折线图
* */
export function GetTouLineById(id) {
return request({
url: `/business/industrialElecPrice/getTouLineById/${id}`,
method: 'get'
})
}
/**
* 根据id查询分时电价历史数据图表/表格
* */
export function GetTouLineHistoryById(id) {
return request({
url: `/business/industrialElecPrice/getTouLineHistoryById/${id}`,
method: 'get'
})
}
/** 根据地址详情获取用电部制/分类、区域id获取电压等级、客户类型*/
export function GetAddressResolution(data) {
return request({
url: '/business/industrialElecRegion/addressResolution',
method: 'post',
params: data
})
}

98
src/api/screen/index.js Normal file
View File

@ -0,0 +1,98 @@
import request from '@/utils/request'
// 获取系统转换率
export function GetEfficiencyDate(data) {
return request({
url: '/business/IargeScreenShow/efficiencyDate',
method: 'post',
data
})
}
// 获取电站区域分布
export function GetRegionalDistribution(data) {
return request({
url: '/business/IargeScreenShow/regionalDistribution',
method: 'post',
data
})
}
// 电站收益率排名
export function GetRegionalIncomeDate(data) {
return request({
url: '/business/IargeScreenShow/incomeDate',
method: 'post',
data
})
}
// 获取电站信息
export function GetStationInfo(data) {
return request({
url: '/business/IargeScreenShow/stationInfo',
method: 'post',
data
})
}
// 日充日放对比图
export function GetChargeDailyChart(data) {
return request({
url: '/business/IargeScreenShow/chargeDailyChart',
method: 'post',
data
})
}
// 总览
export function GetOverviewData(data) {
return request({
url: '/business/IargeScreenShow/overviewData',
method: 'post',
data
})
}
// 天气
export function GetNewWeather(data) {
return request({
url: '/business/IargeScreenShow/newWeather',
method: 'post',
data
})
}
export function GetCapacity(data) {
return request({
url: '/business/IargeScreenShow/getCapacity',
method: 'post',
data
})
}
export function GetIncomeCurve(data) {
return request({
url: '/business/IargeScreenShow/getIncomeCurve',
method: 'post',
data
})
}
export function GetEnergySaving(data) {
return request({
url: '/business/IargeScreenShow/getEnergySaving',
method: 'post',
data
})
}
// 新加坡柴发
export function GetElecData(data) {
return request({
url: '/business/singapore/getElecData',
method: 'post',
data
})
}

View File

@ -0,0 +1,96 @@
import request from '@/utils/request'
// 中自根据电站Id查询所属组织机构返回
export function GetDeptIdByStationId(data) {
return request({
url: '/business/IargeScreenShow/getByStationId',
method: 'post',
data
})
}
// 获取系统转换率
export function GetEfficiencyDate(data) {
return request({
url: '/business/IargeScreenShow/getZhongZiEfficiencyDate',
method: 'post',
data
})
}
// 获取电站区域分布
export function GetRegionalDistribution(data) {
return request({
url: '/business/IargeScreenShow/getZhongZiDistribution',
method: 'post',
data
})
}
// 电站收益率排名
export function GetRegionalIncomeDate(data) {
return request({
url: '/business/IargeScreenShow/getZhongZiIncomeList',
method: 'post',
data
})
}
// 获取电站信息
export function GetStationInfo(data) {
return request({
url: '/business/IargeScreenShow/getZhongZiStationInfo',
method: 'post',
data
})
}
// 日充日放对比图
export function GetChargeDailyChart(data) {
return request({
url: '/business/IargeScreenShow/getZhongZiChargeDailyChart',
method: 'post',
data
})
}
// 总览
export function GetOverviewData(data) {
return request({
url: '/business/IargeScreenShow/getZhongZiOverviewData',
method: 'post',
data
})
}
// 天气
export function GetNewWeather(data) {
return request({
url: '/business/IargeScreenShow/newWeather',
method: 'post',
data
})
}
// 装机容量
export function GetCapacity(data) {
return request({
url: '/business/IargeScreenShow/getZhongZiCapacity',
method: 'post',
data
})
}
// 收益曲线
export function GetIncomeCurve(data) {
return request({
url: '/business/IargeScreenShow/getZhongZiIncomeCurve',
method: 'post',
data
})
}
// 节能减排
export function GetEnergySaving(data) {
return request({
url: '/business/IargeScreenShow/getZhongZiEnergySaving',
method: 'post',
data
})
}

27
src/api/station/device.js Normal file
View File

@ -0,0 +1,27 @@
import request from '@/utils/request'
// 获取设备列表
export function GetDeviceList(data) {
return request({
url: '/business/device/page',
method: 'post',
data
})
}
// 修改充电桩
export function UpdateChargePile(data) {
return request({
url: '/business/chargePile/updateChargePile',
method: 'post',
data
})
}
// 新增设备模型关联字段接口
export function GetDeviceTypeByStation(data) {
return request({
url: '/business/deviceConfig/queryListByStation',
method: 'post',
data
})
}

View File

@ -0,0 +1,80 @@
import request from '@/utils/request'
// 获取电站列表
export function GetStationlist(data) {
return request({
url: '/business/station/page',
method: 'post',
data
})
}
// 获取电站类型数据
export function GetStationType() {
return request({
url: '/business/station',
method: 'get'
})
}
// 电站新增
export function AddStation(data) {
return request({
url: '/business/station/add',
method: 'post',
data
})
}
// 更新电站
export function UpdateStation(data) {
return request({
url: '/business/station/update',
method: 'put',
data
})
}
// 删除电站
export function DeleteStation(data) {
return request({
url: '/business/station/id',
method: 'delete',
data: data
})
}
// 根据id查询电站
export function GetStationById(id) {
return request({
url: '/business/station/' + id,
method: 'post'
})
}
// 查询所有的电站
export function getProvinceStation(data) {
return request({
url: '/business/station/nationStation',
method: 'post',
data
})
}
// 配置首页
export function dashboardSave(data) {
return request({
url: '/business/homeConfig/add',
method: 'post',
data
})
}
// 获取配置首页信息
export function getDashboard(id) {
return request({
url: `/business/homeConfig/${id}`,
method: 'post'
})
}
export function GetLogo(id) {
return request({
url: `business/station/getLogo/${id}`,
method: 'post'
})
}

View File

@ -0,0 +1,37 @@
import request from '@/utils/request'
// 查询一键顺控配置值
export function GetControlList(data) {
return request({
url: '/business/oneClickSequentialControl/groupList',
method: 'post',
data
})
}
// 新增一键顺控配置值
export function AddControl(data) {
return request({
url: '/business/oneClickSequentialControl/add',
method: 'post',
data
})
}
// 删除一键顺控配置值
export function DeleteControlCol(data) {
return request({
url: '/business/oneClickSequentialControl/delete',
method: 'post',
data
})
}
// 更新一键顺控配置值
export function UpdataControlCol(data) {
return request({
url: '/business/oneClickSequentialControl/update',
method: 'post',
data
})
}

View File

@ -0,0 +1,55 @@
import request from '@/utils/request'
// 新增电价曲线模板
export function addCurveTemp(data) {
return request({
url: '/business/elecPriceCurve/add',
method: 'post',
data
})
}
// 批量删除电价曲线模板
export function batchDeleteCurveTemp(data) {
return request({
url: '/business/elecPriceCurve/batchDelete',
method: 'post',
data
})
}
// 查询所有电价曲线模板
export function getAllCurveTemp(data) {
return request({
url: '/business/elecPriceCurve/all',
method: 'post',
data
})
}
// 删除电价曲线模板
export function deletedCurveTemp(data) {
return request({
url: '/business/elecPriceCurve/deleted',
method: 'post',
data
})
}
// 查询单个电价曲线模板
export function getOneCurveTemp(data) {
return request({
url: '/business/elecPriceCurve/one',
method: 'post',
data
})
}
// 修改电价曲线模板
export function updateCurveTemp(data) {
return request({
url: '/business/elecPriceCurve/update',
method: 'post',
data
})
}

View File

@ -0,0 +1,19 @@
import request from '@/utils/request'
// 获取下发历史记录
export function GetPlanCurveOperationList(data) {
return request({
url: '/business/planningIssue/getPlanCurveOperationList',
method: 'post',
data
})
}
// 获取下发历史记录曲线
export function GetPlanningCurveHistory(data) {
return request({
url: '/business/planningIssue/getPlanningCurveHistory',
method: 'post',
data
})
}

View File

@ -0,0 +1,64 @@
import request from '@/utils/request'
// 查询昨日负荷
export function GetSysLoadList(data) {
return request({
url: '/business/customPlan/getSysLoadList',
method: 'post',
data
})
}
// 保存上下限
export function SaveUpperAndLower(data) {
return request({
url: '/business/customPlan/saveUpperAndLower',
method: 'post',
data
})
}
// 获取计划曲线的模板id
export function GetTemId(data) {
return request({
url: '/business/customPlan/getTemId',
method: 'post',
data
})
}
// 获取计划曲线
export function GetPlanCurve(data) {
return request({
url: '/business/planning/planningCurveTemplateDetail',
method: 'post',
data
})
}
// 生成计划曲线
export function GeneratePlanCurve(data) {
return request({
url: '/business/customPlan/generatePlanCurve',
method: 'post',
data
})
}
// 获取工况
export function GetWorkConditionConfig(data) {
return request({
url: '/business/customPlan/getWorkConditionConfig',
method: 'post',
data
})
}
// 获取Soc
export function GetUpperAndLower(data) {
return request({
url: '/business/customPlan/getUpperAndLower',
method: 'post',
data
})
}

View File

@ -0,0 +1,64 @@
import request from '@/utils/request'
// 策略列表查询
export function getPlanningPolicys(data) {
return request({
url: '/business/policy/getPlanningPolicys',
method: 'post',
data
})
}
// 策略详情查询(详情按钮、编辑)
export function getPlanningPolicyDetail4Modify(data) {
return request({
url: '/business/policy/getPlanningPolicyDetail4Modify',
method: 'post',
data
})
}
// 新增策略
export function addPlanningPolicy(data) {
return request({
url: '/business/policy/addPlanningPolicy',
method: 'post',
data
})
}
// 编辑策略
export function modifyPlanningPolicy(data) {
return request({
url: '/business/policy/modifyPlanningPolicy',
method: 'post',
data
})
}
// 删除策略
export function deletePlanningPolicy(data) {
return request({
url: '/business/policy/deletePlanningPolicy',
method: 'post',
data
})
}
// 查询策略优先级列表
export function queryPolicyPriority(data) {
return request({
url: '/business/policy/queryPolicyPriority',
method: 'post',
data
})
}
// 查询策略类型列表
export function queryPolicyTypes(data) {
return request({
url: '/business/policy/queryPolicyTypes',
method: 'post',
data
})
}

View File

@ -0,0 +1,47 @@
import request from '@/utils/request'
// 查询下发设备接口
export function getIssueDevices(data) {
return request({
url: '/business/planningIssue/getIssueDevices',
method: 'post',
data
})
}
// 查询计划曲线模板接口
export function getTemplate(data) {
return request({
url: '/business/planningIssue/getTemplate',
method: 'post',
data
})
}
// 查询下发模型数据取出data数据发给下发接口
export function getIssueDatas(data) {
return request({
url: '/business/planningIssue/getIssueDatas',
method: 'post',
data
})
}
// 查看设备下发状态
export function queryIssueStatus(data) {
return request({
url: '/business/planningIssue/queryIssueStatus',
method: 'post',
data
})
}
// 查看设备下发状态
export function insertIssueStatus(data) {
return request({
url: '/business/planningIssue/insertIssueStatus',
method: 'post',
data
})
}

View File

@ -0,0 +1,73 @@
import request from '@/utils/request'
// 策略列表查询
export function GetPlanningTacticsList(data) {
return request({
url: '/business/planningTactics/list',
method: 'post',
data
})
}
// 策略查看详情
export function GetPlanningTacticsDetail(data) {
return request({
url: '/business/planningTactics/details',
method: 'post',
data
})
}
// 新增 策略
export function AddPlanningTactics(data) {
return request({
url: '/business/planningTactics/add',
method: 'post',
data
})
}
// 修改 策略
export function ModifyPlanningTactics(data) {
return request({
url: '/business/planningTactics/modify',
method: 'post',
data
})
}
// 删除 策略
export function DeletePlanningTactics(data) {
return request({
url: '/business/planningTactics/delete',
method: 'post',
data
})
}
// 查询下拉框数据
export function GetPlanningCurveTemplates(data) {
return request({
url: '/business/planningTactics/getPlanningCurveTemplates',
method: 'post',
data
})
}
// 下发
export function GetPlanCurveIssueData(data) {
return request({
url: '/business/planningIssue/getPlanCurveIssueData',
method: 'post',
data
})
}
// 下发
export function PlanningCurveFile(data) {
return request({
url: '/business/planning/planningCurveFile',
method: 'post',
data
})
}

View File

@ -0,0 +1,55 @@
import request from '@/utils/request'
// 计划曲线模板列表查询
export function getPlanningCurveTemplates(data) {
return request({
url: '/business/planning/getPlanningCurveTemplates',
method: 'post',
data
})
}
// 新增模板
export function addPlanningCurveTemplate(data) {
return request({
url: '/business/planning/addPlanningCurveTemplate',
method: 'post',
data
})
}
// 查看详情
export function lookPlanningCurveTemplateDetail(data) {
return request({
url: '/business/planning/planningCurveTemplateDetail',
method: 'post',
data
})
}
// 编辑模板
export function modifyPlanningCurveTemplate(data) {
return request({
url: '/business/planning/modifyPlanningCurveTemplate',
method: 'post',
data
})
}
// 删除模板
export function deletePlanningCurveTemplates(data) {
return request({
url: '/business/planning/deletePlanningCurveTemplates',
method: 'post',
data
})
}
// 查看详情
export function lookPlanningCurveTemplateChartData(data) {
return request({
url: '/business/planning/planningCurveTemplateChartData',
method: 'post',
data
})
}

View File

@ -0,0 +1,73 @@
import request from '@/utils/request'
// 一键下发
export function OneKeySend(data) {
return request({
url: '/business/tabSort/oneKeySend',
method: 'post',
data
})
}
// 一键顺控下发
export function OneKeyControl(data) {
return request({
url: '/business/tabSort/oneKeyControl',
method: 'post',
data
})
}
// 一键顺控下发
export function GetTabModel(data) {
return request({
url: '/business/tabSort/getTabModel',
method: 'post',
data
})
}
// 电芯电压/温度分布
export function GetVolTemData(data) {
return request({
url: `/business/strategyOverview/cellVoltageAndTemperatureNum`,
method: 'post',
data
})
}
// 获取实时告警数据
export function GetAlarmList(data) {
return request({
url: '/flow/event/page',
method: 'post',
data
})
}
// 获取运行统计
export function GetOperatingStatistic(data) {
return request({
url: '/business/strategyOverview/operatingStatistic2',
method: 'post',
data
})
}
// 获取默认值
export function GetRealTimeDefaultValue(data) {
return request({
url: '/business/strategyOverview/defaultValue',
method: 'post',
data
})
}
// 获取实时曲线模板
export function GetTemList(data) {
return request({
url: '/business/hisCurveRelate/pageSelectAll',
method: 'post',
data
})
}

View File

@ -0,0 +1,37 @@
import request from '@/utils/request'
// 查询七天品质点
export function GetQualityList(data) {
return request({
url: '/business/substitutionValue/getQualityList',
method: 'post',
data
})
}
// 查询品质点详情
export function DetailQualityList(data) {
return request({
url: '/business/substitutionValue/selectSubstitutionList',
method: 'post',
data
})
}
// 批量保存
export function AddQualityList(data) {
return request({
url: '/business/substitutionValue/addList',
method: 'post',
data
})
}
// 修改历史
export function SaveHistory(data) {
return request({
url: '/business/point/modifyHistoryData',
method: 'post',
data
})
}

View File

@ -0,0 +1,277 @@
import request from '@/utils/request'
// 策略查询--按日
export function QueryPolicyConfigDay(data) {
return request({
url: '/business/peakShaving/queryPolicyConifgDay',
method: 'post',
data
})
}
// 策略查询--按月
export function QueryPolicyConfigMonth(data) {
return request({
url: '/business/peakShaving/queryPolicyConifgMonth',
method: 'post',
data
})
}
// 查询方案下拉框
export function QueryPlanList(data) {
return request({
url: '/business/peakShaving/queryPlanList',
method: 'post',
data
})
}
// 删除方案
export function DeletePlan(data) {
return request({
url: '/business/peakShaving/deletePlan',
method: 'post',
data
})
}
// 月下拉框查询接口(计划曲线模板+版本列表整合 用type类型区分)
export function QueryPeakPolicyList(data) {
return request({
url: '/business/peakShaving/queryPeakPolicyList',
method: 'post',
data
})
}
// 策略配置
export function ConfigPolicy(data) {
return request({
url: '/business/peakShaving/policyConfig',
method: 'post',
data
})
}
// 策略配置
export function SendTemplateFile(data) {
return request({
url: '/business/peakShaving/sendTemplateFile',
method: 'post',
data
})
}
// 策略配置
export function GenerateNewPlan(data) {
return request({
url: '/business/peakShaving/generateNewPlan',
method: 'post',
data
})
}
// 查询节假日
export function QueryHolidayList(data) {
return request({
url: '/business/peakShaving/queryHolidayList',
method: 'post',
data
})
}
// 模板查询
export function GetStrategyTemp(data) {
return request({
url: '/business/peakShaving/queryTemplates',
method: 'post',
data
})
}
// 模板详情
export function GetTempDetail(data) {
return request({
url: '/business/peakShaving/queryTemplateDetail',
method: 'post',
data
})
}
// 模板曲线
export function GetTempCurves(data) {
return request({
url: '/business/peakShaving/queryTemplateCurves',
method: 'post',
data
})
}
// 删除策略模板
export function DeleteTemplate(data) {
return request({
url: '/business/peakShaving/delete',
method: 'post',
data
})
}
// 编辑策略模板
export function ModifyTemplate(data) {
return request({
url: '/business/peakShaving/modify',
method: 'post',
data
})
}
// 新增策略模板
export function AddTemplate(data) {
return request({
url: '/business/peakShaving/add',
method: 'post',
data
})
}
// 单页面下发
export function ToOneTabSend(data) {
return request({
url: '/business/tabSort/oneTabSend',
method: 'post',
data
})
}
// 查看版本列表
export function GetTempList(params) {
return request({
url: '/business/tabSortWeb/queryVersion',
method: 'post',
params
})
}
// 预览版本
export function ShowVersion(params) {
return request({
url: '/business/tabSortWeb/showVersion',
method: 'post',
data: params
})
}
// 切换版本
export function ChangeTamp(data) {
return request({
url: '/business/tabSortWeb/toggleVersion',
method: 'post',
data
})
}
// 页签
// 查询页签列表
export function QueryTabSortList(params) {
return request({
url: '/business/tabSortWeb/queryTabSortList',
method: 'post',
params
})
}
// 新增页签内容
export function AddTabSort(data) {
return request({
url: '/business/tabSortWeb/addTabSort',
method: 'post',
data
})
}
// 删除页签内容
export function DeleteTabSort(params) {
return request({
url: '/business/tabSortWeb/deleteTabSort',
method: 'post',
params
})
}
// 编辑页签内容
export function EditTabSort(data) {
return request({
url: '/business/tabSortWeb/editTabSort',
method: 'post',
data
})
}
// 标签
export function QueryTabTagList(params) {
return request({
url: '/business/tabSortWeb/queryTabTagList',
method: 'post',
params
})
}
export function OperateTabTag(data) {
return request({
url: '/business/tabSortWeb/operateTabTag',
method: 'post',
data
})
}
export function GetPointList(data) {
return request({
url: '/business/point/getPointList',
method: 'post',
data
})
}
// 模板查询
export function GetStrategyTempTable(data) {
return request({
url: '/business/peakShaving/queryTableTemplates',
method: 'post',
data
})
}
// 工作模式
export function SendPlanControl(data) {
return request({
url: `/business/tabSort/sendPlanControl`,
method: 'post',
data
})
}
// 工作模式进度
export function GetprogressBar(data) {
return request({
url: `/media/orderSend/progressBar`,
method: 'post',
data
})
}
// 设置投退压板
export function SetState(id, tabId) {
return request({
url: `/business/tabSortWeb/chooseState?tagId=${id}&tabId=${tabId}`,
method: 'post'
})
}
// 策略总览-获取用户设置值
export function GetUserSet() {
return request({
url: `/business/strategyOverview/getUserSet`,
method: 'post'
})
}
// 策略总览-保存用户设置值
export function SetUserSet(data) {
return request({
url: `/business/strategyOverview/setUserSet`,
method: 'post',
data
})
}

View File

@ -0,0 +1,74 @@
import request from '@/utils/request'
// 根据id查询逆变器
export function GetPointCurve(data) {
return request({
url: '/business/point/pointCurve',
method: 'post',
data
})
}
// 查询列表数据
export function GetPointTable(data) {
return request({
url: '/business/point/pointDataShowList',
method: 'post',
data,
timeout: 1000 * 60 * 10
})
}
// 根据设备查询点表
export function GetQueryPoint(data) {
return request({
url: '/business/point/queryPoint',
method: 'post',
data
})
}
// 根据设备查询点表
export function GetQueryPointList(data) {
return request({
url: '/business/point/pointList',
method: 'post',
data
})
}
// 查询虚拟设备点表
export function GetVirtualQueryPoint(data) {
return request({
url: '/business/point/queryVirtualPoint',
method: 'post',
data
})
}
// 新增历史曲线字典模板
export function TemplateAdd(data) {
return request({
url: '/business/hisCurveRelate/add',
method: 'post',
data
})
}
// 查询全部模板数据
export function GetPageSelectAll(data) {
return request({
url: '/business/hisCurveRelate/pageSelectAll',
method: 'post',
data
})
}
// 删除模板
export function DeleteTemplate(data) {
return request({
url: '/business/hisCurveRelate/delete',
method: 'post',
data
})
}

View File

@ -0,0 +1,19 @@
import request from '@/utils/request'
// 查询外侧充放电
export function GetElecMeterList(data) {
return request({
url: '/business/openStation/getElecMeterList',
method: 'post',
data
})
}
// 查询详情充放电
export function GetElecMeterDetailList(data) {
return request({
url: '/business/openStation/getElecMeterDetailList',
method: 'post',
data
})
}

View File

@ -0,0 +1,36 @@
import request from '@/utils/request'
// 充放电数据
export function GetChargingAndDischarg(data) {
return request({
url: '/business/revenueOverview/chargingAndDischargingData',
method: 'post',
data
})
}
// 投资收益
export function GetIcone(data) {
return request({
url: '/business/revenueOverview/incomeFromInvestment',
method: 'post',
data
})
}
// 电价曲线
export function GetelecPrice(data) {
return request({
url: `/business/revenueOverview/elecPrice?stationId=${data}`,
method: 'get'
})
}
// 收益曲线
export function GetRevenueChart(data) {
return request({
url: '/business/revenueOverview/revenue',
method: 'post',
data
})
}

View File

@ -0,0 +1,79 @@
import request from '@/utils/request'
// 查询电站下的间隔
export function GetInterval(data) {
return request({
url: '/business/device/getInterval',
method: 'post',
data
})
}
// 查询电站下的间隔
export function GetTreeVirtualDevices(data) {
return request({
url: '/business/device/treeVirtualDevices',
method: 'post',
data
})
}
// 查询电站下的间隔(隐藏虚拟设备)
export function GetNewTreeVirtualDevices(data) {
return request({
url: '/business/device/homePageTreeDevices',
method: 'post',
data
})
}
// 充放电曲线,近一年,按天
export function GetChargeCurve(data) {
return request({
url: '/business/station/chargeCurve',
method: 'post',
data
})
}
// 功率曲线
export function GetPowerCurve(data) {
return request({
url: '/business/station/powerCurve',
method: 'post',
data
})
}
// 左侧主面板
export function GetLeftPanel(data) {
return request({
url: '/business/station/leftPanel',
method: 'post',
data
})
}
// 温度电压正太分布图
export function getTempC(data) {
return request({
url: '/business/station/temperatureVoltageData',
method: 'post',
data
})
}
// 温度电压正太分布图
export function getTemperatureHumidityCurve(data) {
return request({
url: '/business/station/temperatureHumidityCurve',
method: 'post',
data
})
}
// 温度电压正太分布图
export function GetAuxPowerCurve(data) {
return request({
url: '/business/station/auxPowerCurve',
method: 'post',
data
})
}

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