feat(energy): 创建前端 API 层(6个文件)和路由配置
This commit is contained in:
111
apps/web-antd/src/api/energy/account.ts
Normal file
111
apps/web-antd/src/api/energy/account.ts
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
import type { PageParam, PageResult } from '@vben/request';
|
||||||
|
|
||||||
|
import { requestClient } from '#/api/request';
|
||||||
|
|
||||||
|
export namespace EnergyAccountApi {
|
||||||
|
export interface Account {
|
||||||
|
id?: number;
|
||||||
|
customerId?: number;
|
||||||
|
customerName?: string;
|
||||||
|
balance?: number;
|
||||||
|
initBalance?: number;
|
||||||
|
accumulatedRecharge?: number;
|
||||||
|
accumulatedConsume?: number;
|
||||||
|
reminderThreshold?: number;
|
||||||
|
accountStatus?: number;
|
||||||
|
lastRechargeDate?: string;
|
||||||
|
version?: number;
|
||||||
|
createTime?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AccountSimple {
|
||||||
|
id: number;
|
||||||
|
customerId: number;
|
||||||
|
customerName: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Summary {
|
||||||
|
totalCount: number;
|
||||||
|
totalBalance: number;
|
||||||
|
totalRecharge: number;
|
||||||
|
warningCount: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ProjectAccount {
|
||||||
|
id?: number;
|
||||||
|
accountId?: number;
|
||||||
|
contractId?: number;
|
||||||
|
projectName?: string;
|
||||||
|
contractCode?: string;
|
||||||
|
balance?: number;
|
||||||
|
accumulatedRecharge?: number;
|
||||||
|
accumulatedConsume?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Flow {
|
||||||
|
id?: number;
|
||||||
|
accountId?: number;
|
||||||
|
flowType?: number;
|
||||||
|
bizType?: number;
|
||||||
|
amount?: number;
|
||||||
|
balanceBefore?: number;
|
||||||
|
balanceAfter?: number;
|
||||||
|
bizId?: number;
|
||||||
|
bizCode?: string;
|
||||||
|
remark?: string;
|
||||||
|
operatorId?: number;
|
||||||
|
createTime?: string;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getAccountPage(params: PageParam) {
|
||||||
|
return requestClient.get<PageResult<EnergyAccountApi.Account>>(
|
||||||
|
'/energy/account/page',
|
||||||
|
{ params },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getAccount(id: number) {
|
||||||
|
return requestClient.get<EnergyAccountApi.Account>(
|
||||||
|
'/energy/account/get',
|
||||||
|
{ params: { id } },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getAccountSummary() {
|
||||||
|
return requestClient.get<EnergyAccountApi.Summary>('/energy/account/summary');
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getAccountSimpleList() {
|
||||||
|
return requestClient.get<EnergyAccountApi.AccountSimple[]>('/energy/account/simple-list');
|
||||||
|
}
|
||||||
|
|
||||||
|
export function rechargeAccount(customerId: number, amount: number, remark?: string) {
|
||||||
|
return requestClient.post('/energy/account/recharge', null, {
|
||||||
|
params: { customerId, amount, remark },
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateThreshold(id: number, threshold: number) {
|
||||||
|
return requestClient.put('/energy/account/update-threshold', null, {
|
||||||
|
params: { id, threshold },
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getProjectAccountList(accountId: number) {
|
||||||
|
return requestClient.get<EnergyAccountApi.ProjectAccount[]>(
|
||||||
|
'/energy/account/project/list',
|
||||||
|
{ params: { accountId } },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getFlowPage(params: PageParam) {
|
||||||
|
return requestClient.get<PageResult<EnergyAccountApi.Flow>>(
|
||||||
|
'/energy/account/flow/page',
|
||||||
|
{ params },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function exportAccount(params: any) {
|
||||||
|
return requestClient.download('/energy/account/export-excel', { params });
|
||||||
|
}
|
||||||
124
apps/web-antd/src/api/energy/bill.ts
Normal file
124
apps/web-antd/src/api/energy/bill.ts
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
import type { PageParam, PageResult } from '@vben/request';
|
||||||
|
|
||||||
|
import type { EnergyHydrogenDetailApi } from './hydrogen-detail';
|
||||||
|
|
||||||
|
import { requestClient } from '#/api/request';
|
||||||
|
|
||||||
|
export namespace EnergyBillApi {
|
||||||
|
export interface Bill {
|
||||||
|
id?: number;
|
||||||
|
billCode?: string;
|
||||||
|
energyType?: number;
|
||||||
|
customerId?: number;
|
||||||
|
customerName?: string;
|
||||||
|
contractId?: number;
|
||||||
|
stationId?: number;
|
||||||
|
stationName?: string;
|
||||||
|
cooperationType?: number;
|
||||||
|
billPeriodStart?: string;
|
||||||
|
billPeriodEnd?: string;
|
||||||
|
receivableAmount?: number;
|
||||||
|
actualAmount?: number;
|
||||||
|
adjustmentAmount?: number;
|
||||||
|
paidAmount?: number;
|
||||||
|
totalQuantity?: number;
|
||||||
|
detailCount?: number;
|
||||||
|
status?: number;
|
||||||
|
auditStatus?: number;
|
||||||
|
submitStatus?: number;
|
||||||
|
paymentStatus?: number;
|
||||||
|
auditRemark?: string;
|
||||||
|
auditTime?: string;
|
||||||
|
generateTime?: string;
|
||||||
|
createTime?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GenerateReq {
|
||||||
|
customerId: number;
|
||||||
|
contractId: number;
|
||||||
|
stationId: number;
|
||||||
|
billPeriodStart: string;
|
||||||
|
billPeriodEnd: string;
|
||||||
|
energyType?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Adjustment {
|
||||||
|
id?: number;
|
||||||
|
billId?: number;
|
||||||
|
detailId?: number;
|
||||||
|
adjustmentType?: number;
|
||||||
|
amount?: number;
|
||||||
|
reason?: string;
|
||||||
|
attachmentUrls?: string;
|
||||||
|
operatorId?: number;
|
||||||
|
operatorName?: string;
|
||||||
|
operateTime?: string;
|
||||||
|
createTime?: string;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getBillPage(params: PageParam) {
|
||||||
|
return requestClient.get<PageResult<EnergyBillApi.Bill>>(
|
||||||
|
'/energy/bill/page',
|
||||||
|
{ params },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getBill(id: number) {
|
||||||
|
return requestClient.get<EnergyBillApi.Bill>(
|
||||||
|
'/energy/bill/get',
|
||||||
|
{ params: { id } },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function generateBill(data: EnergyBillApi.GenerateReq) {
|
||||||
|
return requestClient.post<number>('/energy/bill/generate', data);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function batchGenerateByPeriod(billPeriod: string) {
|
||||||
|
return requestClient.post<Record<string, number>>(
|
||||||
|
'/energy/bill/batch-generate-by-period',
|
||||||
|
null,
|
||||||
|
{ params: { billPeriod } },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateBill(data: any) {
|
||||||
|
return requestClient.put('/energy/bill/update', data);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function auditBill(id: number, approved: boolean, remark?: string) {
|
||||||
|
return requestClient.post('/energy/bill/audit', null, {
|
||||||
|
params: { id, approved, remark },
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deleteBill(id: number) {
|
||||||
|
return requestClient.delete('/energy/bill/delete', { params: { id } });
|
||||||
|
}
|
||||||
|
|
||||||
|
export function exportBill(params: any) {
|
||||||
|
return requestClient.download('/energy/bill/export-excel', { params });
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getBillDetailList(billId: number) {
|
||||||
|
return requestClient.get<EnergyHydrogenDetailApi.Detail[]>(
|
||||||
|
'/energy/bill/detail-list',
|
||||||
|
{ params: { billId } },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getAdjustmentList(billId: number) {
|
||||||
|
return requestClient.get<EnergyBillApi.Adjustment[]>(
|
||||||
|
'/energy/bill/adjustment/list',
|
||||||
|
{ params: { billId } },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createAdjustment(data: EnergyBillApi.Adjustment) {
|
||||||
|
return requestClient.post<number>('/energy/bill/adjustment/create', data);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deleteAdjustment(id: number) {
|
||||||
|
return requestClient.delete('/energy/bill/adjustment/delete', { params: { id } });
|
||||||
|
}
|
||||||
62
apps/web-antd/src/api/energy/hydrogen-detail.ts
Normal file
62
apps/web-antd/src/api/energy/hydrogen-detail.ts
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
import type { PageParam, PageResult } from '@vben/request';
|
||||||
|
|
||||||
|
import { requestClient } from '#/api/request';
|
||||||
|
|
||||||
|
export namespace EnergyHydrogenDetailApi {
|
||||||
|
export interface Detail {
|
||||||
|
id?: number;
|
||||||
|
stationId?: number;
|
||||||
|
stationName?: string;
|
||||||
|
customerId?: number;
|
||||||
|
customerName?: string;
|
||||||
|
contractId?: number;
|
||||||
|
vehicleId?: number;
|
||||||
|
plateNumber?: string;
|
||||||
|
hydrogenDate?: string;
|
||||||
|
hydrogenQuantity?: number;
|
||||||
|
costPrice?: number;
|
||||||
|
costAmount?: number;
|
||||||
|
customerPrice?: number;
|
||||||
|
customerAmount?: number;
|
||||||
|
auditStatus?: number;
|
||||||
|
deductionStatus?: number;
|
||||||
|
settlementStatus?: number;
|
||||||
|
billId?: number;
|
||||||
|
remark?: string;
|
||||||
|
createTime?: string;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getHydrogenDetailPage(params: PageParam) {
|
||||||
|
return requestClient.get<PageResult<EnergyHydrogenDetailApi.Detail>>(
|
||||||
|
'/energy/hydrogen-detail/page',
|
||||||
|
{ params },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getHydrogenDetail(id: number) {
|
||||||
|
return requestClient.get<EnergyHydrogenDetailApi.Detail>(
|
||||||
|
'/energy/hydrogen-detail/get',
|
||||||
|
{ params: { id } },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateHydrogenDetail(data: EnergyHydrogenDetailApi.Detail) {
|
||||||
|
return requestClient.put('/energy/hydrogen-detail/update', data);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function auditHydrogenDetail(id: number, approved: boolean, remark?: string) {
|
||||||
|
return requestClient.post('/energy/hydrogen-detail/audit', null, {
|
||||||
|
params: { id, approved, remark },
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function batchAuditHydrogenDetail(ids: number[], approved: boolean, remark?: string) {
|
||||||
|
return requestClient.post('/energy/hydrogen-detail/batch-audit', null, {
|
||||||
|
params: { ids: ids.join(','), approved, remark },
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function exportHydrogenDetail(params: any) {
|
||||||
|
return requestClient.download('/energy/hydrogen-detail/export-excel', { params });
|
||||||
|
}
|
||||||
115
apps/web-antd/src/api/energy/hydrogen-record.ts
Normal file
115
apps/web-antd/src/api/energy/hydrogen-record.ts
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
import type { PageParam, PageResult } from '@vben/request';
|
||||||
|
|
||||||
|
import { requestClient } from '#/api/request';
|
||||||
|
|
||||||
|
export namespace EnergyHydrogenRecordApi {
|
||||||
|
export interface Record {
|
||||||
|
id?: number;
|
||||||
|
stationId?: number;
|
||||||
|
stationName?: string;
|
||||||
|
plateNumber?: string;
|
||||||
|
hydrogenDate?: string;
|
||||||
|
hydrogenQuantity?: number;
|
||||||
|
unitPrice?: number;
|
||||||
|
amount?: number;
|
||||||
|
mileage?: number;
|
||||||
|
sourceType?: number;
|
||||||
|
matchStatus?: number;
|
||||||
|
vehicleId?: number;
|
||||||
|
customerId?: number;
|
||||||
|
uploadBatchNo?: string;
|
||||||
|
createTime?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ImportPreview {
|
||||||
|
batchNo: string;
|
||||||
|
totalCount: number;
|
||||||
|
validCount: number;
|
||||||
|
duplicateCount: number;
|
||||||
|
errorCount: number;
|
||||||
|
records: RecordPreviewItem[];
|
||||||
|
duplicates: RecordPreviewItem[];
|
||||||
|
errors: ImportErrorItem[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RecordPreviewItem {
|
||||||
|
rowNum: number;
|
||||||
|
plateNumber: string;
|
||||||
|
hydrogenDate: string;
|
||||||
|
hydrogenQuantity: number;
|
||||||
|
unitPrice: number;
|
||||||
|
amount: number;
|
||||||
|
mileage: number;
|
||||||
|
isDuplicate: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ImportErrorItem {
|
||||||
|
rowNum: number;
|
||||||
|
reason: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ImportProgress {
|
||||||
|
current: number;
|
||||||
|
total: number;
|
||||||
|
status: string;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getHydrogenRecordPage(params: PageParam) {
|
||||||
|
return requestClient.get<PageResult<EnergyHydrogenRecordApi.Record>>(
|
||||||
|
'/energy/hydrogen-record/page',
|
||||||
|
{ params },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getHydrogenRecord(id: number) {
|
||||||
|
return requestClient.get<EnergyHydrogenRecordApi.Record>(
|
||||||
|
'/energy/hydrogen-record/get',
|
||||||
|
{ params: { id } },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createHydrogenRecord(data: EnergyHydrogenRecordApi.Record) {
|
||||||
|
return requestClient.post('/energy/hydrogen-record/create', data);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateHydrogenRecord(data: EnergyHydrogenRecordApi.Record) {
|
||||||
|
return requestClient.put('/energy/hydrogen-record/update', data);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deleteHydrogenRecord(id: number) {
|
||||||
|
return requestClient.delete('/energy/hydrogen-record/delete', { params: { id } });
|
||||||
|
}
|
||||||
|
|
||||||
|
export function exportHydrogenRecord(params: any) {
|
||||||
|
return requestClient.download('/energy/hydrogen-record/export-excel', { params });
|
||||||
|
}
|
||||||
|
|
||||||
|
export function importPreview(stationId: number, file: File) {
|
||||||
|
const formData = new FormData();
|
||||||
|
formData.append('file', file);
|
||||||
|
formData.append('stationId', String(stationId));
|
||||||
|
return requestClient.post<EnergyHydrogenRecordApi.ImportPreview>(
|
||||||
|
'/energy/hydrogen-record/import-preview',
|
||||||
|
formData,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function importConfirm(batchNo: string, duplicateStrategy: string) {
|
||||||
|
return requestClient.post<Record<string, number>>(
|
||||||
|
'/energy/hydrogen-record/import-confirm',
|
||||||
|
null,
|
||||||
|
{ params: { batchNo, duplicateStrategy } },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getImportProgress(batchNo: string) {
|
||||||
|
return requestClient.get<EnergyHydrogenRecordApi.ImportProgress>(
|
||||||
|
'/energy/hydrogen-record/import-progress',
|
||||||
|
{ params: { batchNo } },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function batchMatch() {
|
||||||
|
return requestClient.post<Record<string, number>>('/energy/hydrogen-record/batch-match');
|
||||||
|
}
|
||||||
43
apps/web-antd/src/api/energy/station-config.ts
Normal file
43
apps/web-antd/src/api/energy/station-config.ts
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
import type { PageParam, PageResult } from '@vben/request';
|
||||||
|
|
||||||
|
import { requestClient } from '#/api/request';
|
||||||
|
|
||||||
|
export namespace EnergyStationConfigApi {
|
||||||
|
export interface Config {
|
||||||
|
id?: number;
|
||||||
|
stationId?: number;
|
||||||
|
stationName?: string;
|
||||||
|
autoDeduct?: boolean;
|
||||||
|
autoMatch?: boolean;
|
||||||
|
cooperationType?: number;
|
||||||
|
remark?: string;
|
||||||
|
createTime?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ConfigSimple {
|
||||||
|
id: number;
|
||||||
|
stationId: number;
|
||||||
|
stationName: string;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getStationConfigPage(params: PageParam) {
|
||||||
|
return requestClient.get<PageResult<EnergyStationConfigApi.Config>>(
|
||||||
|
'/energy/station-config/page',
|
||||||
|
{ params },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getStationConfigSimpleList() {
|
||||||
|
return requestClient.get<EnergyStationConfigApi.ConfigSimple[]>(
|
||||||
|
'/energy/station-config/simple-list',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createStationConfig(data: EnergyStationConfigApi.Config) {
|
||||||
|
return requestClient.post('/energy/station-config/create', data);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateStationConfig(data: EnergyStationConfigApi.Config) {
|
||||||
|
return requestClient.put('/energy/station-config/update', data);
|
||||||
|
}
|
||||||
38
apps/web-antd/src/api/energy/station-price.ts
Normal file
38
apps/web-antd/src/api/energy/station-price.ts
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
import type { PageParam, PageResult } from '@vben/request';
|
||||||
|
|
||||||
|
import { requestClient } from '#/api/request';
|
||||||
|
|
||||||
|
export namespace EnergyStationPriceApi {
|
||||||
|
export interface Price {
|
||||||
|
id?: number;
|
||||||
|
stationId?: number;
|
||||||
|
stationName?: string;
|
||||||
|
customerId?: number;
|
||||||
|
customerName?: string;
|
||||||
|
costPrice?: number;
|
||||||
|
customerPrice?: number;
|
||||||
|
effectiveDate?: string;
|
||||||
|
expiryDate?: string;
|
||||||
|
status?: number;
|
||||||
|
createTime?: string;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getStationPricePage(params: PageParam) {
|
||||||
|
return requestClient.get<PageResult<EnergyStationPriceApi.Price>>(
|
||||||
|
'/energy/station-price/page',
|
||||||
|
{ params },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createStationPrice(data: EnergyStationPriceApi.Price) {
|
||||||
|
return requestClient.post('/energy/station-price/create', data);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateStationPrice(data: EnergyStationPriceApi.Price) {
|
||||||
|
return requestClient.put('/energy/station-price/update', data);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deleteStationPrice(id: number) {
|
||||||
|
return requestClient.delete('/energy/station-price/delete', { params: { id } });
|
||||||
|
}
|
||||||
54
apps/web-antd/src/router/routes/modules/energy.ts
Normal file
54
apps/web-antd/src/router/routes/modules/energy.ts
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
import type { RouteRecordRaw } from 'vue-router';
|
||||||
|
|
||||||
|
const routes: RouteRecordRaw[] = [
|
||||||
|
{
|
||||||
|
path: '/energy',
|
||||||
|
name: 'EnergyCenter',
|
||||||
|
meta: {
|
||||||
|
title: '能源管理',
|
||||||
|
icon: 'lucide:zap',
|
||||||
|
keepAlive: true,
|
||||||
|
hideInMenu: true,
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: 'hydrogen-record',
|
||||||
|
name: 'EnergyHydrogenRecord',
|
||||||
|
component: () => import('#/views/energy/hydrogen-record/index.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'hydrogen-detail',
|
||||||
|
name: 'EnergyHydrogenDetail',
|
||||||
|
component: () => import('#/views/energy/hydrogen-detail/index.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'bill',
|
||||||
|
name: 'EnergyBill',
|
||||||
|
component: () => import('#/views/energy/bill/index.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: String.raw`bill/detail/:id(\d+)`,
|
||||||
|
name: 'EnergyBillDetail',
|
||||||
|
meta: { title: '账单详情', activePath: '/energy/bill' },
|
||||||
|
component: () => import('#/views/energy/bill/detail.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'account',
|
||||||
|
name: 'EnergyAccount',
|
||||||
|
component: () => import('#/views/energy/account/index.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'station-price',
|
||||||
|
name: 'EnergyStationPrice',
|
||||||
|
component: () => import('#/views/energy/station-price/index.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'station-config',
|
||||||
|
name: 'EnergyStationConfig',
|
||||||
|
component: () => import('#/views/energy/station-config/index.vue'),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export default routes;
|
||||||
Reference in New Issue
Block a user