master
zhaoqiang 2024-07-14 01:01:41 +08:00
commit 8a3e38fb39
742 changed files with 283318 additions and 0 deletions

1
.env Normal file
View File

@ -0,0 +1 @@
VITE_GLOB_APP_TITLE = VVTS

2
.env.deveployment Normal file
View File

@ -0,0 +1,2 @@
VITE_GLOB_APP_TITLE = VVTS
VITE_APP_PATHNAME = '/dev/'

2
.env.production Normal file
View File

@ -0,0 +1,2 @@
VITE_GLOB_API_URL=/
VITE_APP_PATHNAME = '/dev/'

17
.eslintrc.js Normal file
View File

@ -0,0 +1,17 @@
module.exports = {
root: true,
parserOptions: {
sourceType: 'module'
},
parser: 'vue-eslint-parser',
extends: ['plugin:vue/vue3-essential', 'plugin:vue/vue3-strongly-recommended', 'plugin:vue/vue3-recommended'],
env: {
browser: true,
node: true,
es6: true
},
rules: {
'no-console': 'off',
'comma-dangle': [2, 'never'] //禁止使用拖尾逗号
}
}

24
.gitignore vendored Normal file
View File

@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

3
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"recommendations": ["Vue.volar"]
}

9
README.md Normal file
View File

@ -0,0 +1,9 @@
# Vue 3 + TypeScript + Vite
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
## Recommended Setup
- [VS Code](https://code.visualstudio.com/) + [Vue - Official](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (previously Volar) and disable Vetur
- Use [vue-tsc](https://github.com/vuejs/language-tools/tree/master/packages/tsc) for performing the same type checking from the command line, or for generating d.ts files for SFCs.

9
auto-imports.d.ts vendored Normal file
View File

@ -0,0 +1,9 @@
/* eslint-disable */
/* prettier-ignore */
// @ts-nocheck
// noinspection JSUnusedGlobalSymbols
// Generated by unplugin-auto-import
export {}
declare global {
}

34
components.d.ts vendored Normal file
View File

@ -0,0 +1,34 @@
/* eslint-disable */
// @ts-nocheck
// Generated by unplugin-vue-components
// Read more: https://github.com/vuejs/core/pull/3399
export {}
/* prettier-ignore */
declare module 'vue' {
export interface GlobalComponents {
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
ElButton: typeof import('element-plus/es')['ElButton']
ElCarousel: typeof import('element-plus/es')['ElCarousel']
ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem']
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
ElForm: typeof import('element-plus/es')['ElForm']
ElFormItem: typeof import('element-plus/es')['ElFormItem']
ElInput: typeof import('element-plus/es')['ElInput']
ElMenu: typeof import('element-plus/es')['ElMenu']
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
ElOption: typeof import('element-plus/es')['ElOption']
ElPagination: typeof import('element-plus/es')['ElPagination']
ElPopover: typeof import('element-plus/es')['ElPopover']
ElRadio: typeof import('element-plus/es')['ElRadio']
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
ElSelect: typeof import('element-plus/es')['ElSelect']
ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
ElTable: typeof import('element-plus/es')['ElTable']
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
ElTimeSelect: typeof import('element-plus/es')['ElTimeSelect']
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
}
}

0
favicon.ico Normal file
View File

16
index.html Normal file
View File

@ -0,0 +1,16 @@
<!doctype html>
<head>
<meta charset="UTF-8" />
<!-- <link rel="icon" href="/favicon.ico" />-->
<!-- 修改项目logo -->
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title><%= VITE_GLOB_APP_TITLE %></title>
<!-- <title>全域能量管控平台</title> -->
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

4020
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

43
package.json Normal file
View File

@ -0,0 +1,43 @@
{
"name": "wide-area_energy_management",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"builds": "vite build",
"build": "vue-tsc && vite build",
"preview": "vite preview"
},
"dependencies": {
"@element-plus/icons-vue": "^2.3.1",
"@svgdotjs/svg.panzoom.js": "^2.1.2",
"animate.css": "^4.1.1",
"axios": "^1.7.2",
"echarts": "^5.5.0",
"echarts-gl": "^2.0.9",
"element-plus": "^2.7.3",
"pinia": "^2.1.7",
"sm-crypto": "^0.3.13",
"vue": "^3.4.21",
"vue-router": "^4.3.2"
},
"devDependencies": {
"@nuxtjs/style-resources": "^1.2.2",
"@types/node": "^20.14.2",
"@types/sm-crypto": "^0.3.4",
"@vitejs/plugin-vue": "^5.0.4",
"@vueuse/core": "^10.10.0",
"eslint": "^9.3.0",
"eslint-plugin-vue": "^9.26.0",
"resize-observer-polyfill": "^1.5.1",
"rollup-plugin-visualizer": "^5.12.0",
"sass": "^1.77.2",
"sass-loader": "^14.2.1",
"typescript": "^5.2.2",
"unplugin-auto-import": "^0.17.6",
"unplugin-vue-components": "^0.27.0",
"vite": "^5.2.0",
"vue-tsc": "^2.0.6"
}
}

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
public/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

25
public/manifest.json Normal file
View File

@ -0,0 +1,25 @@
{
"short_name": "VVTS",
"name": "VVTS Framework",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}

3
public/robots.txt Normal file
View File

@ -0,0 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:

1
public/vite.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

244
src/App.vue Normal file
View File

@ -0,0 +1,244 @@
<!--
- vvts, is framework use vue3 + vite4 + typescript.
- Copyright (C) 2023 guoqing22
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<script setup lang="ts">
import { useTitle } from "@vueuse/core";
import { useRouter } from "vue-router";
import { unref, watch } from "vue";
import { sm2 } from "sm-crypto";
useT();
function useT() {
const title = useTitle();
const { currentRoute } = useRouter();
// const publick =
// "04B10A721F04FAAD2E41D705EEE4FB35169B6FF3A7B84176F1FE885B4FF9ACA709D5D92FAB96CC2B0AB050B35493E594CA38B78B6AC1D83415CA8CA534239A384B";
var keyPairHex = sm2.generateKeyPairHex();
let ss = sm2.doEncrypt(
"hello world!",
"041c1d290f4411c7095e8d094fb7b246470097e93e4fe792c113d9240542f3d5edf604d8b0165a3286d4be61fff89a08267deea818c79db395d48f9c6c25b6c3e9",
0
);
let s = sm2.doDecrypt(
"45ced0cf0bca9243211c7810e7a8ee0d726dfec7daa33cd645fd062ff19251ea755754d343bc76ddca60d8bb139e6341f61b5f929a298a5201924e8f1d9d06f47970dc20bf58e7a5291f67e96389c15ec01c6a18394e8535b0d637098be4e50ed0773d18691a5e2ece24da",
"30ac99feeb44aba084c064ebebda80292fd8c3f48cfcbab0edc7db9a87046d43",
0
);
title.value = currentRoute.value.meta.title as string;
watch(
[() => currentRoute.value.path],
() => {
const route = unref(currentRoute);
const globalTitle = "全域能量管控平台";
const currentTitle = route?.meta?.title as string;
title.value = currentTitle
? ` ${currentTitle} - ${globalTitle} `
: `${globalTitle}`;
},
{ immediate: true }
);
}
</script>
<template>
<router-view />
</template>
<style lang="scss">
* {
margin: 0px;
padding: 0px;
}
//
.el-popper.customDatePicker,
.customPicker {
border: 1px solid #cffffc;
color: #ffffff;
span,
th,
button {
color: #ffffff;
}
.is-plain {
span {
color: #409af7;
}
}
.el-input__wrapper {
background: transparent;
.el-input__inner {
color: #c4c4c4;
}
}
.disabled {
.el-date-table-cell {
background-color: transparent !important;
span {
color: grey;
}
}
}
.el-picker-panel__footer {
.el-button:nth-child(1):hover {
background: transparent;
span {
color: #409af7;
}
}
.el-button:nth-child(2) {
//background: url('../../assets/images/mianpagev3/right/wwbtn.png');
background-repeat: no-repeat;
background-size: 100% 100%;
border: none;
span {
font-size: changeHeight(20);
color: #ffffff;
}
}
}
//
.el-time-spinner__item {
color: #ffffff;
}
.el-time-spinner__item.is-active:not(.is-disabled) {
color: #409eff;
}
.el-select-dropdown__item.is-hovering {
background-color: rgba(0, 0, 0, 0.3) !important;
}
.el-time-spinner__item:hover:not(.is-disabled):not(.is-active) {
background-color: rgba(0, 0, 0, 0.3);
}
.el-time-panel__footer {
.confirm {
color: #fff;
}
}
}
.customDatePicker,
.customPicker,
.el-picker-panel,
.el-picker-panel__footer,
.customSelect,
.customSelectAdjust {
background: rgba(0, 0, 0, 0.05) !important;
backdrop-filter: blur(15px) !important;
}
//
.customSelect {
.el-popper__arrow {
display: none;
}
ul {
margin: 0 !important;
li {
font-size: 2rem;
border-bottom: 1px solid #fff !important;
height: 3rem;
line-height: 3rem;
}
}
.el-select-dropdown__item {
color: #fff;
}
.el-select-dropdown__item.selected {
color: #6ffbf7 !important;
}
.el-popper.is-light {
background: transparent !important;
}
li:last-child {
border: none !important;
}
.el-select-dropdown__item {
color: #6ffbf7 !important;
}
.el-select-dropdown__item.hover,
.el-select-dropdown__item:hover {
background: transparent !important;
}
.el-select-dropdown__item.is-selected,
.el-select-dropdown__item.is-hovering,
.el-select__dropdown__item.is-hovering {
background-color: transparent !important;
}
}
// Adjust
.customSelectAdjust {
.el-select-dropdown__item {
color: #fff;
}
.el-select-dropdown__item.hover,
.el-select-dropdown__item:hover {
background: transparent;
}
.el-select-dropdown__item.selected {
color: #50ffff;
}
}
//
.elDatePicker.el-picker-panel {
color: #fff;//1
background: #002450;//
border: 1px solid #1384b4;//
.el-picker-panel__icon-btn {//2
color: #ffffff;
}
.el-date-picker__header-label{//3
color: #ffffff;
}
.el-date-table th {//4
color:#ffffff;
}
}
</style>

49
src/api/LowVPage.ts Normal file
View File

@ -0,0 +1,49 @@
import request from "@/utils/http/request";
interface feederLoadRateApi {
measPointId: string,
startTime: string,
endTime: string
}
interface detailApiType{
measPointId: string,
psrId: string
}
// 低压柔性页面
// 获取变电站数据
export function listApi(data: feederLoadRateApi) {
return request({
url: '/model/lowVoltageFlex/list',
method: 'POST',
data
})
}
// 获取变电站装置状态数据
export function runStatusApi(data: feederLoadRateApi) {
return request({
url: '/model/lowVoltageFlex/runStatus',
method: 'POST',
data
})
}
// 获取变电站运行曲线数据
export function runChartApi(data: feederLoadRateApi) {
return request({
url: '/model/lowVoltageFlex/runChart',
method: 'POST',
data
})
}
// 获取变电站详情数据
export function detailApi(data: detailApiType) {
return request({
url: '/model/lowVoltageFlex/detail',
method: 'POST',
data
})
}

27
src/api/Osp/svgApi.ts Normal file
View File

@ -0,0 +1,27 @@
import request from "@/utils/http/request";
// 首页 资源总览
// 源-网-荷-储”相关统计信息服务
interface idInfo {
id?: string,
}
export function svgdApi(data: any) {
return request({
// url: "http://10.120.75.248:19081/algoService/feederPowerFlowResult",
// url: "http://127.0.0.1:19081/algoService/feederPowerFlowResult",
url: "/api-svg/algoService/feederPowerFlowResult",
method: "POST",
data,
});
}
export function buttyApi(data: any) {
return request({
// url: "http://10.120.75.248:19081/algoService/feederPowerFlowResult",
// url: "http://127.0.0.1:19081/algoService/feederPowerFlowResult",
url: "/api/wwpm/biz/v1/batty_unit/power_curve",
method: "POST",
data,
});
}

209
src/api/PVssApi.ts Normal file
View File

@ -0,0 +1,209 @@
import request from "@/utils/http/request";
interface idInfo {
id?: string,
areaCode?: string,
codeType?: string
}
//Left
// 光伏专题-建设分析-获取用户数、光伏容量
export function countUser(data: idInfo) {
return request({
url: '/model/adjust/countPVUserCapacity',
method: 'POST',
data
})
}
// 光伏专题-建设分析-获取光伏电压分布
export function countBelongType(data: idInfo) {
return request({
url: '/model/adjust/voltageProfile',
method: 'POST',
data
})
}
// 光伏专题-建设分析-获取光伏渗透率
export function countPermeability(data: idInfo) {
return request({
url: '/model/adjust/PVPenetration',
method: 'POST',
data
})
}
// 光伏专题-建设分析-获取累计减排
export function countElecGeneration(data: idInfo) {
return request({
url: '/model/adjust/PVGrandTotal',
method: 'POST',
data
})
}
// 光伏专题-用户分析-获取消纳分布
export function countUseDistribute(data: idInfo) {
return request({
url: '/model/adjust/absorptiveProfile',
method: 'POST',
data
})
}
// 光伏专题-用户分析-获取消纳分布
export function PVRegulaControl(data: idInfo) {
return request({
url: '/model/adjust/PVRegulaControl',
method: 'POST',
data
})
}
// Right
// 运行监测-光伏发电量
export function PVTodayGrandTotal(data: idInfo) {
return request({
url: '/model/adjust/PVTodayGrandTotal',
method: 'POST',
data
})
}
// 运行监测-光伏有功功率
export function PVTodayTotW(data: idInfo) {
return request({
url: '/model/adjust/PVTodayTotW',
method: 'POST',
data
})
}
// 运行监测-光伏无功功率
export function PVTodayTotVar(data: idInfo) {
return request({
url: '/model/adjust/PVTodayTotVar',
method: 'POST',
data
})
}
// 运行分析-光伏发电量
export function grandTotalByFeeder(data: idInfo) {
return request({
url: '/model/adjust/grandTotalByFeeder',
method: 'POST',
data
})
}
// 运行分析-光伏渗透率
export function penetrationByFeeder(data: idInfo) {
return request({
url: '/model/adjust/penetrationByFeeder',
method: 'POST',
data
})
}
// 运行分析-光伏分布分析
export function PVScatterByFeeder(data: idInfo) {
return request({
url: '/model/adjust/PVScatterByFeeder',
method: 'POST',
data
})
}
// 运行分析-全部数据接口
export function PVMergeShowByFeeder(data: idInfo) {
return request({
url: '/model/adjust/PVMergeShowByFeeder',
method: 'POST',
data
})
}
// 充电桩容量
export function queryChargingPile(data: idInfo) {
return request({
url: '/model/overView/queryChargingPile',
method: 'POST',
data
})
}
// 新版光伏专题
// 光伏有功功率
export function PVTodayTotWNew(data: idInfo) {
return request({
url: '/model/adjust/PVTodayTotW',
method: 'POST',
data
})
}
// 光伏无功功率
export function PVTodayTotVarNew(data: idInfo) {
return request({
url: '/model/adjust/PVTodayTotVar',
method: 'POST',
data
})
}
// 光伏发电量
export function PVTodayGrandTotalNew(data: idInfo) {
return request({
url: '/model/adjust/PVTodayGrandTotal',
method: 'POST',
data
})
}
// 光伏电压分布
export function voltageProfileNew(data: idInfo) {
return request({
url: '/model/adjust/voltageProfile',
method: 'POST',
data
})
}
// 台区渗透率
export function PVPenetrationNew(data: idInfo) {
return request({
url: '/model/adjust/PVPenetration',
method: 'POST',
data
})
}
// 线路渗透率
export function FeederPenetrationNew(data: idInfo) {
return request({
url: '/model/adjust/FeederPenetration',
method: 'POST',
data
})
}
// 表格查询
export function TableFind(data: idInfo) {
return request({
url: '/model/adjust/find',
method: 'POST',
data
})
}
// 根据地区查光伏可调可控数据
export function getPVControlTransByArea(data: idInfo) {
return request({
url: '/model/adjust/getPVControlTransByArea',
method: 'POST',
data
})
}

20
src/api/aggregatorApi.ts Normal file
View File

@ -0,0 +1,20 @@
import request from "@/utils/http/request";
// 聚合商左侧
export function getAggregatorApi(data: any) {
return request({
url: '/model/calculation/polymerzation/info/all',
method: 'POST',
data
})
}
// 聚合商右侧表格
export function getAggregatorTableApi(data: any) {
return request({
url: '/model/calculation/polymerzation/info/find',
method: 'POST',
data
})
}

51
src/api/ajust/tree.ts Normal file
View File

@ -0,0 +1,51 @@
import request from "@/utils/http/request";
interface idInfo {
orgID?: string,
}
// 设备树 0 一级服务
export function treeT(data: idInfo) {
return request({
url: '/api/wwpm/biz/v1/device_0',
method: 'POST',
data
})
}
interface treeInfo{
orgID:string;
transformId:string;
}
// 设备树 1 二级服务
export function treeSecond(data: treeInfo) {
return request({
url: '/api/wwpm/biz/v1/device_1',
method: 'POST',
data
})
}
// 负载率
export function loadRateApi(data: any) {
return request({
url: '/api/wwpm/biz/v1/load_rate',
method: 'POST',
data
})
}
// 策略配置服务
export function strategyApi(data: any) {
return request({
url: '/api/dataInteraction/instructionDelivery',
method: 'POST',
data
})
}

View File

@ -0,0 +1,66 @@
import request from "@/utils/http/request";
interface chargingPileMeasAPI {
startTime: any,
endTime: any,
measPointIds: string
}
// 充电站-----------------------------
// 第三方的数据源数据
// 充电桩所有数据
export function pileStation(data: any) {
return request({
url: '/model/calculation/pileStation',
method: 'GET',
params: data
})
}
// 获取充电站下main的充电桩数据
export function pileStationSon(data: any) {
return request({
url: '/model/calculation/pile/byIdCode/pileStation',
method: 'POST',
data
})
}
// 中台的数据
// 运行曲线
export function getQueryMeasInfoByEVApi(data: any) {
return request({
url: '/model/overView/queryMeasInfoByEV',
method: 'POST',
data
})
}
// 七日电量
export function getqueryDayPowerByEVApi(data: any) {
return request({
url: '/model/overView/queryDayPowerByEV',
method: 'POST',
data
})
}
// 充电桩-----------------------------
// 充电桩两侧点
export function chargingPileMeas(data: chargingPileMeasAPI) {
return request({
url: '/model/calculation/chargingPileMeas',
method: 'POST',
data
})
}
// 充电桩
export function transformerChargingPileInfoData(data: any) {
return request({
url: '/model/calculation/transformerChargingPileInfoData',
method: 'GET',
params: data
})
}

38
src/api/csApi.ts Normal file
View File

@ -0,0 +1,38 @@
import request from "@/utils/http/request";
// 充电桩运行管理--获取左侧数据
export function getcharglngPlleApi(data: any) {
return request({
url: '/model/calculation/chargingPile/info/all',
method: 'POST',
data
})
}
// 区域充电桩运行情况
export function getChargingPileAreaInfoAllApi(data: any) {
return request({
url: '/model/calculation/chargingPile/area/info/all',
method: 'POST',
data
})
}
// 总负荷曲线
export function getTotalLoadCurveApi(data: any) {
return request({
url: '/model/calculation/chargingPile/totalLoadCurve',
method: 'POST',
data
})
}
// 充电桩总充电量
export function getTotalChargeByDayApi(data: any) {
return request({
url: '/model/calculation/chargingPile/totalChargeByDay',
method: 'POST',
data
})
}

View File

@ -0,0 +1,11 @@
import request from "@/utils/http/request";
// 单独的储能站
export function energyStorageStationPSR(data: any) {
return request({
url: '/model/calculation/energyStorageStationPSR/info',
method: 'POST',
data
})
}

14
src/api/homeApi.ts Normal file
View File

@ -0,0 +1,14 @@
import request from "@/utils/http/request";
interface pddIdInfo {
pddId?: string,
}
// 配网线路 -公变And专变
export function transformerToUseNature(data: pddIdInfo) {
return request({
url: '/model/calculation/transformerToUseNature',
method: 'GET',
params:data
})
}

View File

@ -0,0 +1,24 @@
import request from "@/utils/http/request";
// 首页 资源总览
// 源-网-荷-储”相关统计信息服务
interface idInfo{
orgID:string;
}
export function statInfo_api(data: idInfo) {
return request({
url: "/api/wwpm/biz/v1/stat",
method: "POST",
data,
});
}
//运行检测
export function alert_api(data: idInfo) {
return request({
url: "/api/wwpm/biz/v1/load_rate/alert_push",
method: "POST",
data,
});
}

3
src/api/homePage/stat.ts Normal file
View File

@ -0,0 +1,3 @@

44
src/api/lineApi.ts Normal file
View File

@ -0,0 +1,44 @@
import request from "@/utils/http/request";
interface psrIdInfo {
psrId?: string,
}
interface idInfo {
id?: string,
}
// 光伏专题-建设分析-获取用户数、光伏容量
export function feederLoadRate(data: psrIdInfo) {
return request({
url: '/model/calculation/feederLoadRate',
method: 'GET',
params: data
})
}
// 承载力评估
export function dr2feederCapaResult(data: idInfo) {
return request({
url: '/model/algoService/dr2feederCapaResult',
method: 'POST',
data
})
}
// 能量调节 --- 短路器逆变器查找
export function getBreakerAndInverter(data: idInfo) {
return request({
url: '/model/adjust/find/breakerAndInverter',
method: 'POST',
data
})
}
// 承载力评估---资源概况
export function getDr2feederCapaInfoById(data: idInfo) {
return request({
url: '/model/algoService/dr2feederCapaInfo/byId',
method: 'POST',
data
})
}

263
src/api/sys/index.ts Normal file
View File

@ -0,0 +1,263 @@
/*
* vvts, is framework use vue3 + vite4 + typescript.
* Copyright (C) 2023 guoqing22
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import request from "@/utils/http/request";
interface loginPayload {
username: string;
password: string;
}
// 获取设备树
interface treeDataload {
district: string
}
interface treeDataload {
district: string
}
// 登录
interface loginPayload {
username: string;
password: string;
}
export function signinApi(data: loginPayload) {
return request({
url: '/model/login',
method: 'post',
data
})
}
// 获取设备树
interface treePayload {
id?: string
level?: string
voltage_level_id?: string
psr_type?: string
parent_path: string
}
export function TreeApi(data: treePayload) {
return request({
url: '/model/trees',
method: 'post',
data
})
}
// 查询设备树
export function TreeFindApi(data: treePayload) {
return request({
url: '/model/trees/find',
method: 'post',
data
})
}
interface InfoPayload {
id?: string,
stationId?: string
feederId?: string
}
// 获取资源总览信息
export function equipmentinfoApi(data: InfoPayload) {
return request({
url: '/model/equipment/info',
method: 'post',
data
})
}
// 获取站运行概况信息
export function queryEventCountByStationId(data: any) {
return request({
url: '/model/overView/queryEventCountByStationId',
method: 'post',
data
})
}
// 获取线路运行概况
export function queryEventCountByFeederId(data: InfoPayload) {
return request({
url: '/model/overView/queryEventCountByFeederId',
method: 'post',
data
})
}
// 获取台区运行概况
export function areainfoApi(data: InfoPayload) {
return request({
url: '/model/equipment/transformer/run_info',
method: 'post',
data
})
}
// 站、线、台区分布式概况---一个接口
export function queryPVInfoByFeederOrStation(data: InfoPayload) {
return request({
url: '/model/overView/queryPVInfoByFeederOrStation',
method: 'post',
data
})
}
// 获取微网累计减排
export function reductioninfoApi(data: InfoPayload) {
return request({
url: '/model/equipment/micro_grid/renewable_energy',
method: 'post',
data
})
}
// 获取微网运行情况
export function workinginfoApi(data: InfoPayload) {
return request({
url: '/model/equipment/micro_grid/run_info',
method: 'post',
data
})
}
interface MeaspointsPayload {
id: string
voltage_level: string | number,
con_no: string | number,
}
// 获取光伏量测点
export function phomeas_pointsApi(data: MeaspointsPayload, headers: any) {
return request({
url: '/model/equipment/photo_voltaic/meas_points',
method: 'post',
headers,
data
})
}
// 获取光伏运行情况
export function phoinfoApi(data: InfoPayload, headers: any) {
return request({
url: '/model/equipment/photo_voltaic/telemetry_forecast/current_day',
method: 'post',
headers,
data
})
}
// 获取光伏运行监测 -- 运行曲线
export function runCurveInfoApi(data: any) {
return request({
url: '/model/adjust/runCurve',
method: 'post',
data
})
}
// 获取光伏运行监测 -- 调节
export function runCurveAdjustApi(data: any) {
return request({
url: '/model/overView/changePvSetting',
method: 'post',
data
})
}
// 获取光伏运行监测 -- 累计用电功率
export function APGInfoApi(data: any) {
return request({
url: '/model/adjust/powerCurve',
method: 'post',
data
})
}
interface countSwitch {
id: string
}
// app 短路器 负荷开关 /省市区/配网线路
export function getssqdataApi(data: countSwitch) {
return request({
url: '/model/overView/reqBreakSwitchNum',
method: 'POST',
data
})
}
// 运行概况-站/线
export function queryChargingPileByFeeder(data: any) {
return request({
url: '/model/overView/queryChargingPileByFeeder',
method: 'POST',
data
})
}
// 获取SVG
export function getSVGByFeeder(data: any) {
return request({
url: '/model/overView/getSVGByFeeder',
method: 'POST',
data
})
}
// 潮流计算SVG
export function feederPowerFlowSvg(data: any) {
// http://25.218.134.12:80/jar-api/algoService/feederPowerFlowSvg
// /svg-api/jar-api/algoService/feederPowerFlowSvg
// http://25.218.134.12:80/jar-api/algoService/feederPowerFlowResult
// /svg-api/jar-api/algoService/feederPowerFlowResult
return request({
url: 'http://25.218.134.12:80/jar-api/algoService/feederPowerFlowSvg',
method: 'POST',
data
})
}
// 线路 母线 变电站 台区接口
export function getInfo(data: any) {
return request({
url: '/model/calculation/info',
method: 'POST',
data
})
}
// 台区-负载率
export function stationZoneLoadRate(data: any) {
return request({
url: '/model/calculation/stationZoneLoadRate',
method: 'GET',
params:data
})
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 674 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 869 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 MiB

BIN
src/assets/images/bg2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 MiB

BIN
src/assets/images/bg3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 989 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 658 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

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