Browse Source

电价导入

master
dong 1 year ago
parent
commit
3081c57c2b

+ 1
- 0
.vscode/settings.json View File

@@ -65,6 +65,7 @@
65 65
     "iconfont",
66 66
     "imonth",
67 67
     "incomeforms",
68
+    "incomeformsindex",
68 69
     "informationtype",
69 70
     "insertschedule",
70 71
     "juejin",

+ 38
- 0
src/api/home/Multisite.ts View File

@@ -652,3 +652,41 @@ export const downloadfileURL = (params: {}) => {
652 652
 export const selectfileidURL = (params: {}) => {
653 653
   return http.post(`/tdengineyuanshi/selectfileid`, params);
654 654
 };
655
+// 并网点列表
656
+export const selectconsolidationURL = (params: {}) => {
657
+  return http.post(`/connectionapp/selectconsolidation`, qs.stringify(params));
658
+};
659
+// web端-修改并网点的信息
660
+export const updateconsolidationURL = (params: {}) => {
661
+  return http.post(`/connectionapp/updateconsolidation`, qs.stringify(params));
662
+};
663
+// web端-根据id查询名称
664
+export const selectconsolidationidURL = (params: {}) => {
665
+  return http.post(`/connectionapp/selectconsolidationid`, qs.stringify(params));
666
+};
667
+// 存储图片网络地址
668
+export const insertnewimagesURL = (params: {}) => {
669
+  return http.post(`/platform/shu/insertnewimages`, qs.stringify(params));
670
+};
671
+
672
+// 查询图片网络地址
673
+export const selectnewimagesURL = (params: {}) => {
674
+  return http.post(`/platform/shu/selectnewimages`, qs.stringify(params));
675
+};
676
+// 查询excel电价文件列表
677
+export const selectproiceexcelURL = (params: {}) => {
678
+  return http.post(`/tdengineyuanshi/selectproiceexcel`, qs.stringify(params));
679
+};
680
+// 查询省
681
+export const selectprovinceURL = (params: {}) => {
682
+  return http.post(`/tdengineyuanshi/selectprovince`, qs.stringify(params));
683
+};
684
+// eslint-disable-next-line @typescript-eslint/no-unused-vars
685
+export const priceanalysisURL = (params: {}, body: FormData) => {
686
+  return http.post(`/tdengineyuanshi/electricitypriceanalysis`, body, {
687
+    params, // 将额外参数作为查询参数传递
688
+    headers: {
689
+      "Content-Type": "multipart/form-data" // 设置请求头为 multipart/form-data
690
+    }
691
+  });
692
+};

+ 1
- 1
src/components/Upload/Imgs.vue View File

@@ -68,7 +68,7 @@ const props = withDefaults(defineProps<UploadFileProps>(), {
68 68
   drag: true,
69 69
   disabled: false,
70 70
   limit: 9,
71
-  fileSize: 5,
71
+  fileSize: 20,
72 72
   fileType: () => ["image/jpg", "image/jpeg", "image/png", "image/gif"],
73 73
   height: "150px",
74 74
   width: "150px",

+ 0
- 1
src/languages/index.ts View File

@@ -3,7 +3,6 @@ import { getBrowserLang } from "@/utils";
3 3
 
4 4
 import zh from "./modules/zh";
5 5
 import en from "./modules/en";
6
-
7 6
 const i18n = createI18n({
8 7
   // Use Composition API, Set to false
9 8
   allowComposition: true,

+ 365
- 22
src/languages/modules/en.ts View File

@@ -1,29 +1,372 @@
1 1
 export default {
2
+  type: "en",
2 3
   home: {
3
-    welcome: "Welcome"
4
+    title: "Multi-Site ESS Overview",
5
+    TotalSites: "Total Sites",
6
+    online: "on line",
7
+    offline: "off line",
8
+    InstalledPower: "Installed Power",
9
+    InstalledCapacity: "Installed Capacity",
10
+    TodayEnergy: "Today's Charging Energy",
11
+    upperYesterday: "↑ vs Yesterday",
12
+    belowYesterday: "↓ vs Yesterday",
13
+    Charging: "Month",
14
+    TotalCharging: "Total",
15
+    TodayDischarge: "Today's Discharge Energy",
16
+    Discharge: "Month",
17
+    discharge: "Total",
18
+    TodayRevenue: "Today's Revenue",
19
+    MTDRevenue: "MTD Revenue",
20
+    TotalRevenue: "Total Revenue",
21
+    USD: "¥",
22
+    DischargeStatistics: "Charge/Discharge Statistics",
23
+    RevenueAnalytics: "Revenue Analytics",
24
+    StartTime: "Start Time",
25
+    EndTime: "End Time",
26
+    SelectDate: "Select Date",
27
+    FaultAlerts: "Fault Alerts",
28
+    ViewDetails: "	View Details",
29
+    DeviceList: "Device List",
30
+    CommunicationStatus: "Communication Status",
31
+    Query: "Query",
32
+    Reset: "Reset",
33
+    Pleaseselect: "Please select",
34
+    PlantName: "Plant Name",
35
+    OnlineStatus: "Online Status",
36
+    TodayCharging: "Today's Charging(kWh)",
37
+    TodaysDischarge: "Today's Discharge(kWh)",
38
+    TotalCharged: "Total Charged(kWh)",
39
+    TotalDischarged: "Total Discharged(kWh)",
40
+    TodayAlerts: "Today's Alerts",
41
+    RoundEfficiency: "Round-trip Efficiency(%)",
42
+    YesterdayRevenue: "Yesterday's Revenue(元)"
4 43
   },
5
-  tabs: {
6
-    refresh: "Refresh",
7
-    maximize: "Maximize",
8
-    closeCurrent: "Close current",
9
-    closeLeft: "Close Left",
10
-    closeRight: "Close Right",
11
-    closeOther: "Close other",
12
-    closeAll: "Close All"
44
+  station: {
45
+    SiteCard: "Site Card",
46
+    All: "All",
47
+    Online: "On line",
48
+    Offline: "Off line",
49
+    Expand: "Expand",
50
+    Collapse: "Collapse",
51
+    Query: "Query",
52
+    Reset: "Reset",
53
+    SearchAddress: "Search by Plant Name/Address",
54
+    ViewPlant: "View Plant",
55
+    InstalledCapacity: "Installed Capacity",
56
+    RatedPower: "Rated Power",
57
+    CommissioningDate: "Commissioning Date",
58
+    PlantAddress: "Plant Address",
59
+    EnterPlant: "Enter Plant",
60
+    BasicInformation: "Basic Information",
61
+    MoreDetails: "More Details",
62
+    PlantPhotos: "Plant Photos",
63
+    PlantName: "Plant Name",
64
+    ContactNumber: "Contact Number",
65
+    InstallationPhotos: "Installation Photos",
66
+    GridConnectionInfo: "Grid Connection Info",
67
+    TransformerSpecifications: "Transformer Specifications",
68
+    TransformerCapacity: "Transformer Capacity",
69
+    Installer: "Installer",
70
+    InstallerContact: "Installer Contact",
71
+    Close: "Close"
72
+  },
73
+  overview: {
74
+    SelectPlant: "Select Plant",
75
+    TodayEnergy: "Today's Charging Energy",
76
+    upperYesterday: "↑ vs Yesterday",
77
+    belowYesterday: "↓ vs Yesterday",
78
+    Charging: "Month",
79
+    TotalCharging: "Total",
80
+    TodayDischarge: "Today's Discharge Energy",
81
+    Discharge: "Month",
82
+    discharge: "Total",
83
+    TodayRevenue: "Today's Revenue",
84
+    MTDRevenue: "MTD Revenue",
85
+    TotalRevenue: "Total Revenue",
86
+    TotalDevices: "Total Devices",
87
+    Online: "On line",
88
+    Offline: "Off line",
89
+    InstalledPower: "Power",
90
+    InstalledCapacity: "Capacity",
91
+    RevenueAnalytics: "Revenue Analytics",
92
+    DischargeStatistics: "Charge/Discharge Statistics",
93
+    StartTime: "Start Time",
94
+    EndTime: "End Time",
95
+    SelectDate: "Select Date",
96
+    PlantInformation: "Plant Information",
97
+    ViewDetails: "View Details",
98
+    TotalInstalledCapacity: "Total Installed Capacity",
99
+    RatedPower: "Rated Power",
100
+    CommissioningDate: "Commissioning Date",
101
+    PlantLocation: "Plant Location",
102
+    CompositePower: "Composite Power",
103
+    DeviceList: "Device List",
104
+    CommunicationStatus: "Communication Status",
105
+    DeviceID: "Device ID",
106
+    Query: "Query",
107
+    Reset: "Reset",
108
+    SNo: "No",
109
+    DeviceName: "Device Name",
110
+    OnlineStatus: "Online Status",
111
+    Maintenance: "Maintenance (Today)",
112
+    TodayCharging: "Today's Charging(kWh)",
113
+    TodaysDischarge: "Today's Discharge(kWh)",
114
+    TotalCharged: "Total Charged(kWh)",
115
+    TotalDischarged: "Total Discharged(kWh)",
116
+    GridActivePower: "Grid Active Power (kW)",
117
+    ESSActivePower: "ESS Active Power (kW)",
118
+    LoadActivePower: "Load Active Power (kW)",
119
+    Pleaseselect: "Please select",
120
+    ViewPlant: "View Plant",
121
+    BasicInformation: "Basic Information",
122
+    MoreDetails: "More Details",
123
+    PlantPhotos: "Plant Photos",
124
+    PlantName: "Plant Name",
125
+    ContactNumber: "Contact Number",
126
+    InstallationPhotos: "Installation Photos",
127
+    GridConnectionInfo: "Grid Connection Info",
128
+    TransformerSpecifications: "Transformer Specifications",
129
+    TransformerCapacity: "Transformer Capacity",
130
+    Installer: "Installer",
131
+    InstallerContact: "Installer Contact",
132
+    Close: "Close"
133
+  },
134
+  system: {
135
+    Pleaseselect: "Please select",
136
+    Online: "On line",
137
+    Offline: "Off line",
138
+    RealData: "Real-time Data",
139
+    todayCharge: "Today's Charging",
140
+    todayDischarge: "Today's Discharge",
141
+    totalCharge: "Total Charged",
142
+    totalDischarge: "Total Discharged",
143
+    batterySOC: "Battery SOC",
144
+    operatingStatus: "Operating Status",
145
+    powerTrend: "Power Trend",
146
+    maxChargePower: "Max Charge Power",
147
+    maxDischargePower: "Max Discharge Power",
148
+    peakLoadPower: "Peak Load Power",
149
+    alarmStatus: "Alarm Status",
150
+    name: "Name",
151
+    status: "Status",
152
+    chargePower: "Charge Power",
153
+    dischargePower: "Discharge Power",
154
+    currentPower: "Current Power",
155
+    running: "Running",
156
+    shutdown: "Shutdown",
157
+    emergencyStop: "Emergency Stop",
158
+    Operation: "Real-time Operation",
159
+    live: "Live",
160
+    last7Days: "Last 7 Days",
161
+    last31Days: "Last 31 Days",
162
+    DataType: "Data Type",
163
+    activePower: "Active Power",
164
+    Meter: "Meter",
165
+    BatteryStack: "Battery Stack",
166
+    MaxCellVoltage: "Max Cell Voltage",
167
+    MinCellVoltage: "Min Cell Voltage",
168
+    Query: "Query",
169
+    Peak: "Peak",
170
+    Shoulder: "Shoulder",
171
+    Offpeak: "Off-peak",
172
+    Valley: "Valley",
173
+    Total: "Total",
174
+    LiveEnergyRevenue: "Live Energy Revenue",
175
+    date: "Date",
176
+    Reset: "Reset",
177
+    time: "Time",
178
+    charge: "Charge (kWh)",
179
+    discharge: "Discharge (kWh)",
180
+    revenue: "Revenue (¥)"
181
+  },
182
+  monitor: {
183
+    SelectPlant: "Select Plant",
184
+    selectId: "Select device ID",
185
+    noData: "No data available",
186
+    lastUpdate: "Last update",
187
+    DeviceStatus: "Device Status",
188
+    Running: "Running",
189
+    Stopped: "Stopped",
190
+    OperationStatus: "Operation Status",
191
+    Normal: "Normal",
192
+    Fault: "Fault",
193
+    FaultDetails: "Fault Details",
194
+    DeviceMetrics: "Device Metrics",
195
+    DailyCharge: "Daily Charge",
196
+    DailyDischarge: "Daily Discharge",
197
+    TotalCharged: "Total Charged",
198
+    TotalDischarged: "Total Discharged",
199
+    ACFrequency: "AC Frequency",
200
+    TotalACActivePower: "Total AC Active Power",
201
+    TotalACReactivePower: "Total AC Reactive Power",
202
+    TotalACApparentPower: "Total AC Apparent Power",
203
+    ACCurrent: "AC Current",
204
+    PhaseAVoltage: "Phase A Voltage",
205
+    PhaseBVoltage: "Phase B Voltage",
206
+    PhaseCVoltage: "Phase C Voltage",
207
+    DeviceErrorCode: "Device Error Code",
208
+    FaultStatusWord: "Fault Status Word",
209
+    BranchData: "Branch Data",
210
+    Branch: "Branch",
211
+    DCPower: "DC Power",
212
+    DCVoltage: "DC Voltage",
213
+    DCCurrent: "DC Current",
214
+    totalActive: "Total Active P",
215
+    reactive: "Reactive P",
216
+    apparent: "Apparent P",
217
+    powerFactor: "PF",
218
+    phaseA: "Phase A P",
219
+    phaseB: "Phase B P",
220
+    phaseC: "Phase C P",
221
+    EnergyData: "Energy Data",
222
+    Category: "Category",
223
+    Total: "Total/kWh",
224
+    Peak: "Peak/kWh",
225
+    Shoulder: "Shoulder/kWh",
226
+    Offpeak: "Off-peak/kWh",
227
+    Valley: "Valley/kWh",
228
+    Idle: "Idle",
229
+    Charging: "Charging",
230
+    Discharging: "Discharging",
231
+    FullyCharged: "Fully Charged",
232
+    FullyDischarged: "Fully Discharged",
233
+    DischargeStatus: "Discharge Status",
234
+    TotalVoltage: "Total Voltage",
235
+    TotalCurrent: "Total Current",
236
+    ChargePowerLimit: "Charge Power Limit",
237
+    DischargePowerLimit: "Discharge Power Limit",
238
+    AvgCellTemp: "Avg CellTemp",
239
+    AvgCellVoltage: "Avg Cell Voltage",
240
+    MaxCellTemp: "Max CellTemp",
241
+    MinCellTemp: "Min CellTemp",
242
+    MaxCellVoltage: "Max CellVoltage",
243
+    MinCellVoltage: "Min CellVoltage",
244
+    Outlettemperature: "Outlet Temperature",
245
+    returntemperature: "Return Temperature",
246
+    outletpressure: "Outlet Pressure",
247
+    ReturnPressure: "Return Pressure"
248
+  },
249
+  Administration: {
250
+    SelectPlant: "Select Plant",
251
+    Configuration: "Configuration",
252
+    Bind: "Bind",
253
+    Unbind: "Unbind",
254
+    Management: "Management",
255
+    AddNew: "Add New",
256
+    TemplateName: "Template Name",
257
+    templatemanagement: "Template Management",
258
+    timesharingmanagement: "Time-of-Use",
259
+    Referenced: "Referenced",
260
+    Unreferenced: "Unreferenced",
261
+    CreatedBy: "Created By",
262
+    CreationTime: "Creation Time",
263
+    Actions: "Actions",
264
+    prompt:
265
+      "Click 'Bind' to assign template to the target month , Important: You must 'Unbind' before assigning a different template",
266
+    year: "year",
267
+    Overview: "Overview",
268
+    themoon: "themoon",
269
+    view: "view",
270
+    Query: "Query",
271
+    Reset: "Reset",
272
+    newlyadded: "newly added",
273
+    Status: "Status",
274
+    Tags: "Tags",
275
+    View: "View",
276
+    Edit: "Edit",
277
+    Templatestatus: "Template Status",
278
+    inuse: "in use",
279
+    usage: "usage",
280
+    Templatelabel: "Template label",
281
+    Templatedetails: "Template details",
282
+    periodoftime: "period of time",
283
+    Purchase: "Purchase electricity price (yuan/kWh)",
284
+    Sellingelectricity: "Selling electricity price (yuan/kWh)",
285
+    Pleasename: "Please enter the template name",
286
+    Startingperiod: "Starting period",
287
+    Selectstart: "Select start time period",
288
+    Endperiod: "End period",
289
+    Selectend: "Select end time period",
290
+    peakvalue: "peak value",
291
+    ChooseJianfeng: "Choose Jianfeng Pinggu",
292
+    delete: "delete",
293
+    save: "save",
294
+    close: "close",
295
+    AddLine: "Add Line",
296
+    sure: "sure"
297
+  },
298
+  Alarm: {
299
+    Selectstation: "Select power station",
300
+    AlarmChart: "Alarm Chart",
301
+    AlarmList: "Alarm List",
302
+    Equipmentnumber: "Equipment number",
303
+    Pleaseprovide: "Please select the device number",
304
+    DeviceType: "DeviceType",
305
+    Pleaseselect: "Please select device type",
306
+    Alarmlevel: "Alarm level",
307
+    Pleaselevel: "Please select the alarm level",
308
+    state: "state",
309
+    thestatus: "Please select the status",
310
+    TimeRange: "Time Range",
311
+    StartTime: "Start Time",
312
+    EndTime: "End Time",
313
+    Query: "Query",
314
+    Reset: "Reset",
315
+    export: "Export"
316
+  },
317
+  Batteryanalysis: {
318
+    Batteryanalysis: "Battery status analysis"
319
+  },
320
+  reportforms: {
321
+    Electricityreport: "Electricity report",
322
+    summary:
323
+      "The site summary displays all site report data, supporting daily display for 31 days and monthly display of data within one year.",
324
+    SiteSummary: "Site Summary",
325
+    Singlereport: "Single site report",
326
+    timeframe: "time frame",
327
+    reporttype: "report type",
328
+    selectsite: "select site",
329
+    SelectDate: "Select Date",
330
+    Query: "Query",
331
+    Reset: "Reset",
332
+    export: "Export",
333
+    perioddata: "Time period data",
334
+    linechart: "line chart",
335
+    barchart: "bar chart",
336
+    table: "table",
337
+    Peak: "Peak",
338
+    Shoulder: "Shoulder",
339
+    Offpeak: "Off-peak",
340
+    Valley: "Valley",
341
+    Total: "Total",
342
+    rawdata: "raw data",
343
+    Dailydata: "Daily data",
344
+    Accumulatedata: "Accumulate data",
345
+    dailyreport: "daily report",
346
+    Monthlyreport: "Month lyreport",
347
+    annualreport: "annual report"
348
+  },
349
+  incomeforms: {
350
+    incomestatement: "income statement",
351
+    summary:
352
+      "The site summary displays all site report data, supporting daily display for 31 days and monthly display of data within one year.",
353
+    SiteSummary: "Summary",
354
+    Singlereport: "Single site report",
355
+    StartTime: "Start Time",
356
+    EndTime: "End Time",
357
+    Query: "Query",
358
+    Reset: "Reset",
359
+    export: "Export",
360
+    reporttype: "report type",
361
+    dailyreport: "daily report",
362
+    Monthlyreport: "Month lyreport",
363
+    annualreport: "annual report",
364
+    selectsite: "select site",
365
+    SelectDate: "Select Date"
13 366
   },
14 367
   header: {
15
-    componentSize: "Component size",
16
-    language: "Language",
17
-    theme: "theme",
18
-    layoutConfig: "Layout config",
19
-    primary: "primary",
20
-    darkMode: "Dark Mode",
21
-    greyMode: "Grey mode",
22
-    weakMode: "Weak mode",
23
-    fullScreen: "Full Screen",
24
-    exitFullScreen: "Exit Full Screen",
25
-    personalData: "Personal Data",
26
-    changePassword: "Change Password",
27
-    logout: "Logout"
368
+    personalData: "personalData",
369
+    changePassword: "changePassword",
370
+    logout: "logout"
28 371
   }
29 372
 };

+ 360
- 21
src/languages/modules/zh.ts View File

@@ -1,29 +1,368 @@
1 1
 export default {
2
+  type: "zh",
2 3
   home: {
3
-    welcome: "欢迎使用"
4
+    title: "多站总览",
5
+    TotalSites: "站点总数",
6
+    online: "在线",
7
+    offline: "离线",
8
+    InstalledPower: "装机功率",
9
+    InstalledCapacity: "装机容量",
10
+    TodayEnergy: "今日充电量",
11
+    upperYesterday: "较昨日上升",
12
+    belowYesterday: "较昨日下降",
13
+    Charging: "本月充电",
14
+    TotalCharging: "累计充电",
15
+    TodayDischarge: "今日放电量",
16
+    Discharge: "本月放电",
17
+    discharge: "累计放电",
18
+    TodayRevenue: "今日收益",
19
+    MTDRevenue: "本月收益",
20
+    TotalRevenue: "总收益",
21
+    USD: "¥",
22
+    DischargeStatistics: "充放电统计",
23
+    RevenueAnalytics: "收益统计",
24
+    StartTime: "开始时间",
25
+    EndTime: "结束时间",
26
+    SelectDate: "选择日期",
27
+    FaultAlerts: "故障警告",
28
+    ViewDetails: "查看详细",
29
+    DeviceList: "设备列表",
30
+    CommunicationStatus: "通讯状态",
31
+    Query: "查询",
32
+    Reset: "重置",
33
+    Pleaseselect: "请选择",
34
+    PlantName: "电站名称",
35
+    OnlineStatus: "在线状态",
36
+    TodayCharging: "今日充电量(kWh)",
37
+    TodaysDischarge: "今日放电量(kWh)",
38
+    TotalCharged: "总充电量(kWh)",
39
+    TotalDischarged: "总放电量(kWh)",
40
+    TodayAlerts: "今日告警",
41
+    RoundEfficiency: "综合效率(%)",
42
+    YesterdayRevenue: "昨日收益(元)"
4 43
   },
5
-  tabs: {
6
-    refresh: "刷新",
7
-    maximize: "最大化",
8
-    closeCurrent: "关闭当前",
9
-    closeLeft: "关闭左侧",
10
-    closeRight: "关闭右侧",
11
-    closeOther: "关闭其它",
12
-    closeAll: "关闭所有"
44
+  station: {
45
+    SiteCard: "站点卡片",
46
+    All: "全部",
47
+    Online: "在线",
48
+    Offline: "离线",
49
+    Expand: "打开",
50
+    Collapse: "收起",
51
+    Query: "查询",
52
+    Reset: "重置",
53
+    SearchAddress: "搜索电站名称/地址",
54
+    ViewPlant: "查看电站",
55
+    InstalledCapacity: "装机容量",
56
+    RatedPower: "装机功率",
57
+    CommissioningDate: "投运时间",
58
+    PlantAddress: "电站地址",
59
+    EnterPlant: "进入电站",
60
+    BasicInformation: "基础信息",
61
+    MoreDetails: "更多信息",
62
+    PlantPhotos: "电站图片",
63
+    PlantName: "电站名称",
64
+    ContactNumber: "联系电话",
65
+    InstallationPhotos: "安装图片",
66
+    GridConnectionInfo: "并网点信息",
67
+    TransformerSpecifications: "变压器信息",
68
+    TransformerCapacity: "站点变压器容量",
69
+    Installer: "安装人",
70
+    InstallerContact: "安装人联系号码",
71
+    Close: "关闭"
72
+  },
73
+  overview: {
74
+    SelectPlant: "选择电站",
75
+    TodayEnergy: "今日充电量",
76
+    upperYesterday: "较昨日上升",
77
+    belowYesterday: "较昨日下降",
78
+    Charging: "本月充电",
79
+    TotalCharging: "累计充电",
80
+    TodayDischarge: "今日放电量",
81
+    Discharge: "本月放电",
82
+    discharge: "累计放电",
83
+    TodayRevenue: "今日收益",
84
+    MTDRevenue: "本月收益",
85
+    TotalRevenue: "总收益",
86
+    TotalDevices: "设备总数",
87
+    Online: "在线",
88
+    Offline: "离线",
89
+    InstalledPower: "装机功率",
90
+    InstalledCapacity: "装机容量",
91
+    RevenueAnalytics: "收益统计",
92
+    DischargeStatistics: "充放电统计",
93
+    StartTime: "开始时间",
94
+    EndTime: "结束时间",
95
+    SelectDate: "选择日期",
96
+    PlantInformation: "站点信息",
97
+    ViewDetails: "查看详细",
98
+    TotalInstalledCapacity: "装机总容量",
99
+    RatedPower: "装机功率",
100
+    CommissioningDate: "投运时间",
101
+    PlantLocation: "电站地址",
102
+    CompositePower: "综合功率",
103
+    DeviceList: "设备列表",
104
+    CommunicationStatus: "通讯状态",
105
+    DeviceID: "设备编号",
106
+    Query: "查询",
107
+    Reset: "重置",
108
+    SNo: "序号",
109
+    DeviceName: "设备名称",
110
+    OnlineStatus: "在线状态",
111
+    TodayCharging: "今日充电量(kWh)",
112
+    TodaysDischarge: "今日放电量(kWh)",
113
+    TotalCharged: "总充电量(kWh)",
114
+    TotalDischarged: "总放电量(kWh)",
115
+    Maintenance: "运维处理(今日)",
116
+    GridActivePower: "电网有功功率(KW)",
117
+    ESSActivePower: "储能有功功率(KW)",
118
+    LoadActivePower: "负载有功功率(KW)",
119
+    Pleaseselect: "请选择",
120
+    ViewPlant: "查看电站",
121
+    BasicInformation: "基础信息",
122
+    MoreDetails: "更多信息",
123
+    PlantPhotos: "电站图片",
124
+    PlantName: "电站名称",
125
+    ContactNumber: "联系电话",
126
+    InstallationPhotos: "安装图片",
127
+    GridConnectionInfo: "并网点信息",
128
+    TransformerSpecifications: "变压器信息",
129
+    TransformerCapacity: "站点变压器容量",
130
+    Installer: "安装人",
131
+    InstallerContact: "安装人联系号码",
132
+    Close: "关闭"
133
+  },
134
+  system: {
135
+    Pleaseselect: "请选择",
136
+    Online: "在线",
137
+    Offline: "离线",
138
+    RealData: "实时数据",
139
+    todayCharge: "今日充电量",
140
+    todayDischarge: "今日放电量",
141
+    totalCharge: "累计充电量",
142
+    totalDischarge: "累计放电量",
143
+    batterySOC: "电池堆SOC",
144
+    operatingStatus: "运行状态",
145
+    powerTrend: "功率趋势",
146
+    maxChargePower: "最大充电功率",
147
+    maxDischargePower: "最大放电功率",
148
+    peakLoadPower: "最大负载功率",
149
+    alarmStatus: "告警状态",
150
+    name: "名称",
151
+    status: "状态",
152
+    chargePower: "充电功率",
153
+    dischargePower: "放电功率",
154
+    currentPower: "实时功率",
155
+    running: "运行",
156
+    shutdown: "停机",
157
+    emergencyStop: "紧急停机",
158
+    Operation: "实时运行",
159
+    live: "实时",
160
+    last7Days: "近7日",
161
+    last31Days: "近31日",
162
+    DataType: "数据类型",
163
+    activePower: "有功功率",
164
+    Meter: "电表",
165
+    BatteryStack: "电池堆",
166
+    MaxCellVoltage: "单体最高电压",
167
+    MinCellVoltage: "单体最低电压",
168
+    Query: "查询",
169
+    Peak: "尖",
170
+    Shoulder: "峰",
171
+    Offpeak: "平",
172
+    Valley: "谷",
173
+    Total: "总",
174
+    LiveEnergyRevenue: "实时电量收益",
175
+    date: "日期",
176
+    Reset: "重置",
177
+    time: "时间",
178
+    charge: "充电量(kWh)",
179
+    discharge: "放电量(kWh)",
180
+    revenue: "收益(元)"
181
+  },
182
+  monitor: {
183
+    SelectPlant: "选择电站",
184
+    selectId: "选择编号",
185
+    noData: "暂无消息",
186
+    lastUpdate: "末次数据时间",
187
+    DeviceStatus: "设备状态",
188
+    Running: "运行",
189
+    Stopped: "停止",
190
+    OperationStatus: "运行状态",
191
+    Normal: "正常",
192
+    Fault: "故障",
193
+    FaultDetails: "故障状态",
194
+    DeviceMetrics: "设备数据",
195
+    DailyCharge: "当日充电量",
196
+    DailyDischarge: "当日放电量",
197
+    TotalCharged: "累计充电量",
198
+    TotalDischarged: "累计放电量",
199
+    ACFrequency: "交流频率",
200
+    TotalACActivePower: "总交流有功功率",
201
+    TotalACReactivePower: "总交流无功功率",
202
+    TotalACApparentPower: "总交流视在功率",
203
+    ACCurrent: "交流电流",
204
+    PhaseAVoltage: "A相电压",
205
+    PhaseBVoltage: "B相电压",
206
+    PhaseCVoltage: "C相电压",
207
+    DeviceErrorCode: "设备故障字",
208
+    FaultStatusWord: "故障状态字",
209
+    BranchData: "支路数据",
210
+    Branch: "支路",
211
+    DCPower: "直流功率",
212
+    DCVoltage: "直流电压",
213
+    DCCurrent: "直流电流",
214
+    totalActive: "总有功功率",
215
+    reactive: "无功功率",
216
+    apparent: "视在功率",
217
+    powerFactor: "功率因数",
218
+    phaseA: "A相有功",
219
+    phaseB: "B相有功",
220
+    phaseC: "C相有功",
221
+    EnergyData: "电量数据",
222
+    Category: "类别",
223
+    Total: "总/kWh",
224
+    Peak: "尖/kWh",
225
+    Shoulder: "峰/kWh",
226
+    Offpeak: "平/kWh",
227
+    Valley: "谷/kWh",
228
+    Idle: "空闲",
229
+    Charging: "充电",
230
+    Discharging: "放电",
231
+    FullyCharged: "充满",
232
+    FullyDischarged: "放空",
233
+    DischargeStatus: "充放电状态",
234
+    TotalVoltage: "总电压",
235
+    TotalCurrent: "总电流",
236
+    ChargePowerLimit: "充电限制功率",
237
+    DischargePowerLimit: "放电限制功率",
238
+    AvgCellTemp: "平均单体温度",
239
+    AvgCellVoltage: "平均单体电压",
240
+    MaxCellTemp: "最高单体温度",
241
+    MinCellTemp: "最低单体温度",
242
+    MaxCellVoltage: "最高单体电压",
243
+    MinCellVoltage: "最低单体电压",
244
+    Outlettemperature: "出水温度",
245
+    returntemperature: "回水温度",
246
+    outletpressure: "出水压力",
247
+    ReturnPressure: "回水压力"
248
+  },
249
+  Administration: {
250
+    SelectPlant: "选择电站",
251
+    Configuration: "电价配置",
252
+    Bind: "绑定",
253
+    Unbind: "解绑",
254
+    Management: "模板管理",
255
+    AddNew: "新增",
256
+    TemplateName: "模板名称",
257
+    templatemanagement: "模板管理",
258
+    timesharingmanagement: "分时电价管理",
259
+    Referenced: "已引用",
260
+    Unreferenced: "未引用",
261
+    CreatedBy: "创建人",
262
+    CreationTime: "创建时间",
263
+    Actions: "操作",
264
+    prompt: "请点击“绑定”按钮为对应月份选择模板以完成应用。更换模板前请点击”解绑”按钮,才可重新“绑定”。",
265
+    year: "year",
266
+    Overview: "总览",
267
+    themoon: "月",
268
+    view: "查看",
269
+    Query: "查询",
270
+    Reset: "重置",
271
+    newlyadded: "新增",
272
+    Status: "状态",
273
+    Tags: "标签",
274
+    View: "查看",
275
+    Edit: "编辑",
276
+    Templatestatus: "模板状态",
277
+    inuse: "使用中",
278
+    usage: "使用情况",
279
+    Templatelabel: "模板标签",
280
+    Templatedetails: "模板详情",
281
+    periodoftime: "时段",
282
+    Purchase: "买入电价(元/kWh)",
283
+    Sellingelectricity: "卖出电价(元/kWh)",
284
+    Pleasename: "请输入模板名称",
285
+    Startingperiod: "开始时段",
286
+    Selectstart: "选择开始时段",
287
+    Endperiod: "结束时段",
288
+    Selectend: "选择结束时段",
289
+    peakvalue: "峰值",
290
+    ChooseJianfeng: "选择尖峰平谷",
291
+    delete: "删除",
292
+    save: "保存",
293
+    close: "关闭",
294
+    AddLine: "新增行",
295
+    sure: "确定"
296
+  },
297
+  Alarm: {
298
+    Selectstation: "选择电站",
299
+    AlarmChart: "告警图表",
300
+    AlarmList: "告警列表",
301
+    Equipmentnumber: "设备编号",
302
+    Pleaseprovide: "请选择设备编号",
303
+    DeviceType: "设备类型",
304
+    Pleaseselect: "请选择设备类型",
305
+    Alarmlevel: "告警等级",
306
+    Pleaselevel: "请选择设备类型",
307
+    state: "状态",
308
+    thestatus: "请选择状态",
309
+    StartTime: "开始时间",
310
+    EndTime: "结束时间",
311
+    Query: "查询",
312
+    Reset: "重置",
313
+    export: "导出"
314
+  },
315
+  Batteryanalysis: {
316
+    Batteryanalysis: "电池状态分析"
317
+  },
318
+  reportforms: {
319
+    Electricityreport: "电量报表",
320
+    summary: "站点汇总展示所有站点报表数据,支持按日展示31天,按月展示一年内数据。",
321
+    SiteSummary: "站点汇总",
322
+    Singlereport: "单站报表",
323
+    timeframe: "时间范围",
324
+    reporttype: "报表类型",
325
+    selectsite: "选择站点",
326
+    SelectDate: "选择日期",
327
+    Query: "查询",
328
+    Reset: "重置",
329
+    export: "导出",
330
+    perioddata: "时段数据",
331
+    linechart: "折线图",
332
+    barchart: "折线图",
333
+    table: "折线图",
334
+    Peak: "尖",
335
+    Shoulder: "峰",
336
+    Offpeak: "平",
337
+    Valley: "谷",
338
+    Total: "总",
339
+    rawdata: "原始数据",
340
+    Dailydata: "当日数据",
341
+    Accumulatedata: "积累数据",
342
+    dailyreport: "日报表",
343
+    Monthlyreport: "月报表",
344
+    annualreport: "年报表"
345
+  },
346
+  incomeforms: {
347
+    incomestatement: "收益报表",
348
+    summary: " 站点汇总展示所有站点报表数据,支持按日展示31天,按月展示一年内数据。",
349
+    SiteSummary: "站点汇总",
350
+    Singlereport: "单站报表",
351
+    StartTime: "开始时间",
352
+    EndTime: "结束时间",
353
+    Query: "查询",
354
+    Reset: "重置",
355
+    export: "导出",
356
+    reporttype: "报表类型",
357
+    dailyreport: "日报表",
358
+    Monthlyreport: "月报表",
359
+    annualreport: "年报表",
360
+    selectsite: "选择站点",
361
+    SelectDate: "选择日期"
13 362
   },
14 363
   header: {
15
-    componentSize: "组件大小",
16
-    language: "国际化",
17
-    theme: "全局主题",
18
-    layoutConfig: "布局设置",
19
-    primary: "primary",
20
-    darkMode: "暗黑模式",
21
-    greyMode: "灰色模式",
22
-    weakMode: "色弱模式",
23
-    fullScreen: "全屏",
24
-    exitFullScreen: "退出全屏",
25
-    personalData: "个人信息",
364
+    personalData: "个人中心",
26 365
     changePassword: "修改密码",
27
-    logout: "退出登录"
366
+    logout: "退出"
28 367
   }
29 368
 };

+ 4
- 2
src/layouts/components/Footer/index.scss View File

@@ -1,8 +1,10 @@
1 1
 .footer {
2
-  height: 30px;
3
-  background-color: var(--el-bg-color);
2
+  height: 40px;
3
+  font-size: 14px;
4
+  color: var(--el-text-color-secondary);
4 5
   border-top: 1px solid var(--el-border-color-light);
5 6
   a {
7
+    margin-right: 10px;
6 8
     font-size: 14px;
7 9
     color: var(--el-text-color-secondary);
8 10
     text-decoration: none;

+ 1
- 0
src/layouts/components/Footer/index.vue View File

@@ -1,6 +1,7 @@
1 1
 <template>
2 2
   <div class="footer flx-center">
3 3
     <a href="http://www.hongpower.cc/" target="_blank"> 2024 © 晟运能源科技有限公司 </a>
4
+    京ICP备17045368号-1
4 5
   </div>
5 6
 </template>
6 7
 

+ 1
- 1
src/layouts/components/Header/components/Avatar.vue View File

@@ -21,7 +21,7 @@
21 21
   <!-- passwordDialog -->
22 22
   <PasswordDialog ref="passwordRef"></PasswordDialog>
23 23
 </template>
24
-<!--文件-->
24
+<!--    -->
25 25
 <script setup lang="ts">
26 26
 import { ref } from "vue";
27 27
 import { computed } from "vue";

+ 19
- 15
src/views/Administration/addition.vue View File

@@ -18,21 +18,25 @@
18 18
                 />
19 19
               </el-form-item> -->
20 20
               <div class="elform">
21
-                <el-form-item label="模板名称:" prop="postName" :rules="[{ required: true, message: '请输入模板名称' }]">
21
+                <el-form-item
22
+                  :label="$t('Administration.TemplateName')"
23
+                  prop="postName"
24
+                  :rules="[{ required: true, message: $t('Administration.Pleasename') }]"
25
+                >
22 26
                   <el-input
23 27
                     v-model="numberValidateForm.postName"
24 28
                     style="width: 300px"
25 29
                     size="large"
26 30
                     type="text"
27
-                    placeholder="请输入模板名称"
31
+                    :placeholder="$t('Administration.Pleasename')"
28 32
                     autocomplete="off"
29 33
                   />
30 34
                 </el-form-item>
31
-                <el-button type="primary" @click="addNewRow">新增行</el-button>
35
+                <el-button type="primary" @click="addNewRow">{{ $t("Administration.AddLine") }}</el-button>
32 36
               </div>
33 37
               <div class="elform"></div>
34 38
               <el-table :data="tableData" border style="width: 100%">
35
-                <el-table-column prop="startTime" label="开始时段">
39
+                <el-table-column prop="startTime" :label="$t('Administration.Startingperiod')">
36 40
                   <template #default="scope">
37 41
                     <!-- <el-input v-model="scope.row.startTime" @change="handleEdit(scope.$index, scope.row)"></el-input> -->
38 42
                     <el-time-select
@@ -40,11 +44,11 @@
40 44
                       start="00:00"
41 45
                       step="00:30"
42 46
                       end="24:00"
43
-                      placeholder="选择开始时段"
47
+                      :placeholder="$t('Administration.Selectstart')"
44 48
                     />
45 49
                   </template>
46 50
                 </el-table-column>
47
-                <el-table-column prop="endTime" label="结束时段">
51
+                <el-table-column prop="endTime" :label="$t('Administration.Endperiod')">
48 52
                   <template #default="scope">
49 53
                     <!-- <el-input v-model="scope.row.endTime" @change="handleEdit(scope.$index, scope.row)"></el-input> -->
50 54
                     <el-time-select
@@ -52,17 +56,17 @@
52 56
                       start="00:00"
53 57
                       step="00:30"
54 58
                       end="24:00"
55
-                      placeholder="选择结束时段"
59
+                      :placeholder="$t('Administration.Endperiod')"
56 60
                     />
57 61
                   </template>
58 62
                 </el-table-column>
59
-                <el-table-column prop="periodType" label="峰值">
63
+                <el-table-column prop="periodType" :label="$t('Administration.peakvalue')">
60 64
                   <template #default="scope">
61 65
                     <!-- <el-input v-model="scope.row.periodType" @change="handleEdit(scope.$index, scope.row)"></el-input> -->
62 66
                     <el-select
63 67
                       v-model="scope.row.periodType"
64 68
                       collapse-tags
65
-                      placeholder="选择尖峰平谷"
69
+                      :placeholder="$t('Administration.ChooseJianfeng')"
66 70
                       popper-class="custom-header"
67 71
                       :max-collapse-tags="1"
68 72
                       size="large"
@@ -71,27 +75,27 @@
71 75
                     </el-select>
72 76
                   </template>
73 77
                 </el-table-column>
74
-                <el-table-column prop="buyPrice" label="买入电价(元/kWh)">
78
+                <el-table-column prop="buyPrice" :label="$t('Administration.Endperiod')">
75 79
                   <template #default="scope">
76 80
                     <el-input v-model="scope.row.buyPrice" type="number"></el-input>
77 81
                   </template>
78 82
                 </el-table-column>
79
-                <el-table-column prop="salePrice" label="卖出电价(元/kWh)">
83
+                <el-table-column prop="salePrice" :label="$t('Administration.Sellingelectricity')">
80 84
                   <template #default="scope">
81 85
                     <el-input v-model="scope.row.salePrice" type="number"></el-input>
82 86
                   </template>
83 87
                 </el-table-column>
84
-                <el-table-column label="操作" width="80">
88
+                <el-table-column :label="$t('Administration.Actions')" width="80">
85 89
                   <template #default="scope">
86
-                    <div @click="handleEdit(scope.$index)">删除</div>
90
+                    <div @click="handleEdit(scope.$index)">{{ $t("Administration.delete") }}</div>
87 91
                   </template>
88 92
                 </el-table-column>
89 93
               </el-table>
90 94
             </div>
91 95
             <el-divider />
92 96
             <el-form-item class="bottom">
93
-              <el-button type="primary" @click="submitForm(formRef)">保存</el-button>
94
-              <el-button @click="resetForm(formRef)">关闭</el-button>
97
+              <el-button type="primary" @click="submitForm(formRef)">{{ $t("Administration.save") }}</el-button>
98
+              <el-button @click="resetForm(formRef)">{{ $t("Administration.close") }}</el-button>
95 99
             </el-form-item>
96 100
           </el-form>
97 101
         </div>

+ 10
- 0
src/views/Administration/index.scss View File

@@ -355,3 +355,13 @@
355 355
   // border-top: solid #222222 0.1px;
356 356
   border-right: solid #222222 0.1px;
357 357
 }
358
+.selectsite_right {
359
+  display: flex;
360
+}
361
+.tabpane_1 {
362
+  display: flex;
363
+  align-items: center;
364
+  justify-content: center;
365
+  width: 88px;
366
+  height: 30px;
367
+}

+ 272
- 67
src/views/Administration/index.vue View File

@@ -5,7 +5,7 @@
5 5
         v-if="activeName == '电价配置'"
6 6
         v-model="Singlevalue"
7 7
         collapse-tags
8
-        placeholder="选择电站"
8
+        :placeholder="$t('Administration.SelectPlant')"
9 9
         popper-class="custom-header"
10 10
         :max-collapse-tags="1"
11 11
         size="large"
@@ -22,17 +22,17 @@
22 22
     <div class="electricityprice">
23 23
       <el-card>
24 24
         <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
25
-          <el-tab-pane label="电价配置" name="电价配置">
25
+          <el-tab-pane :label="$t('Administration.Configuration')" name="电价配置">
26 26
             <el-card>
27 27
               <div class="price_allocation">
28 28
                 <el-icon><WarningFilled /></el-icon>&ensp;
29
-                请点击“绑定”按钮为对应月份选择模板以完成应用。更换模板前请点击”解绑”按钮,才可重新“绑定”。
29
+                {{ $t("Administration.prompt") }}
30 30
               </div>
31 31
             </el-card>
32 32
 
33 33
             <div class="datepicker">
34 34
               <div>
35
-                年份
35
+                {{ $t("Administration.year") }}
36 36
                 <el-date-picker
37 37
                   v-model="pickervalue"
38 38
                   type="year"
@@ -44,35 +44,39 @@
44 44
                   @change="pickerincome"
45 45
                 />
46 46
               </div>
47
-              <el-button type="primary" @click="onoverview()" size="large">总览</el-button>
47
+              <el-button type="primary" @click="onoverview()" size="large">{{ $t("Administration.Overview") }}</el-button>
48 48
             </div>
49 49
             <div class="all_ocation">
50 50
               <div class="allocation_1" v-for="(item, index) in tricitylist" :key="index">
51
-                <div class="header" :style="index % 4 == 0 ? 'border-left: 1px solid #ebeef5;' : ''">{{ item.imonth }}月</div>
51
+                <div class="header" :style="index % 4 == 0 ? 'border-left: 1px solid #ebeef5;' : ''">
52
+                  {{ item.imonth }}{{ $t("Administration.themoon") }}
53
+                </div>
52 54
                 <div class="body" :style="index % 4 == 0 ? 'border-left: 1px solid #ebeef5;' : ''">
53 55
                   <div class="body_content">{{ item.tmplName }}</div>
54 56
                   <div>
55 57
                     <div>
56 58
                       <el-button v-if="item.start == 1" type="primary" plain @click="configuration(item.tariffId)" size="small">
57
-                        查看
59
+                        {{ $t("Administration.view") }}
58 60
                       </el-button>
59 61
                     </div>
60 62
                     <div class="bodycheckbox" v-if="BUTTONS.Administrationbinding">
61 63
                       <el-button type="primary" v-if="item.start == 1" plain @click="onUnbind(item)" size="small">
62
-                        解绑
64
+                        {{ $t("Administration.Unbind") }}
63 65
                       </el-button>
64
-                      <el-button type="primary" v-else plain @click="ondetermine(item)" size="small">绑定</el-button>
66
+                      <el-button type="primary" v-else plain @click="ondetermine(item)" size="small">{{
67
+                        $t("Administration.Bind")
68
+                      }}</el-button>
65 69
                     </div>
66 70
                   </div>
67 71
                 </div>
68 72
               </div>
69 73
             </div>
70 74
           </el-tab-pane>
71
-          <el-tab-pane label="模板管理" name="模板管理">
75
+          <el-tab-pane :label="$t('Administration.templatemanagement')" name="模板管理">
72 76
             <div class="datepicker">
73 77
               <div>
74 78
                 <el-button v-if="BUTTONS.Administrationadd" type="primary" size="large" color="#0052d9" @click="newaddition">
75
-                  新增
79
+                  {{ $t("Administration.newlyadded") }}
76 80
                 </el-button>
77 81
               </div>
78 82
               <div>
@@ -82,27 +86,29 @@
82 86
                   placeholder="请输入内容,例如模板名称,标签"
83 87
                   size="large"
84 88
                 />&ensp;&ensp;
85
-                <el-button type="primary" size="large" @click="gettmplpage" color="#0052d9">查询</el-button>
86
-                <el-button size="large" @click="onreset">重置</el-button>
89
+                <el-button type="primary" size="large" @click="gettmplpage" color="#0052d9">{{
90
+                  $t("Administration.Query")
91
+                }}</el-button>
92
+                <el-button size="large" @click="onreset">{{ $t("Administration.Reset") }}</el-button>
87 93
               </div>
88 94
             </div>
89 95
 
90 96
             <div class="eltable templatebox">
91 97
               <el-table :data="tmplpagedata.records" border style="width: 100%" :show-overflow-tooltip="true">
92
-                <el-table-column prop="name" label="模板名称" />
93
-                <el-table-column prop="isUsing" label="状态" align="center" width="140">
98
+                <el-table-column prop="name" :label="$t('Administration.Reset')" />
99
+                <el-table-column prop="isUsing" :label="$t('Administration.Status')" align="center" width="140">
94 100
                   <template #default="scope">
95
-                    <div v-if="scope.row.isUsing == 1">已引用</div>
96
-                    <div v-else>未引用</div>
101
+                    <div v-if="scope.row.isUsing == 1">{{ $t("Administration.Referenced") }}</div>
102
+                    <div v-else>{{ $t("Administration.Unreferenced") }}</div>
97 103
                   </template>
98 104
                 </el-table-column>
99
-                <el-table-column prop="tags" label="标签" />
100
-                <el-table-column prop="createUserName" label="创建人" width="140" />
101
-                <el-table-column prop="createTime" label="创建时间" />
102
-                <el-table-column prop="tariffId" label="操作" width="180">
105
+                <el-table-column prop="tags" :label="$t('Administration.Tags')" />
106
+                <el-table-column prop="createUserName" :label="$t('Administration.CreatedBy')" width="140" />
107
+                <el-table-column prop="createTime" :label="$t('Administration.CreationTime')" />
108
+                <el-table-column prop="tariffId" :label="$t('Administration.Actions')" width="180">
103 109
                   <template #default="scope">
104
-                    <el-button class="bodycheck" @click="oncheck(scope.row.id)">查看</el-button>
105
-                    <el-button class="bodycheck" @click="neweditition(scope.row.id)">编辑</el-button>
110
+                    <el-button class="bodycheck" @click="oncheck(scope.row.id)">{{ $t("Administration.View") }}</el-button>
111
+                    <el-button class="bodycheck" @click="neweditition(scope.row.id)">{{ $t("Administration.Edit") }}</el-button>
106 112
                   </template>
107 113
                 </el-table-column>
108 114
               </el-table>
@@ -118,20 +124,77 @@
118 124
               </slot>
119 125
             </div>
120 126
           </el-tab-pane>
127
+          <el-tab-pane :label="$t('Administration.timesharingmanagement')" name="分时电价管理">
128
+            <div class="datepicker">
129
+              <div class="selectsite_right">
130
+                <div class="tabpane_1">地区:</div>
131
+                <el-select
132
+                  v-model="onlineStatus"
133
+                  placeholder="选择地区"
134
+                  size="large"
135
+                  style="width: 240px"
136
+                  @change="postemsDevice"
137
+                >
138
+                  <el-option
139
+                    v-for="item in province"
140
+                    :key="item.provinceid"
141
+                    :label="item.provincename"
142
+                    :value="item.provinceid"
143
+                  />
144
+                </el-select>
145
+                &ensp;&ensp;&ensp;
146
+                <div>
147
+                  选择月份:
148
+                  <el-date-picker
149
+                    v-model="timedayslist"
150
+                    type="month"
151
+                    format="YYYY-MM"
152
+                    value-format="YYYY-MM"
153
+                    size="large"
154
+                    placeholder="选择月份"
155
+                    :disabled-date="pickerOptions"
156
+                    @change="onpowerblur"
157
+                  />
158
+                </div>
159
+                &ensp;&ensp;&ensp;
160
+                <el-button type="primary" size="large" color="#0052d9" @click="newaddimport">数据回复</el-button>
161
+
162
+                <!-- newition -->
163
+              </div>
164
+            </div>
165
+            <div class="eltable templatebox">
166
+              <el-table :data="proiceexcel" border style="width: 100%" :show-overflow-tooltip="true">
167
+                <el-table-column prop="provincename" label="湖南" />
168
+                <el-table-column prop="year" label="年" />
169
+                <el-table-column prop="month" label="月份" />
170
+                <el-table-column prop="createdate" label="创建时间" />
171
+              </el-table>
172
+            </div>
173
+            <div class="pagination">
174
+              <div></div>
175
+              <slot name="pagination">
176
+                <Pagination
177
+                  :pageable="pageable"
178
+                  :handle-size-change="handleSizeChange"
179
+                  :handle-current-change="handleCurrentChange"
180
+                />
181
+              </slot>
182
+            </div>
183
+          </el-tab-pane>
121 184
         </el-tabs>
122 185
       </el-card>
123 186
     </div>
124
-    <el-dialog v-model="dialogVisible" title="模板详情" width="1000" :before-close="handleClose" border>
187
+    <el-dialog v-model="dialogVisible" :title="$t('Administration.TemplateName')" width="1000" :before-close="handleClose" border>
125 188
       <div class="dialog_title">
126
-        <div class="more_name">模板名称:</div>
189
+        <div class="more_name">{{ $t("Administration.TemplateName") }}:</div>
127 190
         <div class="more_theme">{{ tytmplpagedetails.data[0].name }}</div>
128 191
       </div>
129 192
       <div class="dialog_title">
130
-        <div class="more_name">模板状态:</div>
131
-        <div class="more_theme">使用中</div>
193
+        <div class="more_name">{{ $t("Administration.Templatestatus") }}:</div>
194
+        <div class="more_theme">{{ $t("Administration.inuse") }}</div>
132 195
       </div>
133 196
       <div class="dialog_title">
134
-        <div class="more_name">使用情况:</div>
197
+        <div class="more_name">{{ $t("Administration.usage") }}:</div>
135 198
         <div class="more_theme">
136 199
           <div class="dialog_11">
137 200
             <div class="dialog_1" v-for="(item, index) in tytmplpagedetails.stationUsing" :key="index">
@@ -141,7 +204,7 @@
141 204
         </div>
142 205
       </div>
143 206
       <div class="dialog_title">
144
-        <div class="more_name">模板标签:</div>
207
+        <div class="more_name">{{ $t("Administration.Templatelabel") }}:</div>
145 208
         <div class="more_theme">-</div>
146 209
       </div>
147 210
       <div class="eltable1">
@@ -153,7 +216,7 @@
153 216
             </template>
154 217
           </el-table-column>
155 218
 
156
-          <el-table-column prop="periodType" label="时段" width="180" align="center">
219
+          <el-table-column prop="periodType" :label="$t('Administration.Templatelabel')" width="180" align="center">
157 220
             <template #default="scope">
158 221
               <div v-if="scope.row.periodType == 2">峰</div>
159 222
               <div v-if="scope.row.periodType == 1">尖</div>
@@ -161,27 +224,33 @@
161 224
               <div v-if="scope.row.periodType == 3">平</div>
162 225
             </template>
163 226
           </el-table-column>
164
-          <el-table-column prop="buyPrice" label="买入电价(元/kWh)" align="center" />
165
-          <el-table-column prop="salePrice" label="卖出电价(元/kWh)" align="center" />
227
+          <el-table-column prop="buyPrice" :label="$t('Administration.Purchase')" align="center" />
228
+          <el-table-column prop="salePrice" :label="$t('Administration.Sellingelectricity')" align="center" />
166 229
         </el-table>
167 230
       </div>
168 231
       <template #footer>
169 232
         <div class="dialog_footer">
170
-          <el-button type="primary" @click="dialogVisible = false" color="#0052d9"> 确定 </el-button>
233
+          <el-button type="primary" @click="dialogVisible = false" color="#0052d9"> {{ $t("Administration.sure") }} </el-button>
171 234
         </div>
172 235
       </template>
173 236
     </el-dialog>
174
-    <el-dialog v-model="dialogtmptariff" title="模板详情" width="1000" :before-close="handleClose" border>
237
+    <el-dialog
238
+      v-model="dialogtmptariff"
239
+      :title="$t('Administration.Templatedetails')"
240
+      width="1000"
241
+      :before-close="handleClose"
242
+      border
243
+    >
175 244
       <div class="dialog_title">
176
-        <div class="more_name">模板名称:</div>
245
+        <div class="more_name">{{ $t("Administration.TemplateName") }}:</div>
177 246
         <div class="more_theme">{{ tytmpltariff.data[0].name }}</div>
178 247
       </div>
179 248
       <div class="dialog_title">
180
-        <div class="more_name">模板状态:</div>
181
-        <div class="more_theme">使用中</div>
249
+        <div class="more_name">{{ $t("Administration.TemplateName") }}:</div>
250
+        <div class="more_theme">{{ $t("Administration.inuse") }}</div>
182 251
       </div>
183 252
       <div class="dialog_title">
184
-        <div class="more_name">使用情况:</div>
253
+        <div class="more_name">{{ $t("Administration.usage") }}:</div>
185 254
         <div class="more_theme">
186 255
           <div class="dialog_11">
187 256
             <div class="dialog_1" v-for="(item, index) in tytmpltariff.stationUsing" :key="index">
@@ -191,7 +260,7 @@
191 260
         </div>
192 261
       </div>
193 262
       <div class="dialog_title">
194
-        <div class="more_name">模板标签:</div>
263
+        <div class="more_name">{{ $t("Administration.Templatelabel") }}:</div>
195 264
         <div class="more_theme">-</div>
196 265
       </div>
197 266
       <div class="eltable1">
@@ -203,7 +272,7 @@
203 272
             </template>
204 273
           </el-table-column>
205 274
 
206
-          <el-table-column prop="periodType" label="时段" width="180" align="center">
275
+          <el-table-column prop="periodType" :label="$t('Administration.periodoftime')" width="180" align="center">
207 276
             <template #default="scope">
208 277
               <div v-if="scope.row.periodType == 2">峰</div>
209 278
               <div v-if="scope.row.periodType == 1">尖</div>
@@ -211,13 +280,13 @@
211 280
               <div v-if="scope.row.periodType == 3">平</div>
212 281
             </template>
213 282
           </el-table-column>
214
-          <el-table-column prop="buyPrice" label="买入电价(元/kWh)" align="center" />
215
-          <el-table-column prop="salePrice" label="卖出电价(元/kWh)" align="center" />
283
+          <el-table-column prop="buyPrice" :label="$t('Administration.Purchase')" align="center" />
284
+          <el-table-column prop="salePrice" :label="$t('Administration.Sellingelectricity')" align="center" />
216 285
         </el-table>
217 286
       </div>
218 287
       <template #footer>
219 288
         <div class="dialog_footer">
220
-          <el-button type="primary" @click="dialogtmptariff = false" color="#0052d9"> 确定 </el-button>
289
+          <el-button type="primary" @click="dialogtmptariff = false" color="#0052d9"> {{ $t("Administration.sure") }} </el-button>
221 290
         </div>
222 291
       </template>
223 292
     </el-dialog>
@@ -225,7 +294,7 @@
225 294
       <div class="dialog">
226 295
         <div class="dialog_box">
227 296
           <div class="dialog_box111">
228
-            <div class="dialog_box1">时段</div>
297
+            <div class="dialog_box1">{{ $t("Administration.periodoftime") }}</div>
229 298
             <div class="overview_dox1" v-for="(itme, index) in headers" :key="index">{{ itme }}</div>
230 299
           </div>
231 300
           <div class="overview_title1" v-for="(item, index) in poweroverdata" :key="index">
@@ -245,29 +314,56 @@
245 314
 
246 315
       <template #footer>
247 316
         <div class="dialog_footer">
248
-          <el-button type="primary" @click="overview = false" color="#0052d9"> 确定 </el-button>
317
+          <el-button type="primary" @click="overview = false" color="#0052d9"> {{ $t("Administration.sure") }} </el-button>
249 318
         </div>
250 319
       </template>
251 320
     </el-dialog>
252 321
     <!--    -->
253 322
     <el-dialog v-model="binding" title="绑定" :before-close="handbinding" width="600" border>
254 323
       <div class="overview_title">
255
-        <div>模板名称:</div>
256
-        <el-select v-model="onbindingvalue" filterable placeholder="请绑定模板名称" style="width: 300px" size="large">
324
+        <div>{{ $t("Administration.TemplateName") }}:</div>
325
+        <el-select
326
+          v-model="onbindingvalue"
327
+          filterable
328
+          :placeholder="$t('Administration.TemplateName')"
329
+          style="width: 300px"
330
+          size="large"
331
+        >
257 332
           <el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id" />
258 333
         </el-select>
259 334
       </div>
260 335
 
261 336
       <template #footer>
262 337
         <div class="dialog_footer">
263
-          <el-button type="primary" @click="onbinding" color="#0052d9"> 确定 </el-button>
338
+          <el-button type="primary" @click="onbinding" color="#0052d9"> {{ $t("Administration.sure") }} </el-button>
339
+        </div>
340
+      </template>
341
+    </el-dialog>
342
+
343
+    <el-dialog v-model="energystorage" title="大储导入" top="100px" width="40%" @close="handenergyClose">
344
+      <div class="dialoglexce_box">
345
+        <div class="dialoglexce_right">
346
+          <el-upload class="upload-demo" :data="uploadData" drag :before-upload="beforeUpload" multiple>
347
+            <el-icon class="el-icon--upload"><upload-filled /></el-icon>
348
+            <div class="el-upload__text">点击上传 <em>拖拽上传</em></div>
349
+            <template #tip>
350
+              <div class="el-upload__tip">上传文件,文件大小500kb</div>
351
+            </template>
352
+          </el-upload>
353
+        </div>
354
+      </div>
355
+
356
+      <template #footer>
357
+        <div class="dialog-footer">
358
+          <el-button @click="handenergyClose">取消导出</el-button>
359
+          <el-button type="primary" @click="handenergysure"> 确定 </el-button>
264 360
         </div>
265 361
       </template>
266 362
     </el-dialog>
267 363
   </div>
268 364
 </template>
269 365
 <!--   
270
-      
366
+  
271 367
 -->
272 368
 <script setup lang="ts">
273 369
 import { onMounted, Ref, ref } from "vue";
@@ -279,7 +375,10 @@ import {
279 375
   insertscheduletariffURL,
280 376
   selectelectURL,
281 377
   selectpoweroverviewURL,
282
-  electricitytmptariff
378
+  electricitytmptariff,
379
+  selectproiceexcelURL,
380
+  selectprovinceURL,
381
+  priceanalysisURL
283 382
 } from "@/api/home/Multisite";
284 383
 import { other, Station } from "@/api/interface";
285 384
 import Pagination from "@/components/ProTable/components/Pagination.vue";
@@ -311,10 +410,15 @@ const postersDevice = async (value: any) => {
311 410
 };
312 411
 
313 412
 const handleClick = async (val: any) => {
413
+  console.log(val);
414
+
314 415
   if (val.props.name == "电价配置") {
315 416
     getelectricitylist();
316
-  } else {
417
+  } else if (val.props.name == "模板管理") {
317 418
     gettmplpage();
419
+  } else if (val.props.name == "分时电价管理") {
420
+    getselectprovince();
421
+    getselectproiceexcel();
318 422
   }
319 423
 };
320 424
 // 电价配置
@@ -534,7 +638,7 @@ const getselectpoweroverview = async () => {
534 638
     "03:30",
535 639
     "04:00",
536 640
     "04:30",
537
-    "05:30",
641
+    "05:00",
538 642
     "05:30",
539 643
     "06:00",
540 644
     "06:30",
@@ -569,7 +673,9 @@ const getselectpoweroverview = async () => {
569 673
     "21:00",
570 674
     "21:30",
571 675
     "22:00",
572
-    "22:30"
676
+    "22:30",
677
+    "23:00",
678
+    "23:30"
573 679
   ];
574 680
   const months = Array.from({ length: 12 }, (_, i) => i + 1);
575 681
   // 初始化表格
@@ -578,19 +684,26 @@ const getselectpoweroverview = async () => {
578 684
     ...months.reduce((acc, month) => ({ ...acc, [month]: "" }), {})
579 685
   }));
580 686
 
581
-  // 填充表格
687
+  // 填充表格(优化版)
582 688
   getdata.forEach(item => {
583
-    table.forEach((items, i) => {
584
-      const startTime = timeSlots.indexOf(item.startTime);
585
-      let endTime = timeSlots.indexOf(item.endTime);
586
-      if (item.startTime == getdata[getdata.length - 1].startTime) {
587
-        endTime = getdata.length - 1;
588
-      }
589
-
590
-      if (startTime <= i && i < endTime) {
591
-        table[i][item.imonth] = item.periodType;
592
-      }
593
-    });
689
+    const startIndex = timeSlots.indexOf(item.startTime);
690
+    let endIndex = timeSlots.indexOf(item.endTime);
691
+
692
+    // 处理找不到时间的情况
693
+    if (startIndex === -1 || endIndex === -1) {
694
+      console.warn(`找不到时间: ${item.startTime} 或 ${item.endTime}`);
695
+      return;
696
+    }
697
+
698
+    // 处理跨天情况(结束时间小于开始时间)
699
+    if (endIndex < startIndex) {
700
+      endIndex += timeSlots.length;
701
+    }
702
+
703
+    // 填充时间段
704
+    for (let i = startIndex; i < endIndex && i < timeSlots.length; i++) {
705
+      table[i % timeSlots.length][item.imonth] = item.periodType;
706
+    }
594 707
   });
595 708
   console.log(getdata);
596 709
   console.log(table);
@@ -603,7 +716,90 @@ const getNextTime = (index: number) => {
603 716
   if (nextIndex < poweroverdata.value.length) {
604 717
     return poweroverdata.value[nextIndex].time;
605 718
   } else {
606
-    return "23:00";
719
+    return "24:00";
720
+  }
721
+};
722
+// 分时电价管理
723
+const proiceexcel = ref();
724
+// 分页
725
+const paging = ref({
726
+  pn: 1,
727
+  ps: 10,
728
+  total: 0
729
+});
730
+const province = ref();
731
+const timedayslist = ref("");
732
+const iceexcelyear = ref("");
733
+const iceexcelmonth = ref("");
734
+const getselectprovince = async () => {
735
+  let obj = {};
736
+  const { data } = await selectprovinceURL(obj);
737
+  console.log(data);
738
+  province.value = data;
739
+};
740
+const getselectproiceexcel = async () => {
741
+  let obj = {
742
+    provincename: onlineStatus.value,
743
+    year: iceexcelyear.value,
744
+    month: iceexcelmonth.value
745
+  };
746
+  const { data } = await selectproiceexcelURL(obj);
747
+  console.log(data);
748
+
749
+  proiceexcel.value = data;
750
+  paging.value.total = proiceexcel.value.total;
751
+};
752
+// 查询地址
753
+const onlineStatus = ref();
754
+const postemsDevice = async (value: any) => {
755
+  onlineStatus.value = value;
756
+};
757
+
758
+// 查询月份
759
+const pickerOptions = (time: { getTime: (arg0: Date) => number }) => {
760
+  return time.getTime(new Date()) > Date.now();
761
+};
762
+const onpowerblur = (e: any) => {
763
+  console.log(e);
764
+  // e.substring(0, 4);
765
+  iceexcelyear.value = e.substring(0, 4);
766
+  iceexcelmonth.value = e.substring(5, 7);
767
+  timedayslist.value = e;
768
+};
769
+const energystorage = ref();
770
+const uploadData = ref();
771
+
772
+const newaddimport = () => {
773
+  energystorage.value = true;
774
+};
775
+const handenergyClose = async () => {
776
+  energystorage.value = false;
777
+  uploadData.value = "";
778
+};
779
+const beforeUpload = (file: Blob | MediaSource) => {
780
+  // 获取文件的临时路径
781
+  const filePath = URL.createObjectURL(file);
782
+  console.log("文件临时路径:", filePath);
783
+  console.log(file);
784
+  uploadData.value = file;
785
+  // 手动上传文件
786
+  // uploadFile(file);
787
+
788
+  // 返回 false,阻止默认上传行为
789
+  return false;
790
+};
791
+const handenergysure = async () => {
792
+  let obj = {};
793
+  // 创建 FormData 对象
794
+  const formData = new FormData();
795
+  formData.append("file", uploadData.value); // 添加文件
796
+  try {
797
+    // 调用上传接口
798
+    const { data } = await priceanalysisURL(obj, formData);
799
+    console.log(data);
800
+    energystorage.value = false;
801
+  } catch (error) {
802
+    console.error("上传失败:", error);
607 803
   }
608 804
 };
609 805
 onMounted(() => {
@@ -618,6 +814,15 @@ onMounted(() => {
618 814
   } else {
619 815
     activeName.value = "电价配置";
620 816
   }
817
+  const today = new Date();
818
+  const sevenDaysAgoDate = new Date(today);
819
+  sevenDaysAgoDate.setDate(today.getDate() - 7);
820
+  // const year = sevenDaysAgoDate.getFullYear();
821
+  // const month = String(sevenDaysAgoDate.getMonth() + 1).padStart(2, "0"); // Months are zero-based
822
+  // const formattedDate = `${year}-${month}`;
823
+
824
+  // timedayslist.value = formattedDate;
825
+
621 826
   getselectelect();
622 827
 });
623 828
 </script>
@@ -625,5 +830,5 @@ onMounted(() => {
625 830
 @import "./index.scss";
626 831
 </style>
627 832
 <!--
628
-    
833
+  
629 834
  -->

+ 29
- 23
src/views/Alarm/index.vue View File

@@ -4,7 +4,7 @@
4 4
       <el-select
5 5
         v-model="Singlevalue"
6 6
         collapse-tags
7
-        placeholder="选择电站"
7
+        :placeholder="$t('Alarm.Selectstation')"
8 8
         popper-class="custom-header"
9 9
         :max-collapse-tags="1"
10 10
         class="Space_content"
@@ -37,7 +37,7 @@
37 37
       <el-card>
38 38
         <template #header>
39 39
           <div class="card-header">
40
-            <div>告警图表</div>
40
+            <div>{{ $t("Alarm.Selectstation") }}</div>
41 41
           </div>
42 42
         </template>
43 43
         <div class="chart">
@@ -46,29 +46,35 @@
46 46
           <div ref="equipmenttype" class="equipmenttype"></div>
47 47
         </div>
48 48
         <div class="Alarmlist">
49
-          <div class="Alarmlist_Alarm">告警列表</div>
49
+          <div class="Alarmlist_Alarm">{{ $t("Alarm.AlarmList") }}</div>
50 50
           <div class="screen">
51 51
             <div class="screen_1">
52
-              <div>设备编号:</div>
53
-              <el-select v-model="emsDeviceId" placeholder="请选择设备类型" size="large" style="width: 240px" clearable>
52
+              <div>{{ $t("Alarm.Equipmentnumber") }}:</div>
53
+              <el-select
54
+                v-model="emsDeviceId"
55
+                :placeholder="$t('Alarm.Pleaseprovide')"
56
+                size="large"
57
+                style="width: 240px"
58
+                clearable
59
+              >
54 60
                 <el-option v-for="item in emsDevice" :key="item.id" :label="item.emsDeviceId" :value="item.id" />
55 61
               </el-select>
56 62
             </div>
57 63
             <div class="screen_1">
58
-              <div>设备类型:</div>
59
-              <el-select v-model="quipment" placeholder="请选择设备类型" size="large" style="width: 240px" clearable>
64
+              <div>{{ $t("Alarm.DeviceType") }}:</div>
65
+              <el-select v-model="quipment" :placeholder="$t('Alarm.Pleaseselect')" size="large" style="width: 240px" clearable>
60 66
                 <el-option v-for="item in quipmentlist" :key="item.daviceClass" :label="item.name" :value="item.daviceClass" />
61 67
               </el-select>
62 68
             </div>
63 69
             <div class="screen_1">
64
-              <div>告警等级:</div>
65
-              <el-select v-model="alarm" placeholder="请选择告警等级" size="large" style="width: 240px" clearable>
70
+              <div>{{ $t("Alarm.Alarmlevel") }}:</div>
71
+              <el-select v-model="alarm" :placeholder="$t('Alarm.Pleaselevel')" size="large" style="width: 240px" clearable>
66 72
                 <el-option v-for="item in alarmlist" :key="item.code" :label="item.name" :value="item.code" />
67 73
               </el-select>
68 74
             </div>
69 75
             <div class="screen_1">
70
-              <div>状态:</div>
71
-              <el-select v-model="alarmstatus" placeholder="请选择状态" size="large" style="width: 240px" clearable>
76
+              <div>{{ $t("Alarm.state") }}:</div>
77
+              <el-select v-model="alarmstatus" :placeholder="$t('Alarm.thestatus')" size="large" style="width: 240px" clearable>
72 78
                 <el-option v-for="item in alarmstatuslist" :key="item.todayId" :label="item.name" :value="item.todayId" />
73 79
               </el-select>
74 80
             </div>
@@ -81,23 +87,23 @@
81 87
           </div>
82 88
           <div class="screentime">
83 89
             <div class="screen_1">
84
-              <div>起止时间:</div>
90
+              <div>{{ $t("Alarm.TimeRange") }}:</div>
85 91
               <el-date-picker
86 92
                 size="large"
87 93
                 v-model="timevalue"
88 94
                 type="daterange"
89 95
                 :shortcuts="shortcuts"
90
-                start-placeholder="开始时间"
91
-                end-placeholder="结束时间"
96
+                :start-placeholder="$t('Alarm.StartTime')"
97
+                :end-placeholder="$t('Alarm.EndTime')"
92 98
                 :default-value="timevalue"
93 99
                 value-format="YYYY-MM-DD hh:mm:ss"
94 100
                 :disabled-date="pickerOptions"
95 101
               />
96 102
             </div>
97 103
             <div class="screen_1">
98
-              <el-button type="primary" @click="getpostpageInfo">查询</el-button>
99
-              <el-button @click="onexport">导出</el-button>
100
-              <el-button @click="onreset">重置</el-button>
104
+              <el-button type="primary" @click="getpostpageInfo">{{ $t("Alarm.Query") }}</el-button>
105
+              <el-button @click="onexport">{{ $t("Alarm.export") }}</el-button>
106
+              <el-button @click="onreset">{{ $t("Alarm.Reset") }}</el-button>
101 107
             </div>
102 108
           </div>
103 109
           <div class="eltable">
@@ -129,8 +135,9 @@
129 135
     </div>
130 136
   </div>
131 137
 </template>
132
-<!--    -->
133
-<!--    -->
138
+<!--
139
+
140
+-->
134 141
 <script setup lang="ts">
135 142
 import { onMounted, Ref, ref } from "vue";
136 143
 import {
@@ -599,7 +606,6 @@ onMounted(() => {
599 606
   if (current) {
600 607
     currentDate.value = current;
601 608
   }
602
-
603 609
   poststationstationName();
604 610
   getposthandlingSugg();
605 611
 });
@@ -607,6 +613,6 @@ onMounted(() => {
607 613
 <style scoped lang="scss">
608 614
 @import "./index.scss";
609 615
 </style>
610
-<!-- -->
611
-<!--  
612
-  -->
616
+<!--
617
+
618
+-->

+ 34
- 0
src/views/Batteryanalysis/index.scss View File

@@ -0,0 +1,34 @@
1
+.screen {
2
+  display: flex;
3
+  width: 100%;
4
+  margin-bottom: 20px;
5
+}
6
+.screen1 {
7
+  display: flex;
8
+  justify-content: space-between;
9
+  width: 100%;
10
+}
11
+.cardbottom {
12
+  margin-top: 20px;
13
+}
14
+.title {
15
+  display: flex;
16
+  align-items: center;
17
+  margin-bottom: 20px;
18
+  font-size: 18px;
19
+  .title_time {
20
+    margin-left: 10px;
21
+    font-size: 16px;
22
+  }
23
+}
24
+#income {
25
+  width: 100%;
26
+  height: 550px;
27
+}
28
+#temperature {
29
+  width: 100%;
30
+  height: 550px;
31
+}
32
+.temperature {
33
+  height: 20px;
34
+}

+ 3315
- 0
src/views/Batteryanalysis/index.vue
File diff suppressed because it is too large
View File


+ 73
- 0
src/views/consolidation/index.scss View File

@@ -0,0 +1,73 @@
1
+.screen {
2
+  display: flex;
3
+  width: 100%;
4
+  margin-bottom: 20px;
5
+}
6
+.screen1 {
7
+  display: flex;
8
+  justify-content: space-between;
9
+  width: 100%;
10
+}
11
+.cardbottom {
12
+  margin-top: 20px;
13
+}
14
+.title {
15
+  display: flex;
16
+  align-items: center;
17
+  margin-bottom: 20px;
18
+  font-size: 18px;
19
+  .title_time {
20
+    margin-left: 10px;
21
+    font-size: 16px;
22
+  }
23
+}
24
+.pagination {
25
+  display: flex;
26
+  justify-content: space-between;
27
+  margin-top: 20px;
28
+}
29
+.btn-group {
30
+  display: flex;
31
+  gap: 10px; /* 按钮之间的间隔 */
32
+  align-items: center; /* 垂直居中按钮 */
33
+  justify-content: center; /* 水平居中按钮 */
34
+}
35
+.dialog_box {
36
+  display: flex;
37
+  align-items: center;
38
+  width: 100%;
39
+  padding: 20px 60px;
40
+  margin-top: 40px;
41
+}
42
+.dialog_box1 {
43
+  display: flex;
44
+  width: 100%;
45
+  padding: 20px 60px;
46
+  margin-top: 10px;
47
+}
48
+.dialog_box2 {
49
+  display: flex;
50
+  align-items: center;
51
+  width: 100%;
52
+  padding: 20px 60px;
53
+  margin-top: 10px;
54
+  margin-bottom: 10px;
55
+}
56
+.dialog_name {
57
+  display: flex;
58
+  margin-right: 20px;
59
+}
60
+.dialog_footer {
61
+  display: flex;
62
+  align-items: center;
63
+  justify-content: center;
64
+}
65
+.elimageurl {
66
+  display: flex;
67
+  overflow: hidden;
68
+  overflow: auto auto;
69
+}
70
+.Required {
71
+  width: 10px;
72
+  color: red;
73
+}

+ 223
- 0
src/views/consolidation/index.vue View File

@@ -0,0 +1,223 @@
1
+<template>
2
+  <div>
3
+    <div class="title">
4
+      并网点管理
5
+      <div class="title_time">{{ currentDate }}</div>
6
+    </div>
7
+    <div class="card">
8
+      <div class="screen">
9
+        <div>
10
+          选择电站&ensp;&ensp;<el-select v-model="Singlevalue" placeholder="选择电站" size="large" style="width: 240px">
11
+            <el-option v-for="item in cities" :key="item.id" :label="item.stationName" :value="item.id" />
12
+          </el-select>
13
+        </div>
14
+        &ensp;&ensp; &ensp;&ensp;
15
+        <div>
16
+          并网点名称&ensp;&ensp;<el-input
17
+            v-model="emsdevicename"
18
+            style="width: 300px"
19
+            size="large"
20
+            placeholder="输入并网点名称"
21
+          />
22
+        </div>
23
+        <!-- <div>
24
+            &ensp;&ensp;&ensp;&ensp;
25
+            岗位名称&ensp;&ensp;<el-input
26
+              v-model="postName"
27
+              style="width: 300px"
28
+              size="large"
29
+              placeholder="输入岗位名称"
30
+            />
31
+          </div> -->
32
+        &ensp;&ensp; &ensp;&ensp;
33
+        <div>
34
+          <el-button type="primary" size="large" color="#0052d9" @click="query(0)">查询</el-button>
35
+          <el-button size="large" @click="query(1)">重置</el-button>&ensp;&ensp;
36
+        </div>
37
+      </div>
38
+      <div class="screen1"></div>
39
+    </div>
40
+    <div class="card cardbottom">
41
+      <!-- <el-button type="primary" size="large" color="#0052d9" @click="newaddition">新增</el-button> -->
42
+      <div>&ensp;</div>
43
+      <el-table :data="tableData.records" :show-overflow-tooltip="true" style="width: 100%" border>
44
+        <el-table-column prop="conscolidationId" label="并网点编号" />
45
+        <el-table-column prop="name" label="并网点名称" />
46
+        <el-table-column prop="powername" label="归属电站" />
47
+
48
+        <el-table-column prop="operationDate" label="创建时间" />
49
+        <el-table-column prop="acPower" label="交流功率" />
50
+        <el-table-column prop="insertalled" label="额定功率" />
51
+        <el-table-column prop="installedCap" label="装机容量" />
52
+        <el-table-column prop="soc" label="soc" />
53
+        <el-table-column prop="consolidationUrl" label="并网点图片" align="center" width="200">
54
+          <template #default="scope">
55
+            <div class="elimageurl">
56
+              <div v-for="(item, index) in scope.row.consolidationUrl" :key="index">
57
+                <el-image
58
+                  style="width: 60px; height: 60px; margin-right: 10px"
59
+                  :src="item"
60
+                  :zoom-rate="1.2"
61
+                  :max-scale="7"
62
+                  :min-scale="0.2"
63
+                  :preview-teleported="true"
64
+                  :preview-src-list="scope.row.consolidationUrl"
65
+                  :initial-index="index"
66
+                  fit="cover"
67
+                />
68
+              </div>
69
+            </div>
70
+
71
+            <!-- <img v-for="(item, index) in scope.row.url" :key="index" :src="item" alt="" style="height: 60px" /> -->
72
+          </template>
73
+        </el-table-column>
74
+        <el-table-column label="操作" align="center">
75
+          <template #default="scope">
76
+            <el-button color="#0052d9" type="primary" @click="newition(scope.row)"> 编辑 </el-button>
77
+            <el-button v-if="BUTTONS.equipmentedit" color="#0052d9" type="primary" @click="newition(scope.row)"> 编辑 </el-button>
78
+            <!-- <el-button @click="onremove(scope.row)">删除</el-button> -->
79
+          </template>
80
+        </el-table-column>
81
+      </el-table>
82
+      <!-- 分页组件 -->
83
+      <div class="pagination">
84
+        <div></div>
85
+        <slot name="pagination">
86
+          <Pagination :pageable="pageable" :handle-size-change="handleSizeChange" :handle-current-change="handleCurrentChange" />
87
+        </slot>
88
+      </div>
89
+    </div>
90
+    <el-dialog v-model="dialogVisible" title="修改并网点名称" width="1000" :before-close="handleClose" border>
91
+      <div class="dialog_box">
92
+        <div class="dialog_name"><span class="Required">*</span> 并网点名称</div>
93
+        <el-input v-model="emsdeviceidname" style="width: 300px" size="large" placeholder="输入并网点名称" />
94
+      </div>
95
+
96
+      <template #footer>
97
+        <div class="dialog_footer">
98
+          <el-button type="primary" @click="determine" size="large" color="#0052d9"> 确定 </el-button>
99
+        </div>
100
+      </template>
101
+    </el-dialog>
102
+  </div>
103
+</template>
104
+<!--    -->
105
+<script setup lang="ts">
106
+import {
107
+  selectconsolidationURL,
108
+  stationstationName,
109
+  updateconsolidationURL,
110
+  selectconsolidationidURL
111
+} from "@/api/home/Multisite";
112
+import Pagination from "@/components/ProTable/components/Pagination.vue";
113
+import { onMounted, ref, Ref } from "vue";
114
+import { Station } from "@/api/interface";
115
+import { useAuthButtons } from "@/hooks/useAuthButtons";
116
+
117
+const { BUTTONS } = useAuthButtons();
118
+// 绑定设备
119
+const Singlevalue = ref("");
120
+const cities: Ref<Station.todo[]> = ref([]);
121
+// 编辑绑定设备
122
+const powerstation: Ref<Station.todo[]> = ref([]);
123
+
124
+const poststationstationName = async () => {
125
+  const { data } = await stationstationName({});
126
+  const res = await stationstationName({});
127
+  powerstation.value = res.data;
128
+  cities.value = data;
129
+  cities.value.unshift({
130
+    id: "",
131
+    stationName: "全部",
132
+    energyMgrMode: 0,
133
+    priceCfgMode: 0,
134
+    sortNo: 0,
135
+    timezone: ""
136
+  });
137
+  Singlevalue.value = data[0].id;
138
+};
139
+const query = (val: any) => {
140
+  if (val == 0) {
141
+    getplatformuserlist();
142
+  } else {
143
+    (emsdevicename.value = ""), (Singlevalue.value = "");
144
+    getplatformuserlist();
145
+  }
146
+};
147
+// 编辑
148
+const emsdeviceidname = ref();
149
+const dialogVisible = ref();
150
+const selectems = ref();
151
+const conscolidationId = ref();
152
+const newition = async (row: { url: never[]; emsDeviceId: any; conscolidationId: any }) => {
153
+  console.log(row.conscolidationId);
154
+  conscolidationId.value = row.conscolidationId;
155
+  const { data } = await selectconsolidationidURL({ consolidationId: row.conscolidationId });
156
+  console.log(data);
157
+  selectems.value = data;
158
+
159
+  emsdeviceidname.value = selectems.value.name; //设备名称
160
+  dialogVisible.value = true;
161
+};
162
+
163
+// 确定
164
+const determine = async () => {
165
+  let obj = {
166
+    name: emsdeviceidname.value,
167
+    consolidationId: conscolidationId.value
168
+  };
169
+  const { data } = await updateconsolidationURL(obj);
170
+  console.log(data);
171
+  getplatformuserlist();
172
+  dialogVisible.value = false;
173
+};
174
+// 弹出取消
175
+const handleClose = () => {
176
+  dialogVisible.value = false;
177
+};
178
+const tableData = ref();
179
+const emsdevicename = ref("");
180
+const pageable = ref({
181
+  pn: 1,
182
+  ps: 10,
183
+  total: 0
184
+});
185
+const getplatformuserlist = async () => {
186
+  let obj = {
187
+    consolidationId: "", // 设备名称
188
+    powerId: Singlevalue.value, //查询电站id
189
+    consolidationName: emsdevicename.value, // 设备名称
190
+    pn: pageable.value.pn,
191
+    ps: pageable.value.ps
192
+  };
193
+  const { data } = await selectconsolidationURL(obj);
194
+  tableData.value = data;
195
+  pageable.value.total = tableData.value.total;
196
+};
197
+// 表格操作 Hooks
198
+const handleSizeChange = async (e: any) => {
199
+  pageable.value.ps = e;
200
+  getplatformuserlist();
201
+};
202
+const handleCurrentChange = async (e: any) => {
203
+  pageable.value.pn = e;
204
+
205
+  getplatformuserlist();
206
+};
207
+
208
+const currentDate = ref();
209
+onMounted(() => {
210
+  const current = localStorage.getItem("currentDate");
211
+  if (current) {
212
+    currentDate.value = current;
213
+  }
214
+  getplatformuserlist();
215
+  poststationstationName();
216
+});
217
+</script>
218
+<style scoped lang="scss">
219
+@import "./index.scss";
220
+</style>
221
+<!--
222
+
223
+--->

+ 52
- 43
src/views/home/index.vue View File

@@ -1,7 +1,7 @@
1 1
 <template>
2 2
   <div>
3 3
     <div class="title">
4
-      多站总览
4
+      {{ $t("home.title") }}
5 5
       <div class="title_time">{{ currentDate }}</div>
6 6
     </div>
7 7
     <el-row :gutter="20">
@@ -9,21 +9,25 @@
9 9
         <el-card>
10 10
           <div class="grid-content ep-bg-purple">
11 11
             <div class="overview_title1">
12
-              <div class="overview_title_name">站点总数</div>
12
+              <div class="overview_title_name">{{ $t("home.TotalSites") }}</div>
13 13
             </div>
14 14
             <div class="overview_title">
15
-              <div class="overview_titlename">{{ multiStation.stationTotalCount }}<span class="overview_unit"> 个</span></div>
15
+              <div class="overview_titlename">
16
+                {{ multiStation.stationTotalCount }}<span class="overview_unit"> {{ $t("type") == "zh" ? "个" : "" }}</span>
17
+              </div>
16 18
               <div class="overview_img">
17 19
                 <img src="../../assets/images/server2.png" alt="站点" />
18 20
               </div>
19 21
             </div>
20 22
             <div class="overview_line">
21
-              在线 {{ multiStation.stationOnlineCount }} 个 \ 离线 {{ multiStation.stationOfflineCount }} 个
23
+              {{ $t("home.online") }} {{ multiStation.stationOnlineCount }} {{ $t("type") == "zh" ? "个" : "" }} \
24
+              {{ $t("home.offline") }} {{ multiStation.stationOfflineCount }} {{ $t("type") == "zh" ? "个" : "" }}
22 25
             </div>
23 26
             <el-divider />
24 27
             <div class="overview_line">
25
-              装机功率: {{ formatAmountkwh(multiStation.installedPower) }} {{ formatCompany1(multiStation.installedPower) }} |
26
-              装机容量: {{ formatAmountkwh(multiStation.installedCap) }} {{ formatCompany(multiStation.installedCap) }}
28
+              {{ $t("home.InstalledPower") }}: {{ formatAmountkwh(multiStation.installedPower) }}
29
+              {{ formatCompany1(multiStation.installedPower) }} | {{ $t("home.InstalledCapacity") }}:
30
+              {{ formatAmountkwh(multiStation.installedCap) }} {{ formatCompany(multiStation.installedCap) }}
27 31
             </div>
28 32
           </div>
29 33
         </el-card>
@@ -32,7 +36,7 @@
32 36
         <el-card>
33 37
           <div class="grid-content ep-bg-purple">
34 38
             <div class="overview_title1">
35
-              <div class="overview_title_name">今日充电量</div>
39
+              <div class="overview_title_name">{{ $t("home.TodayEnergy") }}</div>
36 40
             </div>
37 41
             <div class="overview_title">
38 42
               <div class="overview_titlename">
@@ -44,18 +48,19 @@
44 48
               </div>
45 49
             </div>
46 50
             <div class="overview_line" v-if="multiStation.importKwhDiffYDay > 0">
47
-              较昨日上升: {{ formatAmountkwh_(multiStation.importKwhDiffYDay) }}
51
+              {{ $t("home.upperYesterday") }}: {{ formatAmountkwh_(multiStation.importKwhDiffYDay) }}
48 52
               {{ formatCompany_(multiStation.importKwhDiffYDay) }}
49 53
             </div>
50 54
             <div class="overview_line" v-else>
51
-              较昨日下降: {{ formatAmountkwh_(multiStation.importKwhDiffYDay) }}
55
+              {{ $t("home.belowYesterday") }}: {{ formatAmountkwh_(multiStation.importKwhDiffYDay) }}
52 56
               {{ formatCompany_(multiStation.importKwhDiffYDay) }}
53 57
             </div>
54 58
 
55 59
             <el-divider />
56 60
             <div class="overview_line">
57
-              本月充电: {{ formatAmountkwh(multiStation.monthImportKwh) }} {{ formatCompany(multiStation.monthImportKwh) }} |
58
-              累计充电: {{ formatAmountkwh(multiStation.accumulativeImportKwh) }}
61
+              {{ $t("home.Charging") }} : {{ formatAmountkwh(multiStation.monthImportKwh) }}
62
+              {{ formatCompany(multiStation.monthImportKwh) }} | {{ $t("home.TotalCharging") }}:
63
+              {{ formatAmountkwh(multiStation.accumulativeImportKwh) }}
59 64
               {{ formatCompany(multiStation.accumulativeImportKwh) }}
60 65
             </div>
61 66
           </div>
@@ -65,7 +70,7 @@
65 70
         <el-card>
66 71
           <div class="grid-content ep-bg-purple">
67 72
             <div class="overview_title1">
68
-              <div class="overview_title_name">今日放电量</div>
73
+              <div class="overview_title_name">{{ $t("home.TodayDischarge") }}</div>
69 74
             </div>
70 75
             <div class="overview_title">
71 76
               <div class="overview_titlename">
@@ -77,17 +82,18 @@
77 82
               </div>
78 83
             </div>
79 84
             <div class="overview_line" v-if="multiStation.exportKwhDiffYDay > 0">
80
-              较昨日上升: {{ formatAmountkwh_(multiStation.exportKwhDiffYDay) }}
85
+              {{ $t("home.upperYesterday") }}: {{ formatAmountkwh_(multiStation.exportKwhDiffYDay) }}
81 86
               {{ formatCompany_(multiStation.exportKwhDiffYDay) }}
82 87
             </div>
83 88
             <div class="overview_line" v-else>
84
-              较昨日下降: {{ formatAmountkwh_(multiStation.exportKwhDiffYDay) }}
89
+              {{ $t("home.belowYesterday") }}: {{ formatAmountkwh_(multiStation.exportKwhDiffYDay) }}
85 90
               {{ formatCompany_(multiStation.exportKwhDiffYDay) }}
86 91
             </div>
87 92
             <el-divider />
88 93
             <div class="overview_line">
89
-              本月放电: {{ formatAmountkwh(multiStation.monthExportKwh) }} {{ formatCompany(multiStation.monthExportKwh) }} |
90
-              累计放电: {{ formatAmountkwh(multiStation.accumulativeExportKwh) }}
94
+              {{ $t("home.Discharge") }}: {{ formatAmountkwh(multiStation.monthExportKwh) }}
95
+              {{ formatCompany(multiStation.monthExportKwh) }} | {{ $t("home.discharge") }}:
96
+              {{ formatAmountkwh(multiStation.accumulativeExportKwh) }}
91 97
               {{ formatCompany(multiStation.accumulativeExportKwh) }}
92 98
             </div>
93 99
           </div>
@@ -97,7 +103,7 @@
97 103
         <el-card>
98 104
           <div class="grid-content ep-bg-purple">
99 105
             <div class="overview_title1">
100
-              <div class="overview_title_name">今日收益</div>
106
+              <div class="overview_title_name">{{ $t("home.TodayRevenue") }}</div>
101 107
             </div>
102 108
             <div class="overview_title">
103 109
               <div class="overview_titlename">
@@ -109,14 +115,17 @@
109 115
               </div>
110 116
             </div>
111 117
             <div class="overview_line" v-if="multiStation.profitDiffYDay > 0">
112
-              较昨日上升: {{ formatAmount1(multiStation.profitDiffYDay) }} {{ formatAmounts2(multiStation.profitDiffYDay) }}
118
+              {{ $t("home.upperYesterday") }}: {{ formatAmount1(multiStation.profitDiffYDay) }}
119
+              {{ formatAmounts2(multiStation.profitDiffYDay) }}
113 120
             </div>
114 121
             <div class="overview_line" v-else>
115
-              较昨日下降: {{ formatAmount1(multiStation.profitDiffYDay) }} {{ formatAmounts2(multiStation.profitDiffYDay) }}
122
+              {{ $t("home.belowYesterday") }}: {{ formatAmount1(multiStation.profitDiffYDay) }}
123
+              {{ formatAmounts2(multiStation.profitDiffYDay) }}
116 124
             </div>
117 125
             <el-divider />
118 126
             <div class="overview_line">
119
-              本月收益: {{ formatAmount(multiStation.monthProfit) }} {{ formatAmounts(multiStation.monthProfit) }} | 总收益:
127
+              {{ $t("home.MTDRevenue") }}: {{ formatAmount(multiStation.monthProfit) }}
128
+              {{ formatAmounts(multiStation.monthProfit) }} | {{ $t("home.TotalRevenue") }}:
120 129
               {{ formatAmount(multiStation.totalProfit) }} {{ formatAmounts(multiStation.totalProfit) }}
121 130
             </div>
122 131
           </div>
@@ -144,8 +153,8 @@
144 153
                 v-model="value2"
145 154
                 :type="timetype"
146 155
                 :shortcuts="shortcuts"
147
-                start-placeholder="开始时间"
148
-                end-placeholder="结束时间"
156
+                :start-placeholder="$t('home.StartTime')"
157
+                :end-placeholder="$t('home.EndTime')"
149 158
                 :default-value="value2"
150 159
                 :format="format"
151 160
                 :value-format="format"
@@ -156,7 +165,7 @@
156 165
               />
157 166
               <el-select
158 167
                 v-model="daymonthyearvalue"
159
-                placeholder="选择日期"
168
+                :placeholder="$t('home.SelectDate')"
160 169
                 size="large"
161 170
                 style="width: 80px"
162 171
                 @change="getdaymonthyear"
@@ -171,8 +180,8 @@
171 180
         <el-card>
172 181
           <div class="grid-content ep-bg-purple">
173 182
             <div class="grid_right">
174
-              <div>故障警告</div>
175
-              <div class="grid_right1">查看详细</div>
183
+              <div>{{ $t("home.FaultAlerts") }}</div>
184
+              <div class="grid_right1">{{ $t("home.ViewDetails") }}</div>
176 185
             </div>
177 186
             <div id="gridpiechart"></div>
178 187
           </div>
@@ -182,49 +191,49 @@
182 191
     <el-card>
183 192
       <template #header>
184 193
         <div class="card-header">
185
-          <span>设备列表</span>
194
+          <span>{{ $t("home.DeviceList") }}</span>
186 195
         </div>
187 196
       </template>
188 197
       <div class="cardtable">
189
-        <div>通讯状态:</div>
198
+        <div>{{ $t("home.CommunicationStatus") }}:</div>
190 199
         &emsp;
191
-        <el-select v-model="onlineStatus" placeholder="请选择" size="large" style="width: 240px">
200
+        <el-select v-model="onlineStatus" :placeholder="$t('home.Pleaseselect')" size="large" style="width: 240px">
192 201
           <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
193 202
         </el-select>
194 203
         &emsp;
195
-        <el-input v-model="modelinput" style="width: 240px" placeholder="请输入内容" size="large" />
204
+        <el-input v-model="modelinput" style="width: 240px" :placeholder="$t('home.Pleaseselect')" size="large" />
196 205
         &emsp;
197
-        <el-button type="primary" size="large" color="#0052d9" @click="query(0)">查询</el-button>
198
-        <el-button size="large" @click="query(1)">重置</el-button>
206
+        <el-button type="primary" size="large" color="#0052d9" @click="query(0)">{{ $t("home.Query") }}</el-button>
207
+        <el-button size="large" @click="query(1)">{{ $t("home.Reset") }}</el-button>
199 208
       </div>
200 209
       <el-table :data="tableData.records" style="width: 100%" border>
201 210
         <el-table-column type="index" width="50" />
202
-        <el-table-column prop="stationName" label="电站名称" :show-overflow-tooltip="true" />
203
-        <el-table-column prop="onlineStatus" label="在线状态">
211
+        <el-table-column prop="stationName" :label="$t('home.PlantName')" :show-overflow-tooltip="true" />
212
+        <el-table-column prop="onlineStatus" :label="$t('home.OnlineStatus')">
204 213
           <template #default="scope">
205
-            {{ scope.row.onlineStatus == 0 ? "离线" : "在线" }}
214
+            {{ scope.row.onlineStatus == 0 ? $t("home.offline") : $t("home.online") }}
206 215
           </template>
207 216
         </el-table-column>
208
-        <el-table-column prop="todayChargeCap" label="今日充电量(kWh)" />
209
-        <el-table-column prop="todayDischargeCap" label="今日放电量(kWh)" />
210
-        <el-table-column prop="totalChargeCap" label="总充电量(kWh)" />
211
-        <el-table-column prop="totalDischargeCap" label="总放电量(kWh)" />
212
-        <el-table-column prop="todayAlarmCount" label="今日告警" align="center">
217
+        <el-table-column prop="todayChargeCap" :label="$t('home.TodayCharging')" />
218
+        <el-table-column prop="todayDischargeCap" :label="$t('home.TodaysDischarge')" />
219
+        <el-table-column prop="totalChargeCap" :label="$t('home.TotalCharged')" />
220
+        <el-table-column prop="totalDischargeCap" :label="$t('home.TotalDischarged')" />
221
+        <el-table-column prop="todayAlarmCount" :label="$t('home.TodayAlerts')" align="center">
213 222
           <template #default="scope">
214 223
             {{ scope.row.todayAlarmCount == null ? "-" : scope.row.todayAlarmCount }}
215 224
           </template>
216 225
         </el-table-column>
217 226
 
218
-        <el-table-column prop="overallEfficiency" label="综合效率(%)" />
227
+        <el-table-column prop="overallEfficiency" :label="$t('home.RoundEfficiency')" />
219 228
         <!-- <el-table-column prop="dischargeCompletionRate" label="放电达成率(%)" /> -->
220 229
         <!-- <el-table-column prop="yesterdayProfit" label="昨日收益(元)" /> -->
221
-        <el-table-column prop="yesterdayProfit" label="昨日收益(元)" align="center">
230
+        <el-table-column prop="yesterdayProfit" :label="$t('home.YesterdayRevenue')" align="center">
222 231
           <template #default="scope">
223 232
             {{ scope.row.yesterdayProfit.toFixed(2) }}
224 233
           </template>
225 234
         </el-table-column>
226 235
         <!-- <el-table-column prop="totalProfit" label="总收益(元)" /> .toFixed(2)-->
227
-        <el-table-column prop="totalProfit" label="总收益(元)" align="center">
236
+        <el-table-column prop="totalProfit" :label="$t('home.TotalRevenue')" align="center">
228 237
           <template #default="scope">
229 238
             {{ scope.row.totalProfit.toFixed(2) }}
230 239
           </template>
@@ -237,7 +246,7 @@
237 246
     </el-card>
238 247
   </div>
239 248
 </template>
240
-<!--  ECharte  -->
249
+<!-- el-car -->
241 250
 <script setup lang="ts">
242 251
 import { onMounted, Ref, ref } from "vue";
243 252
 import type { TabsPaneContext } from "element-plus";

+ 47
- 31
src/views/incomeforms/index.vue View File

@@ -1,18 +1,19 @@
1 1
 <template>
2 2
   <div>
3 3
     <div class="title">
4
-      收益报表
4
+      {{ $t("incomeforms.incomestatement") }}
5 5
       <div class="title_time">{{ currentDate }}</div>
6 6
     </div>
7 7
     <el-card class="price_allocationcard" v-if="false">
8 8
       <div class="price_allocation">
9
-        <el-icon><WarningFilled /></el-icon>&ensp; 站点汇总展示所有站点报表数据,支持按日展示31天,按月展示一年内数据。
10
-        &ensp;&ensp;&ensp;&ensp;<el-icon><Close /></el-icon>
9
+        <el-icon><WarningFilled /></el-icon>&ensp; {{ $t("incomeforms.summary") }} &ensp;&ensp;&ensp;&ensp;<el-icon>
10
+          <Close />
11
+        </el-icon>
11 12
       </div>
12 13
     </el-card>
13 14
     <el-card>
14 15
       <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
15
-        <el-tab-pane label="站点汇总" name="站点汇总">
16
+        <el-tab-pane :label="$t('incomeforms.incomestatement')" name="站点汇总">
16 17
           <div class="tabdiv">
17 18
             <div class="tabpanesite">
18 19
               <div class="tabpane">
@@ -25,8 +26,8 @@
25 26
                     :shortcuts="shortcuts"
26 27
                     :format="format"
27 28
                     :value-format="format"
28
-                    start-placeholder="开始时间"
29
-                    end-placeholder="结束时间"
29
+                    :start-placeholder="$t('incomeforms.StartTime')"
30
+                    :end-placeholder="$t('incomeforms.EndTime')"
30 31
                     size="large"
31 32
                     :disabled-date="pickerOptions"
32 33
                   />
@@ -37,8 +38,8 @@
37 38
                     :format="format"
38 39
                     :value-format="format"
39 40
                     :shortcuts="shortcuts"
40
-                    start-placeholder="开始时间"
41
-                    end-placeholder="结束时间"
41
+                    :start-placeholder="$t('incomeforms.StartTime')"
42
+                    :end-placeholder="$t('incomeforms.EndTime')"
42 43
                     size="large"
43 44
                     :disabled-date="pickerOptions"
44 45
                   />
@@ -63,14 +64,16 @@
63 64
                   </el-select>
64 65
                 </div>
65 66
                 &ensp;&ensp;
66
-                <el-button type="primary" size="large" color="#0052d9" @click="gatSummary">查询</el-button>
67
-                <el-button size="large" @click="onreset">重置</el-button>
67
+                <el-button type="primary" size="large" color="#0052d9" @click="gatSummary">
68
+                  {{ $t("incomeforms.Query") }}
69
+                </el-button>
70
+                <el-button size="large" @click="onreset">{{ $t("incomeforms.Reset") }} </el-button>
68 71
                 <!-- <el-button v-if="BUTTONS.export" size="large" @click="onexport" type="primary" plain>导出</el-button> -->
69 72
               </div>
70 73
 
71 74
               <div v-if="BUTTONS.export" class="exportright">
72 75
                 <el-dropdown trigger="click" :hide-on-click="false" @visible-change="onclose">
73
-                  <el-button size="large" type="primary" plain>导出</el-button>
76
+                  <el-button size="large" type="primary" plain>{{ $t("incomeforms.export") }}</el-button>
74 77
                   <template #dropdown>
75 78
                     <el-dropdown-menu v-for="(item, index) in columnList" :key="index">
76 79
                       <el-dropdown-item>
@@ -83,7 +86,7 @@
83 86
                       </el-dropdown-item>
84 87
                     </el-dropdown-menu>
85 88
                     <div class="dropdown">
86
-                      <el-button @click="onexport" type="primary" plain>确定导出</el-button>
89
+                      <el-button @click="onexport" type="primary" plain>{{ $t("incomeforms.export") }}</el-button>
87 90
                     </div>
88 91
                   </template>
89 92
                 </el-dropdown>
@@ -126,22 +129,34 @@
126 129
             </el-table>
127 130
           </div>
128 131
         </el-tab-pane>
129
-        <el-tab-pane label="单站报表" name="单站报表">
132
+        <el-tab-pane :label="$t('incomeforms.Singlereport')" name="单站报表">
130 133
           <div class="tabdiv">
131 134
             <div class="tabpane">
132
-              <div class="tabpane_1">报表类型:</div>
133
-              <div :class="reportformsindex == 2 ? 'tabpane_2' : 'tabpane_1'" @click="onreportforms(2)">日报表</div>
134
-              <div :class="reportformsindex == 3 ? 'tabpane_2' : 'tabpane_1'" @click="onreportforms(3)">月报表</div>
135
-              <div :class="reportformsindex == 4 ? 'tabpane_2' : 'tabpane_1'" @click="onreportforms(4)">年报表</div>
135
+              <div class="tabpane_1">{{ $t("incomeforms.reporttype") }}:</div>
136
+              <div :class="reportformsindex == 2 ? 'tabpane_2' : 'tabpane_1'" @click="onreportforms(2)">
137
+                {{ $t("incomeforms.dailyreport") }}
138
+              </div>
139
+              <div :class="reportformsindex == 3 ? 'tabpane_2' : 'tabpane_1'" @click="onreportforms(3)">
140
+                {{ $t("incomeforms.Monthlyreport") }}
141
+              </div>
142
+              <div :class="reportformsindex == 4 ? 'tabpane_2' : 'tabpane_1'" @click="onreportforms(4)">
143
+                {{ $t("incomeforms.annualreport") }}
144
+              </div>
136 145
             </div>
137 146
             <div class="tabpanesite">
138 147
               <div class="selectsite">
139
-                <div class="tabpane_1">选择站点:</div>
140
-                <el-select v-model="Singlevalue" placeholder="选择站点" size="large" style="width: 240px" @change="postemsDevice">
148
+                <div class="tabpane_1">{{ $t("incomeforms.selectsite") }}:</div>
149
+                <el-select
150
+                  v-model="Singlevalue"
151
+                  :placeholder="$t('incomeforms.selectsite')"
152
+                  size="large"
153
+                  style="width: 240px"
154
+                  @change="postemsDevice"
155
+                >
141 156
                   <el-option v-for="item in cities" :key="item.id" :label="item.stationName" :value="item.id" />
142 157
                 </el-select>
143 158
                 &ensp;&ensp;&ensp;&ensp; &ensp;&ensp;
144
-                <div class="tabpane_1">选择日期:</div>
159
+                <div class="tabpane_1">{{ $t("incomeforms.SelectDate") }}:</div>
145 160
                 <div>
146 161
                   <el-date-picker
147 162
                     v-if="pickertype != 'year'"
@@ -150,8 +165,8 @@
150 165
                     :shortcuts="shortcuts"
151 166
                     :format="format"
152 167
                     :value-format="format"
153
-                    start-placeholder="开始时间"
154
-                    end-placeholder="结束时间"
168
+                    :start-placeholder="$t('incomeforms.StartTime')"
169
+                    :end-placeholder="$t('incomeforms.EndTime')"
155 170
                     size="large"
156 171
                     clearable
157 172
                     :disabled-date="pickerOptions"
@@ -163,8 +178,8 @@
163 178
                     :format="format"
164 179
                     :value-format="format"
165 180
                     :shortcuts="shortcuts"
166
-                    start-placeholder="开始时间"
167
-                    end-placeholder="结束时间"
181
+                    :start-placeholder="$t('incomeforms.StartTime')"
182
+                    :end-placeholder="$t('incomeforms.EndTime')"
168 183
                     size="large"
169 184
                     :disabled-date="pickerOptions"
170 185
                   />
@@ -181,8 +196,10 @@
181 196
                 </div>
182 197
                 &ensp;&ensp;
183 198
 
184
-                <el-button type="primary" size="large" color="#0052d9" @click="onselectsite">查询</el-button>
185
-                <el-button size="large" @click="onselectreset">重置</el-button>
199
+                <el-button type="primary" size="large" color="#0052d9" @click="onselectsite">{{
200
+                  $t("incomeforms.Query")
201
+                }}</el-button>
202
+                <el-button size="large" @click="onselectreset">{{ $t("incomeforms.Reset") }}</el-button>
186 203
               </div>
187 204
 
188 205
               <!-- <div style="margin-left: 14px" v-if="BUTTONS.export">
@@ -190,7 +207,7 @@
190 207
               </div> -->
191 208
               <div class="exportright" v-if="BUTTONS.export && reportformsindex != 1">
192 209
                 <el-dropdown trigger="click" :hide-on-click="false" @visible-change="onsingleclose">
193
-                  <el-button size="large" type="primary" plain>导出</el-button>
210
+                  <el-button size="large" type="primary" plain>{{ $t("incomeforms.export") }}</el-button>
194 211
                   <template #dropdown>
195 212
                     <el-dropdown-menu v-for="(item, index) in singlecolumnList" :key="index">
196 213
                       <el-dropdown-item>
@@ -203,13 +220,12 @@
203 220
                       </el-dropdown-item>
204 221
                     </el-dropdown-menu>
205 222
                     <div class="dropdown">
206
-                      <el-button @click="singleexport" type="primary" plain>确定导出</el-button>
223
+                      <el-button @click="singleexport" type="primary" plain>{{ $t("incomeforms.export") }}</el-button>
207 224
                     </div>
208 225
                   </template>
209 226
                 </el-dropdown>
210 227
               </div>
211 228
             </div>
212
-
213 229
             <div class="dailyreport">
214 230
               <el-table :data="betweenyear.list" style="width: 100%" align="center" :show-overflow-tooltip="true">
215 231
                 <template v-for="(item, index) in singlecolumnList" :key="index">
@@ -363,7 +379,7 @@ const singlecolumnList = ref([
363 379
   },
364 380
   {
365 381
     prop: "",
366
-    label: "充电量(元kWh)",
382
+    label: "充电量(元/kWh)",
367 383
     ifcolumn: true,
368 384
     children: [
369 385
       {
@@ -395,7 +411,7 @@ const singlecolumnList = ref([
395 411
   },
396 412
   {
397 413
     prop: "",
398
-    label: "放电量(kWh)",
414
+    label: "放电量(元/kWh)",
399 415
     ifcolumn: true,
400 416
     children: [
401 417
       {

+ 10
- 6
src/views/localdata/index.vue View File

@@ -11,7 +11,11 @@
11 11
           <el-radio-button label="工商业储能" :value="1" />
12 12
           <el-radio-button label="大储储能" :value="2" />
13 13
         </el-radio-group>
14
-
14
+        <div class="screen_right" v-if="commerce == 1">
15
+          <div class="export">
16
+            <el-button type="primary" size="large" color="#0052d9" @click="newaddition">数据回复</el-button>
17
+          </div>
18
+        </div>
15 19
         <div class="screen_right" v-if="commerce == 2">
16 20
           <div>
17 21
             电站&ensp;&ensp;
@@ -58,7 +62,7 @@
58 62
         </div>
59 63
       </template>
60 64
     </el-dialog>
61
-    <!-- 大储导出 -->
65
+    <!--     -->
62 66
     <el-dialog v-model="energystorage" title="大储导入" top="100px" width="40%" @close="handenergyClose">
63 67
       <div class="dialoglexce_box">
64 68
         <div class="dialoglexce">
@@ -105,7 +109,9 @@
105 109
     </el-dialog>
106 110
   </div>
107 111
 </template>
108
-<!-- || -->
112
+<!--  
113
+
114
+-->
109 115
 <script setup lang="ts">
110 116
 import { directorylURL, selectfileURL, tdengineyuanshiURL, downloadfileURL, selectfileidURL } from "@/api/home/Multisite";
111 117
 import { onMounted, Ref, ref } from "vue";
@@ -407,7 +413,5 @@ onMounted(() => {
407 413
 @import "./index.scss";
408 414
 </style>
409 415
 <!--
410
-<style>
411 416
 
412
-</style>
413
- -->
417
+-->

+ 5
- 1
src/views/login/index.scss View File

@@ -84,11 +84,15 @@
84 84
 .footer {
85 85
   position: fixed;
86 86
   bottom: 0;
87
-  height: 30px;
87
+  height: 40px;
88
+  font-size: 14px;
89
+  color: var(--el-text-color-secondary);
88 90
 
89 91
   // background-color: var(--el-bg-color);
92
+
90 93
   // border-top: 1px solid var(--el-border-color-light);
91 94
   a {
95
+    margin-right: 10px;
92 96
     font-size: 14px;
93 97
     color: var(--el-text-color-secondary);
94 98
     text-decoration: none;

+ 1
- 0
src/views/login/index.vue View File

@@ -15,6 +15,7 @@
15 15
     </div>
16 16
     <div class="footer flx-center">
17 17
       <a href="http://www.hongpower.cc/" target="_blank"> 2024 © 晟运能源科技有限公司 </a>
18
+      京ICP备17045368号-1
18 19
     </div>
19 20
   </div>
20 21
 </template>

+ 84
- 84
src/views/monitor/index.vue View File

@@ -4,7 +4,7 @@
4 4
       <el-select
5 5
         v-model="Singlevalue"
6 6
         collapse-tags
7
-        placeholder="选择电站"
7
+        :placeholder="$t('monitor.TodayEnergy')"
8 8
         popper-class="custom-header"
9 9
         :max-collapse-tags="1"
10 10
         class="Space_content"
@@ -20,7 +20,7 @@
20 20
       <el-select
21 21
         v-model="emsDeviceId"
22 22
         collapse-tags
23
-        placeholder="选择编号"
23
+        :placeholder="$t('monitor.selectId')"
24 24
         popper-class="custom-header"
25 25
         :max-collapse-tags="1"
26 26
         class="Space_content"
@@ -36,7 +36,7 @@
36 36
 
37 37
     <div class="message-empty" v-if="!deviceList[activeName].devices">
38 38
       <img style="width: 300px; margin-top: 400px" src="@/assets/images/notData.png" alt="notData" />
39
-      <div>暂无消息</div>
39
+      <div>{{ $t("monitor.noData") }}</div>
40 40
     </div>
41 41
     <div class="equipment">
42 42
       <el-card>
@@ -57,21 +57,21 @@
57 57
         </el-tabs>
58 58
 
59 59
         <div class="equipmentdiv" v-if="deviceType == 1">
60
-          <div class="equipmenttime">末次数据时间:{{ pcslist.ts }}</div>
60
+          <div class="equipmenttime">{{ $t("monitor.lastUpdate") }}:{{ pcslist.ts }}</div>
61 61
           <div style="height: 33px"></div>
62
-          <div>设备状态</div>
62
+          <div>{{ $t("monitor.DeviceStatus") }}</div>
63 63
           <div class="equipmentdevice">
64 64
             <el-card>
65 65
               <div class="equipmentdevice1">
66 66
                 <div class="equipmentname" v-if="pcslist.sysStatus == 1">
67 67
                   <div class="equipmentborder"></div>
68
-                  <div class="equipment1">运行</div>
68
+                  <div class="equipment1">{{ $t("monitor.Running") }}</div>
69 69
                 </div>
70 70
                 <div class="equipmentname" v-else>
71 71
                   <div class="equipmentborderif"></div>
72
-                  <div class="equipment1red">停止</div>
72
+                  <div class="equipment1red">{{ $t("monitor.Stopped") }}</div>
73 73
                 </div>
74
-                <div class="equipment2">运行状态</div>
74
+                <div class="equipment2">{{ $t("monitor.OperationStatus") }}</div>
75 75
               </div>
76 76
             </el-card>
77 77
             <!-- <el-card>
@@ -104,13 +104,13 @@
104 104
               <div class="equipmentdevice1">
105 105
                 <div class="equipmentname" v-if="pcslist.faultStatus == 0">
106 106
                   <div class="equipmentborder"></div>
107
-                  <div class="equipment1">正常</div>
107
+                  <div class="equipment1">{{ $t("monitor.Normal") }}</div>
108 108
                 </div>
109 109
                 <div class="equipmentname" v-else>
110 110
                   <div class="equipmentborderif"></div>
111
-                  <div class="equipment12">故障</div>
111
+                  <div class="equipment12">{{ $t("monitor.Fault") }}</div>
112 112
                 </div>
113
-                <div class="equipment2">故障状态</div>
113
+                <div class="equipment2">{{ $t("monitor.FaultDetails") }}</div>
114 114
               </div>
115 115
             </el-card>
116 116
             <!-- <el-card>
@@ -140,23 +140,23 @@
140 140
               </div>
141 141
             </el-card> -->
142 142
           </div>
143
-          <div class="equipmentdata">设备数据</div>
143
+          <div class="equipmentdata">{{ $t("monitor.DeviceMetrics") }}</div>
144 144
           <!--  -->
145 145
           <div class="equipmentdata_equipment">
146 146
             <div class="equipmentdata_div">
147
-              <div class="equipment_title">当日充电量</div>
147
+              <div class="equipment_title">{{ $t("monitor.DailyCharge") }}</div>
148 148
               <div>{{ pcslist.todayAcChargeKwh ?? "-" }} kWh</div>
149 149
             </div>
150 150
             <div class="equipmentdata_div">
151
-              <div class="equipment_title">当日放电量</div>
151
+              <div class="equipment_title">{{ $t("monitor.DailyDischarge") }}</div>
152 152
               <div>{{ pcslist.todayAcDischargeKwh ?? "-" }} kWh</div>
153 153
             </div>
154 154
             <div class="equipmentdata_div">
155
-              <div class="equipment_title">累计充电量</div>
155
+              <div class="equipment_title">{{ $t("monitor.TotalCharged") }}</div>
156 156
               <div>{{ (pcslist.totalAcChargeKwh * 1).toFixed(2) ?? "-" }} kWh</div>
157 157
             </div>
158 158
             <div class="equipmentdata_div4">
159
-              <div class="equipment_title">累计放电量</div>
159
+              <div class="equipment_title">{{ $t("monitor.TotalDischarged") }}</div>
160 160
               <!-- <div>{{ pcslist.totalAcActivePower ?? "-" }} kW</div> -->
161 161
               <div>{{ pcslist.totalAcDischargeKwh ?? "-" }} kWh</div>
162 162
             </div>
@@ -172,20 +172,20 @@
172 172
               <div>{{ pcslist.todayAcDischargeKwh ?? "-" }} kWh</div>
173 173
             </div> -->
174 174
             <div class="equipmentdata_div">
175
-              <div class="equipment_title">交流频率</div>
175
+              <div class="equipment_title">{{ $t("monitor.ACFrequency") }}</div>
176 176
               <div>{{ (pcslist.acFrequency * 1).toFixed(2) ?? "-" }} Hz</div>
177 177
             </div>
178 178
             <div class="equipmentdata_div4">
179
-              <div class="equipment_title">总交流有功功率</div>
179
+              <div class="equipment_title">{{ $t("monitor.TotalACActivePower") }}</div>
180 180
               <div>{{ pcslist.totalAcActivePower ?? "-" }} kW</div>
181 181
               <!-- <div>{{ pcslist.totalAcPowerFactor ?? "-" }} kW</div> -->
182 182
             </div>
183 183
             <div class="equipmentdata_div">
184
-              <div class="equipment_title">总交流无功功率</div>
184
+              <div class="equipment_title">{{ $t("monitor.TotalACReactivePower") }}</div>
185 185
               <div>{{ pcslist.totalAcReactivePower ?? "-" }} kW</div>
186 186
             </div>
187 187
             <div class="equipmentdata_div">
188
-              <div class="equipment_title">总交流视在功率</div>
188
+              <div class="equipment_title">{{ $t("monitor.TotalACApparentPower") }}</div>
189 189
               <div>{{ pcslist.totalAcApparentPower ?? "-" }} kW</div>
190 190
             </div>
191 191
           </div>
@@ -274,20 +274,20 @@
274 274
           <div class="equipmentdata_equipment">
275 275
             <div class="equipmentdata_div">
276 276
               <!-- <div class="equipment_title">总交流功率因数</div> -->
277
-              <div class="equipment_title">交流电流</div>
277
+              <div class="equipment_title">{{ $t("monitor.ACCurrent") }}</div>
278 278
               <!-- <div>{{ pcslist.aphaseActivePower ?? "-" }}A</div> -->
279 279
               <div>{{ (pcslist.acAbCurrent * 1).toFixed(2) ?? "-" }}A</div>
280 280
             </div>
281 281
             <div class="equipmentdata_div">
282
-              <div class="equipment_title">A相电压</div>
282
+              <div class="equipment_title">{{ $t("monitor.PhaseAVoltage") }}</div>
283 283
               <div>{{ (pcslist.acAphaseVolt * 1).toFixed(2) ?? "-" }} V</div>
284 284
             </div>
285 285
             <div class="equipmentdata_div4">
286
-              <div class="equipment_title">B相电压</div>
286
+              <div class="equipment_title">{{ $t("monitor.PhaseBVoltage") }}</div>
287 287
               <div>{{ (pcslist.acBphaseVolt * 1).toFixed(2) ?? "-" }} V</div>
288 288
             </div>
289 289
             <div class="equipmentdata_div">
290
-              <div class="equipment_title">C相电压</div>
290
+              <div class="equipment_title">{{ $t("monitor.PhaseCVoltage") }}</div>
291 291
               <div>{{ (pcslist.acCphaseVolt * 1).toFixed(2) ?? "-" }} V</div>
292 292
             </div>
293 293
             <!-- <div class="equipmentdata_div">
@@ -360,29 +360,29 @@
360 360
             </div>
361 361
             <div class="equipmentdata_div1"></div>
362 362
           </div> -->
363
-          <div class="equipmentdata">设备故障字</div>
363
+          <div class="equipmentdata">{{ $t("monitor.DeviceErrorCode") }}</div>
364 364
           <!-- faultStatusWordList -->
365 365
           <div class="equipmentdata_data">
366 366
             <div class="equipmentdata_div2" v-for="(item, index) in pcslist.faultStatusWordList" :key="index">
367
-              <div class="equipment_title">故障状态字</div>
367
+              <div class="equipment_title">{{ $t("monitor.FaultStatusWord") }}</div>
368 368
               <div>{{ item }}</div>
369 369
             </div>
370 370
           </div>
371 371
 
372
-          <div class="equipmentdata">支路数据</div>
372
+          <div class="equipmentdata">{{ $t("monitor.BranchData") }}</div>
373 373
 
374 374
           <el-table :data="pcslist.pcsBranches" style="width: 100%" border :scrollbar-always-on="true">
375 375
             <!-- <el-table-column type="index" label="支路" width="60" /> -->
376
-            <el-table-column type="index" :index="indexMethod" label="支路" align="center" width="160" />
377
-            <el-table-column prop="dcPower" label="直流功率(kW) " align="center" />
378
-            <el-table-column prop="dcVolt" label="直流电压(V)" align="center" />
379
-            <el-table-column prop="dcCurrent" label="直流电压(A)" align="center" />
376
+            <el-table-column type="index" :index="indexMethod" :label="$t('monitor.Branch')" align="center" width="160" />
377
+            <el-table-column prop="dcPower" :label="$t('monitor.DCPower') + '(kW)'" align="center" />
378
+            <el-table-column prop="dcVolt" :label="$t('monitor.DCVoltage') + '(V)'" align="center" />
379
+            <el-table-column prop="dcCurrent" :label="$t('monitor.DCCurrent') + '(A)'" align="center" />
380 380
           </el-table>
381 381
         </div>
382 382
         <div class="equipmentdiv" v-if="deviceType == 2">
383
-          <div class="equipmenttime">末次数据时间:{{ datalist.ts }}</div>
383
+          <div class="equipmenttime">{{ $t("monitor.lastUpdate") }}:{{ datalist.ts }}</div>
384 384
           <div style="height: 33px"></div>
385
-          <div>设备状态</div>
385
+          <div>{{ $t("monitor.DeviceStatus") }}</div>
386 386
           <div class="equipmentdevice">
387 387
             <!-- <el-card>
388 388
               <div class="equipmentdevice1">
@@ -414,13 +414,13 @@
414 414
               <div class="equipmentdevice1">
415 415
                 <div class="equipmentname" v-if="pcslist.emsCommStatus == 0">
416 416
                   <div class="equipmentborder"></div>
417
-                  <div class="equipment1">正常</div>
417
+                  <div class="equipment1">{{ $t("monitor.Normal") }}</div>
418 418
                 </div>
419 419
                 <div class="equipmentname" v-else>
420 420
                   <div class="equipmentborderif"></div>
421
-                  <div class="equipment1red">故障</div>
421
+                  <div class="equipment1red">{{ $t("monitor.Fault") }}</div>
422 422
                 </div>
423
-                <div class="equipment2">故障状态</div>
423
+                <div class="equipment2">{{ $t("monitor.FaultDetails") }}</div>
424 424
               </div>
425 425
             </el-card>
426 426
             <!-- <el-card>
@@ -437,37 +437,37 @@
437 437
               </div>
438 438
             </el-card> -->
439 439
           </div>
440
-          <div class="equipmentdata">设备数据</div>
440
+          <div class="equipmentdata">{{ $t("monitor.DeviceMetrics") }}</div>
441 441
           <!--  -->
442 442
           <div class="equipmentdata_equipment">
443 443
             <div class="equipmentdata_div">
444
-              <div class="equipment_title">总有功功率</div>
444
+              <div class="equipment_title">{{ $t("monitor.totalActive") }}</div>
445 445
               <div>{{ datalist.totalActivePower ?? "-" }} kW</div>
446 446
             </div>
447 447
             <div class="equipmentdata_div">
448
-              <div class="equipment_title">无功功率</div>
448
+              <div class="equipment_title">{{ $t("monitor.reactive") }}</div>
449 449
               <div>{{ datalist.totalReactivePower ?? "-" }} kW</div>
450 450
             </div>
451 451
             <div class="equipmentdata_div">
452
-              <div class="equipment_title">视在功率</div>
452
+              <div class="equipment_title">{{ $t("monitor.apparent") }}</div>
453 453
               <div>{{ datalist.aphaseApparentPower ?? "-" }} kW</div>
454 454
             </div>
455 455
             <div class="equipmentdata_div4">
456
-              <div class="equipment_title">功率因数</div>
456
+              <div class="equipment_title">{{ $t("monitor.powerFactor") }}</div>
457 457
               <div>{{ datalist.totalAcPowerFactor ?? "-" }}</div>
458 458
             </div>
459 459
           </div>
460 460
           <div class="equipmentdata_equipment">
461 461
             <div class="equipmentdata_div">
462
-              <div class="equipment_title">A相有功功率</div>
462
+              <div class="equipment_title">{{ $t("monitor.phaseA") }}</div>
463 463
               <div>{{ datalist.aphaseActivePower ?? "-" }} kW</div>
464 464
             </div>
465 465
             <div class="equipmentdata_div">
466
-              <div class="equipment_title">B相有功功率</div>
466
+              <div class="equipment_title">{{ $t("monitor.phaseB") }}</div>
467 467
               <div>{{ datalist.bphaseActivePower ?? "-" }} kW</div>
468 468
             </div>
469 469
             <div class="equipmentdata_div">
470
-              <div class="equipment_title">C相有功功率</div>
470
+              <div class="equipment_title">{{ $t("monitor.phaseC") }}</div>
471 471
               <div>{{ datalist.cphaseActivePower ?? "-" }} kW</div>
472 472
             </div>
473 473
             <div class="equipmentdata_divobx"></div>
@@ -482,52 +482,52 @@
482 482
               <div>-</div>
483 483
             </div>
484 484
           </div> -->
485
-          <div class="equipmentdata">电量数据</div>
485
+          <div class="equipmentdata">{{ $t("monitor.EnergyData") }}</div>
486 486
           <div class="eltable">
487 487
             <el-table :data="Electricitymeterlist" style="width: 100%" border>
488
-              <el-table-column prop="type" label="类别" width="180" />
489
-              <el-table-column prop="total" label="总/kWh" width="180" />
490
-              <el-table-column prop="tip" label="尖/kWh	" />
491
-              <el-table-column prop="peak" label="峰/kWh" />
492
-              <el-table-column prop="flat" label="平/kWh" />
493
-              <el-table-column prop="valley" label="谷/kWh" />
488
+              <el-table-column prop="type" :label="$t('monitor.EnergyData')" width="180" />
489
+              <el-table-column prop="total" label="$t('monitor.Total')" width="180" />
490
+              <el-table-column prop="tip" label="$t('monitor.Peak')" />
491
+              <el-table-column prop="peak" label="$t('monitor.Shoulder')" />
492
+              <el-table-column prop="flat" label="$t('monitor.Offpeak')" />
493
+              <el-table-column prop="valley" label="$t('monitor.Valley')" />
494 494
             </el-table>
495 495
           </div>
496 496
 
497 497
           <!--  -->
498 498
         </div>
499 499
         <div class="equipmentdiv" v-if="deviceType == 3">
500
-          <div class="equipmenttime">末次数据时间:{{ BMSlist.ts }}</div>
500
+          <div class="equipmenttime">{{ $t("monitor.lastUpdate") }}:{{ BMSlist.ts }}</div>
501 501
           <div style="height: 33px"></div>
502
-          <div>设备状态</div>
502
+          <div>{{ $t("monitor.DeviceStatus") }}</div>
503 503
           <div class="equipmentdevice">
504 504
             <el-card>
505 505
               <div class="equipmentdevice1">
506 506
                 <div class="equipmentname" v-if="BMSlist.workStatus == 0">
507 507
                   <div class="equipmentborder"></div>
508
-                  <div class="equipment1">空闲</div>
508
+                  <div class="equipment1">{{ $t("monitor.Idle") }}</div>
509 509
                 </div>
510 510
                 <div class="equipmentname" v-if="BMSlist.workStatus == 1">
511 511
                   <div class="equipmentborder"></div>
512
-                  <div class="equipment1">充电</div>
512
+                  <div class="equipment1">{{ $t("monitor.Charging") }}</div>
513 513
                 </div>
514 514
                 <div class="equipmentname" v-if="BMSlist.workStatus == 2">
515 515
                   <div class="equipmentborder"></div>
516
-                  <div class="equipment1">放电</div>
516
+                  <div class="equipment1">{{ $t("monitor.Discharging") }}</div>
517 517
                 </div>
518 518
                 <div class="equipmentname" v-if="BMSlist.workStatus == 3">
519 519
                   <div class="equipmentborder"></div>
520
-                  <div class="equipment1">充满</div>
520
+                  <div class="equipment1">{{ $t("monitor.FullyCharged") }}</div>
521 521
                 </div>
522 522
                 <div class="equipmentname" v-if="BMSlist.workStatus == 4">
523 523
                   <div class="equipmentborder"></div>
524
-                  <div class="equipment1">放空</div>
524
+                  <div class="equipment1">{{ $t("monitor.FullyDischarged") }}</div>
525 525
                 </div>
526 526
                 <div class="equipmentname" v-if="BMSlist.workStatus == 5">
527 527
                   <div class="equipmentborderif"></div>
528
-                  <div class="equipment1red">故障</div>
528
+                  <div class="equipment1red">{{ $t("monitor.Fault") }}</div>
529 529
                 </div>
530
-                <div class="equipment2">充放电状态</div>
530
+                <div class="equipment2">{{ $t("monitor.DischargeStatus") }}</div>
531 531
               </div>
532 532
             </el-card>
533 533
             <!-- <el-card>
@@ -571,15 +571,15 @@
571 571
             </el-card> -->
572 572
           </div>
573 573
 
574
-          <div class="equipmentdata">设备数据</div>
574
+          <div class="equipmentdata">{{ $t("monitor.DeviceStatus") }}</div>
575 575
           <!-- 1 -->
576 576
           <div class="equipmentdata_equipment">
577 577
             <div class="equipmentdata_div">
578
-              <div class="equipment_title">总电压</div>
578
+              <div class="equipment_title">{{ $t("monitor.TotalVoltage") }}</div>
579 579
               <div>{{ (BMSlist.tv * 1).toFixed(1) ?? "-" }} V</div>
580 580
             </div>
581 581
             <div class="equipmentdata_div">
582
-              <div class="equipment_title">总电流</div>
582
+              <div class="equipment_title">{{ $t("monitor.TotalCurrent") }}</div>
583 583
               <div>{{ (BMSlist.tc * 1).toFixed(1) ?? "-" }} A</div>
584 584
             </div>
585 585
             <div class="equipmentdata_div">
@@ -594,20 +594,20 @@
594 594
           <!-- 2 -->
595 595
           <div class="equipmentdata_equipment">
596 596
             <div class="equipmentdata_div">
597
-              <div class="equipment_title">充电限制功率</div>
597
+              <div class="equipment_title">{{ $t("monitor.ChargePowerLimit") }}</div>
598 598
               <div>{{ (BMSlist.rechargeablePower * 1).toFixed(1) ?? "-" }} kW</div>
599 599
             </div>
600 600
             <div class="equipmentdata_div">
601
-              <div class="equipment_title">放电限制功率</div>
601
+              <div class="equipment_title">{{ $t("monitor.DischargePowerLimit") }}</div>
602 602
               <div>{{ (BMSlist.dischargeablePower * 1).toFixed(1) ?? "-" }} kW</div>
603 603
             </div>
604 604
 
605 605
             <div class="equipmentdata_div">
606
-              <div class="equipment_title">平均单体温度</div>
606
+              <div class="equipment_title">{{ $t("monitor.AvgCellTemp") }}</div>
607 607
               <div>{{ (BMSlist.avgCellTempr * 1).toFixed(1) ?? "-" }} ℃</div>
608 608
             </div>
609 609
             <div class="equipmentdata_div">
610
-              <div class="equipment_title">平均单体电压</div>
610
+              <div class="equipment_title">{{ $t("monitor.AvgCellVoltage") }}</div>
611 611
               <div>{{ (BMSlist.avgCellVoltage * 1).toFixed(1) ?? "-" }} V</div>
612 612
             </div>
613 613
           </div>
@@ -637,19 +637,19 @@
637 637
               <div>{{ BMSlist.negInsulationResistance ?? "-" }} kΩ</div>
638 638
             </div> -->
639 639
             <div class="equipmentdata_div">
640
-              <div class="equipment_title">最高单体温度</div>
640
+              <div class="equipment_title">{{ $t("monitor.MaxCellTemp") }}</div>
641 641
               <div>{{ (BMSlist.maxCellTempr * 1).toFixed(3) ?? "-" }} ℃</div>
642 642
             </div>
643 643
             <div class="equipmentdata_div">
644
-              <div class="equipment_title">最低单体温度</div>
644
+              <div class="equipment_title">{{ $t("monitor.MinCellTemp") }}</div>
645 645
               <div>{{ (BMSlist.minCellTempr * 1).toFixed(3) ?? "-" }} ℃</div>
646 646
             </div>
647 647
             <div class="equipmentdata_div4">
648
-              <div class="equipment_title">最高单体电压</div>
648
+              <div class="equipment_title">{{ $t("monitor.MaxCellVoltage") }}</div>
649 649
               <div>{{ (BMSlist.maxCellVoltage * 1).toFixed(3) ?? "-" }} V</div>
650 650
             </div>
651 651
             <div class="equipmentdata_div">
652
-              <div class="equipment_title">最低单体电压</div>
652
+              <div class="equipment_title">{{ $t("monitor.MinCellVoltage") }}</div>
653 653
               <div>{{ (BMSlist.minCellVoltage * 1).toFixed(3) ?? "-" }} V</div>
654 654
             </div>
655 655
           </div>
@@ -658,21 +658,21 @@
658 658
           <!--  -->
659 659
         </div>
660 660
         <div class="equipmentdiv" v-if="deviceType == 4">
661
-          <div class="equipmenttime">末次数据时间:{{ Conditionerdata.ts }}</div>
661
+          <div class="equipmenttime">{{ $t("monitor.lastUpdate") }}:{{ Conditionerdata.ts }}</div>
662 662
           <div style="height: 33px"></div>
663
-          <div>设备状态</div>
663
+          <div>{{ $t("monitor.DeviceStatus") }}</div>
664 664
           <div class="equipmentdevice">
665 665
             <el-card>
666 666
               <div class="equipmentdevice1">
667 667
                 <div class="equipmentname" v-if="Conditionerdata.workStatus == 1">
668 668
                   <div class="equipmentborder"></div>
669
-                  <div class="equipment1">运行</div>
669
+                  <div class="equipment1">{{ $t("monitor.Running") }}</div>
670 670
                 </div>
671 671
                 <div class="equipmentname" v-else>
672 672
                   <div class="equipmentborderif"></div>
673
-                  <div class="equipment1red">停止</div>
673
+                  <div class="equipment1red">{{ $t("monitor.Stopped") }}</div>
674 674
                 </div>
675
-                <div class="equipment2">运行状态</div>
675
+                <div class="equipment2">{{ $t("monitor.OperationStatus") }}</div>
676 676
               </div>
677 677
             </el-card>
678 678
             <!-- <el-card>
@@ -783,18 +783,18 @@
783 783
               <div class="equipmentdevice1">
784 784
                 <div class="equipmentname" v-if="Conditionerdata.alarmStatus == 0">
785 785
                   <div class="equipmentborder"></div>
786
-                  <div class="equipment1">正常</div>
786
+                  <div class="equipment1">{{ $t("monitor.Normal") }}</div>
787 787
                 </div>
788 788
                 <div class="equipmentname" v-else>
789 789
                   <div class="equipmentborderif"></div>
790
-                  <div class="equipment1red">故障</div>
790
+                  <div class="equipment1red">{{ $t("monitor.Fault") }}</div>
791 791
                 </div>
792
-                <div class="equipment2">故障状态</div>
792
+                <div class="equipment2">{{ $t("monitor.FaultDetails") }}</div>
793 793
               </div>
794 794
             </el-card>
795 795
           </div>
796 796
 
797
-          <div class="equipmentdata">设备数据</div>
797
+          <div class="equipmentdata">{{ $t("monitor.DeviceMetrics") }}</div>
798 798
           <!-- class="" -->
799 799
           <!-- <div class="equipmentdata_equipment">
800 800
             <div class="equipmentdata_div">
@@ -836,19 +836,19 @@
836 836
           <!--  -->
837 837
           <div class="equipmentdata_equipment">
838 838
             <div class="equipmentdata_div">
839
-              <div class="equipment_title">出水温度</div>
839
+              <div class="equipment_title">{{ $t("monitor.Outlettemperature") }}</div>
840 840
               <div>{{ (Conditionerdata.condensingTempr * 1).toFixed(3) ?? "-" }} ℃</div>
841 841
             </div>
842 842
             <div class="equipmentdata_div">
843
-              <div class="equipment_title">回水温度</div>
843
+              <div class="equipment_title">{{ $t("monitor.returntemperature") }}</div>
844 844
               <div>{{ (Conditionerdata.defrostTempr * 1).toFixed(3) ?? "-" }} ℃</div>
845 845
             </div>
846 846
             <div class="equipmentdata_div">
847
-              <div class="equipment_title">出水压力</div>
847
+              <div class="equipment_title">{{ $t("monitor.outletpressure") }}</div>
848 848
               <div>{{ (Conditionerdata.outdoorTempr * 1).toFixed(1) ?? "-" }} Bar</div>
849 849
             </div>
850 850
             <div class="equipmentdata_div4">
851
-              <div class="equipment_title">回水压力</div>
851
+              <div class="equipment_title">{{ $t("monitor.ReturnPressure") }}</div>
852 852
               <div>{{ (Conditionerdata.cabinetTempr * 1).toFixed(1) ?? "-" }} Bar</div>
853 853
             </div>
854 854
           </div>

+ 77
- 0
src/views/news/index.scss View File

@@ -0,0 +1,77 @@
1
+.screen {
2
+  display: flex;
3
+  width: 100%;
4
+  margin-bottom: 20px;
5
+}
6
+.screen1 {
7
+  display: flex;
8
+  flex-direction: column;
9
+  justify-content: space-between;
10
+  width: 100%;
11
+}
12
+.cardbottom {
13
+  margin-top: 20px;
14
+}
15
+.title {
16
+  display: flex;
17
+  align-items: center;
18
+  margin-bottom: 20px;
19
+  font-size: 18px;
20
+  .title_time {
21
+    margin-left: 10px;
22
+    font-size: 16px;
23
+  }
24
+}
25
+.pagination {
26
+  display: flex;
27
+  justify-content: space-between;
28
+  margin-top: 20px;
29
+}
30
+.btn-group {
31
+  display: flex;
32
+  gap: 10px; /* 按钮之间的间隔 */
33
+  align-items: center; /* 垂直居中按钮 */
34
+  justify-content: center; /* 水平居中按钮 */
35
+}
36
+.dialog_box {
37
+  display: flex;
38
+  align-items: center;
39
+  width: 100%;
40
+  padding: 20px 60px;
41
+  margin-top: 40px;
42
+}
43
+.dialog_box1 {
44
+  display: flex;
45
+  width: 100%;
46
+  padding: 20px 60px;
47
+  margin-top: 10px;
48
+}
49
+.dialog_box2 {
50
+  display: flex;
51
+  align-items: center;
52
+  width: 100%;
53
+  padding: 20px 60px;
54
+  margin-top: 10px;
55
+  margin-bottom: 10px;
56
+}
57
+.dialog_name {
58
+  display: flex;
59
+  margin-right: 20px;
60
+}
61
+.dialog_footer {
62
+  display: flex;
63
+  align-items: center;
64
+  justify-content: center;
65
+}
66
+.elimageurl {
67
+  display: flex;
68
+  overflow: hidden;
69
+  overflow: auto auto;
70
+}
71
+.Required {
72
+  width: 10px;
73
+  color: red;
74
+}
75
+.buttonadd {
76
+  margin-bottom: 20px;
77
+}

+ 151
- 0
src/views/news/index.vue View File

@@ -0,0 +1,151 @@
1
+<template>
2
+  <div>
3
+    <div class="title">
4
+      新闻管理
5
+      <div class="title_time">{{ currentDate }}</div>
6
+    </div>
7
+    <div class="card">
8
+      <div class="buttonadd">
9
+        <el-button type="primary" size="large" color="#0052d9" @click="buttonadd">新增</el-button>
10
+      </div>
11
+
12
+      <el-table :data="tableData.records" :show-overflow-tooltip="true" style="width: 100%" border>
13
+        <el-table-column prop="name" label="图片名称" />
14
+
15
+        <el-table-column prop="operationDate" label="创建时间" />
16
+        <el-table-column prop="newsimages" label="图片地址" width="700" />
17
+        <el-table-column prop="newsimages" label="并网点图片" width="200">
18
+          <template #default="scope">
19
+            <div class="elimageurl">
20
+              <el-image
21
+                style="width: 60px; height: 60px; margin-right: 10px"
22
+                :src="scope.row.newsimages"
23
+                :zoom-rate="1.2"
24
+                :max-scale="7"
25
+                :min-scale="0.2"
26
+                :preview-teleported="true"
27
+                :preview-src-list="[scope.row.newsimages]"
28
+                :initial-index="0"
29
+                fit="cover"
30
+              />
31
+            </div>
32
+
33
+            <!-- <img v-for="(item, index) in scope.row.url" :key="index" :src="item" alt="" style="height: 60px" /> -->
34
+          </template>
35
+        </el-table-column>
36
+        <el-table-column label="操作" align="center">
37
+          <template #default="scope">
38
+            <el-button v-if="false" color="#0052d9" type="primary" @click="newition(scope.row)"> 删除 </el-button>
39
+            <!-- <el-button @click="onremove(scope.row)">删除</el-button> -->
40
+          </template>
41
+        </el-table-column>
42
+      </el-table>
43
+      <!-- 分页组件 -->
44
+      <div class="pagination">
45
+        <div></div>
46
+        <slot name="pagination">
47
+          <Pagination :pageable="pageable" :handle-size-change="handleSizeChange" :handle-current-change="handleCurrentChange" />
48
+        </slot>
49
+      </div>
50
+    </div>
51
+    <el-dialog v-model="dialogVisible" title="新增图片" width="1200" :before-close="handleClose" border>
52
+      <div class="dialog_box">
53
+        <div class="dialog_name"><span class="Required">*</span> 图片名称</div>
54
+        <el-input v-model="emsdeviceidname" style="width: 300px" size="large" placeholder="输入图片名称" />
55
+      </div>
56
+      <div class="dialog_box">
57
+        <div class="dialog_name"><span class="Required">*</span> 上传图片</div>
58
+        <UploadImgs v-model:file-list="absoluteStationPicUr1" width="300px" :limit="1">
59
+          <template #empty>
60
+            <el-icon><Picture /></el-icon>
61
+            <span>请上传电站图片</span>
62
+          </template>
63
+        </UploadImgs>
64
+      </div>
65
+      <template #footer>
66
+        <div class="dialog_footer">
67
+          <el-button type="primary" @click="determine" size="large" color="#0052d9"> 确定 </el-button>
68
+        </div>
69
+      </template>
70
+    </el-dialog>
71
+  </div>
72
+</template>
73
+<!--    -->
74
+<script setup lang="ts">
75
+import { onMounted, ref } from "vue";
76
+import UploadImgs from "@/components/Upload/Imgs.vue";
77
+import { selectnewimagesURL, insertnewimagesURL } from "@/api/home/Multisite";
78
+import Pagination from "@/components/ProTable/components/Pagination.vue";
79
+
80
+const absoluteStationPicUr1 = ref();
81
+const tableData = ref();
82
+const dialogVisible = ref(false);
83
+const emsdeviceidname = ref();
84
+const pageable = ref({
85
+  pn: 1,
86
+  ps: 10,
87
+  total: 0
88
+});
89
+const getplatformuserlist = async () => {
90
+  let obj = {
91
+    pn: pageable.value.pn,
92
+    ps: pageable.value.ps
93
+  };
94
+  const { data } = await selectnewimagesURL(obj);
95
+  console.log(data);
96
+
97
+  tableData.value = data;
98
+  pageable.value.total = tableData.value.total;
99
+};
100
+const newition = (row: any) => {
101
+  console.log(row);
102
+  // alert("你点击了 " + row + " 次!");
103
+};
104
+// 关闭弹窗
105
+const handleClose = (row: any) => {
106
+  console.log(row);
107
+  dialogVisible.value = false;
108
+};
109
+const determine = async () => {
110
+  console.log(1);
111
+  let obj = {
112
+    newimages: absoluteStationPicUr1.value[0].url,
113
+    name: emsdeviceidname.value
114
+  };
115
+  const { data } = await insertnewimagesURL(obj);
116
+  console.log(data);
117
+  dialogVisible.value = false;
118
+  getplatformuserlist();
119
+};
120
+// 表格操作 Hooks
121
+const handleSizeChange = async (e: any) => {
122
+  pageable.value.ps = e;
123
+  getplatformuserlist();
124
+};
125
+const handleCurrentChange = async (e: any) => {
126
+  pageable.value.pn = e;
127
+
128
+  getplatformuserlist();
129
+};
130
+const buttonadd = async () => {
131
+  absoluteStationPicUr1.value = "";
132
+  emsdeviceidname.value = "";
133
+  dialogVisible.value = true;
134
+};
135
+
136
+const currentDate = ref();
137
+onMounted(() => {
138
+  const current = localStorage.getItem("currentDate");
139
+  if (current) {
140
+    currentDate.value = current;
141
+  }
142
+
143
+  getplatformuserlist();
144
+});
145
+</script>
146
+<style scoped lang="scss">
147
+@import "./index.scss";
148
+</style>
149
+<!--
150
+
151
+-->

+ 87
- 71
src/views/overview/index.vue View File

@@ -4,7 +4,7 @@
4 4
       <el-select
5 5
         v-model="Singlevalue"
6 6
         collapse-tags
7
-        placeholder="选择电站"
7
+        :placeholder="$t('overview.SelectPlant')"
8 8
         popper-class="custom-header"
9 9
         :max-collapse-tags="1"
10 10
         class="Space_content"
@@ -27,7 +27,7 @@
27 27
         <el-card>
28 28
           <div class="grid-content ep-bg-purple">
29 29
             <div class="overview_title1">
30
-              <div class="overview_title_name">今日充电量</div>
30
+              <div class="overview_title_name">{{ $t("overview.TodayEnergy") }}</div>
31 31
             </div>
32 32
             <div class="overview_title">
33 33
               <div class="overview_titlename">
@@ -39,17 +39,17 @@
39 39
               </div>
40 40
             </div>
41 41
             <div class="overview_line" v-if="multiStation.importKwhDiffYDay > 0">
42
-              较昨日上升: {{ formatAmountkwh_(multiStation.importKwhDiffYDay) }}
42
+              {{ $t("overview.upperYesterday") }}: {{ formatAmountkwh_(multiStation.importKwhDiffYDay) }}
43 43
               {{ formatCompany_(multiStation.importKwhDiffYDay) }}
44 44
             </div>
45 45
             <div class="overview_line" v-else>
46
-              较昨日下降: {{ formatAmountkwh_(multiStation.importKwhDiffYDay) }}
46
+              {{ $t("overview.belowYesterday") }}: {{ formatAmountkwh_(multiStation.importKwhDiffYDay) }}
47 47
               {{ formatCompany_(multiStation.importKwhDiffYDay) }}
48 48
             </div>
49 49
             <el-divider />
50 50
             <div class="overview_line">
51
-              本月充电: {{ formatAmountkwh(multiStation.monthImportKwh) }} {{ formatCompany(multiStation.monthImportKwh) }} |
52
-              累计充电:
51
+              {{ $t("overview.Charging") }}: {{ formatAmountkwh(multiStation.monthImportKwh) }}
52
+              {{ formatCompany(multiStation.monthImportKwh) }} | {{ $t("overview.TotalCharging") }}:
53 53
               {{ formatAmountkwh(multiStation.accumulativeImportKwh) }}
54 54
               {{ formatCompany(multiStation.accumulativeImportKwh) }}
55 55
             </div>
@@ -60,7 +60,7 @@
60 60
         <el-card>
61 61
           <div class="grid-content ep-bg-purple">
62 62
             <div class="overview_title1">
63
-              <div class="overview_title_name">今日放电量</div>
63
+              <div class="overview_title_name">{{ $t("overview.TodayDischarge") }}</div>
64 64
             </div>
65 65
             <div class="overview_title">
66 66
               <div class="overview_titlename">
@@ -72,17 +72,17 @@
72 72
               </div>
73 73
             </div>
74 74
             <div class="overview_line" v-if="multiStation.exportKwhDiffYDay > 0">
75
-              较昨日上升: {{ formatAmountkwh_(multiStation.exportKwhDiffYDay) }}
75
+              {{ $t("overview.upperYesterday") }}: {{ formatAmountkwh_(multiStation.exportKwhDiffYDay) }}
76 76
               {{ formatCompany_(multiStation.exportKwhDiffYDay) }}
77 77
             </div>
78 78
             <div class="overview_line" v-else>
79
-              较昨日下降: {{ formatAmountkwh_(multiStation.exportKwhDiffYDay) }}
79
+              {{ $t("overview.belowYesterday") }}: {{ formatAmountkwh_(multiStation.exportKwhDiffYDay) }}
80 80
               {{ formatCompany_(multiStation.exportKwhDiffYDay) }}
81 81
             </div>
82 82
             <el-divider />
83 83
             <div class="overview_line">
84
-              本月放电: {{ formatAmountkwh(multiStation.monthExportKwh) }} {{ formatCompany(multiStation.monthExportKwh) }} |
85
-              累计放电:
84
+              {{ $t("overview.Discharge") }}: {{ formatAmountkwh(multiStation.monthExportKwh) }}
85
+              {{ formatCompany(multiStation.monthExportKwh) }} | {{ $t("overview.discharge") }}:
86 86
               {{ formatAmountkwh(multiStation.accumulativeExportKwh) }}
87 87
               {{ formatCompany(multiStation.accumulativeExportKwh) }}
88 88
             </div>
@@ -93,7 +93,7 @@
93 93
         <el-card>
94 94
           <div class="grid-content ep-bg-purple">
95 95
             <div class="overview_title1">
96
-              <div class="overview_title_name">今日收益</div>
96
+              <div class="overview_title_name">{{ $t("overview.TodayRevenue") }}</div>
97 97
             </div>
98 98
             <div class="overview_title">
99 99
               <div class="overview_titlename">
@@ -105,16 +105,17 @@
105 105
               </div>
106 106
             </div>
107 107
             <div class="overview_line" v-if="multiStation.profitDiffYDay > 0">
108
-              较昨日上升: {{ formatAmount1(multiStation.profitDiffYDay) }}
108
+              {{ $t("overview.upperYesterday") }}: {{ formatAmount1(multiStation.profitDiffYDay) }}
109 109
               {{ formatAmounts2(multiStation.profitDiffYDay) }}
110 110
             </div>
111 111
             <div class="overview_line" v-else>
112
-              较昨日下降: {{ formatAmount1(multiStation.profitDiffYDay) }}
112
+              {{ $t("overview.belowYesterday") }}: {{ formatAmount1(multiStation.profitDiffYDay) }}
113 113
               {{ formatAmounts2(multiStation.profitDiffYDay) }}
114 114
             </div>
115 115
             <el-divider />
116 116
             <div class="overview_line">
117
-              本月收益: {{ formatAmount(multiStation.monthProfit) }} {{ formatAmounts(multiStation.monthProfit) }} | 总收益:
117
+              {{ $t("overview.MTDRevenue") }}: {{ formatAmount(multiStation.monthProfit) }}
118
+              {{ formatAmounts(multiStation.monthProfit) }} | {{ $t("overview.TotalRevenue") }}:
118 119
               {{ formatAmount(multiStation.totalProfit) }}
119 120
               {{ formatAmounts(multiStation.totalProfit) }}
120 121
             </div>
@@ -125,21 +126,24 @@
125 126
         <el-card>
126 127
           <div class="grid-content ep-bg-purple">
127 128
             <div class="overview_title1">
128
-              <div class="overview_title_name">设备总数</div>
129
+              <div class="overview_title_name">{{ $t("overview.TotalDevices") }}</div>
129 130
             </div>
130 131
             <div class="overview_title">
131
-              <div class="overview_titlename">{{ multiStation.stationTotalCount }} <span class="overview_unit">个</span></div>
132
+              <div class="overview_titlename">
133
+                {{ multiStation.stationTotalCount }} <span class="overview_unit">{{ $t("type") == "zh" ? "个" : "" }}</span>
134
+              </div>
132 135
               <div class="overview_img">
133 136
                 <img src="../../assets/images/gu1.png" alt="站点" />
134 137
               </div>
135 138
             </div>
136 139
             <div class="overview_line">
137
-              在线 {{ multiStation.stationOnlineCount }} 个 \ 离线 {{ multiStation.stationOfflineCount }} 个
140
+              {{ $t("overview.Online") }} {{ multiStation.stationOnlineCount }} {{ $t("type") == "zh" ? "个" : "" }} \
141
+              {{ $t("overview.Offline") }} {{ multiStation.stationOfflineCount }} {{ $t("type") == "zh" ? "个" : "" }}
138 142
             </div>
139 143
             <el-divider />
140 144
             <div class="overview_line">
141
-              装机功率: {{ formatAmountkwh(multiStation.installedPower) }} {{ formatCompany1(multiStation.installedPower) }} |
142
-              装机容量:
145
+              {{ $t("overview.InstalledPower") }}: {{ formatAmountkwh(multiStation.installedPower) }}
146
+              {{ formatCompany1(multiStation.installedPower) }} | {{ $t("overview.InstalledCapacity") }}:
143 147
               {{ formatAmountkwh(multiStation.installedCap) }}
144 148
               {{ formatCompany(multiStation.installedCap) }}
145 149
             </div>
@@ -152,8 +156,8 @@
152 156
         <el-card>
153 157
           <div class="grid_div grid-content ep-bg-purple">
154 158
             <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
155
-              <el-tab-pane label="收益统计" name="first"></el-tab-pane>
156
-              <el-tab-pane label="充放电统计" name="second"></el-tab-pane>
159
+              <el-tab-pane :label="$t('overview.RevenueAnalytics')" name="first"></el-tab-pane>
160
+              <el-tab-pane :label="$t('overview.DischargeStatistics')" name="second"></el-tab-pane>
157 161
               <div class="grid_div1">
158 162
                 <div ref="baroption" id="baroption"></div>
159 163
               </div>
@@ -168,8 +172,8 @@
168 172
                 :shortcuts="shortcuts1"
169 173
                 :format="format1"
170 174
                 :value-format="format1"
171
-                start-placeholder="开始时间"
172
-                end-placeholder="结束时间"
175
+                :start-placeholder="$t('overview.StartTime')"
176
+                :end-placeholder="$t('overview.EndTime')"
173 177
                 :default-value="value2"
174 178
                 :disabled-date="pickerOptions"
175 179
                 size="large"
@@ -178,7 +182,7 @@
178 182
               />
179 183
               <el-select
180 184
                 v-model="daymonthyearvalue1"
181
-                placeholder="选择日期"
185
+                :placeholder="$t('overview.SelectDate')"
182 186
                 size="large"
183 187
                 style="width: 80px"
184 188
                 @change="getdaymonthyear1"
@@ -193,8 +197,8 @@
193 197
         <el-card>
194 198
           <div class="grid-content ep-bg-purple">
195 199
             <div class="grid_right">
196
-              <div>站点信息</div>
197
-              <div class="grid_right1" @click="details()">查看详细</div>
200
+              <div>{{ $t("overview.PlantInformation") }}</div>
201
+              <div class="grid_right1" @click="details()">{{ $t("overview.ViewDetails") }}</div>
198 202
             </div>
199 203
             <!-- <div id="gridpiechart">-||-</div> -->
200 204
             <div class="gridpiechart">
@@ -203,20 +207,20 @@
203 207
             <div class="gridpiechartname">{{ stationinfodata.stationName }}</div>
204 208
 
205 209
             <div class="gridpiechartdiv">
206
-              <div class="gridpiechartnameright">装机总容量</div>
210
+              <div class="gridpiechartnameright">{{ $t("overview.TotalInstalledCapacity") }}</div>
207 211
               <div class="gridpiechartnameleft">{{ stationinfodata.installedCap }} kWh</div>
208 212
             </div>
209 213
 
210 214
             <div class="gridpiechartdiv">
211
-              <div class="gridpiechartnameright">装机功率</div>
215
+              <div class="gridpiechartnameright">{{ $t("overview.RatedPower") }}</div>
212 216
               <div class="gridpiechartnameleft">{{ stationinfodata.installedPower }} MW</div>
213 217
             </div>
214 218
             <div class="gridpiechartdiv">
215
-              <div class="gridpiechartnameright">投运时间</div>
219
+              <div class="gridpiechartnameright">{{ $t("overview.CommissioningDate") }}</div>
216 220
               <div class="gridpiechartnameleft">{{ stationinfodata.operationDate }}</div>
217 221
             </div>
218 222
             <div class="gridpiechartdiv">
219
-              <div class="gridpiechartnameright">电站地址</div>
223
+              <div class="gridpiechartnameright">{{ $t("overview.PlantLocation") }}</div>
220 224
               <div class="gridpiechartnameleft1">
221 225
                 <el-icon><Location /></el-icon>&nbsp;<el-tooltip
222 226
                   class="box-item"
@@ -236,7 +240,7 @@
236 240
       <el-card style="width: 100%">
237 241
         <div class="middleleft">
238 242
           <div class="middlelefttop">
239
-            <div>综合功率</div>
243
+            <div>{{ $t("overview.CompositePower") }}</div>
240 244
 
241 245
             <div class="middle_divright">
242 246
               <!-- <div :class="timedays == 7 ? 'middle_divright_1' : 'middle_divright_2'" @click="oncomprehen(7)">近7日</div>
@@ -250,8 +254,8 @@
250 254
                 :value-format="format"
251 255
                 unlink-panels
252 256
                 size="large"
253
-                start-placeholder="开始时间"
254
-                end-placeholder="结束时间"
257
+                :start-placeholder="$t('overview.StartTime')"
258
+                :end-placeholder="$t('overview.EndTime')"
255 259
                 :default-value="timedayslist"
256 260
                 :disabled-date="pickerOptions"
257 261
                 @change="onpowerblur"
@@ -274,44 +278,44 @@
274 278
     <el-card>
275 279
       <template #header>
276 280
         <div class="card-header">
277
-          <span>设备列表</span>
281
+          <span>{{ $t("overview.DeviceList") }}</span>
278 282
         </div>
279 283
       </template>
280 284
       <div class="cardtable">
281
-        <div>通讯状态:</div>
285
+        <div>{{ $t("overview.CommunicationStatus") }}:</div>
282 286
         &emsp;
283
-        <el-select v-model="onlineStatus" placeholder="请选择" size="large" style="width: 240px">
287
+        <el-select v-model="onlineStatus" :placeholder="$t('overview.EndTime')" size="large" style="width: 240px">
284 288
           <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
285 289
         </el-select>
286 290
         &emsp;
287
-        <el-input v-model="modelinput" style="width: 240px" placeholder="设备编号" size="large" />
291
+        <el-input v-model="modelinput" style="width: 240px" :placeholder="$t('overview.DeviceID')" size="large" />
288 292
         &emsp;
289
-        <el-button type="primary" size="large" color="#0052d9" @click="query(0)">查询</el-button>
290
-        <el-button size="large" @click="query(1)">重置</el-button>
293
+        <el-button type="primary" size="large" color="#0052d9" @click="query(0)">{{ $t("overview.Query") }}</el-button>
294
+        <el-button size="large" @click="query(1)">{{ $t("overview.Reset") }}</el-button>
291 295
       </div>
292 296
       <el-table :data="tableData.records" style="width: 100%" border :scrollbar-always-on="true">
293
-        <el-table-column type="index" label="序号" width="60" />
294
-        <el-table-column prop="eid" label="设备编号" width="160" :show-overflow-tooltip="true" />
295
-        <el-table-column prop="emsDeviceId" label="设备名称" width="160" :show-overflow-tooltip="true" />
296
-        <el-table-column prop="onlineStatus" label="在线状态" width="160">
297
+        <el-table-column type="index" :label="$t('overview.SNo')" width="60" />
298
+        <el-table-column prop="eid" :label="$t('overview.DeviceID')" width="160" :show-overflow-tooltip="true" />
299
+        <el-table-column prop="emsDeviceId" :label="$t('overview.DeviceName')" width="160" :show-overflow-tooltip="true" />
300
+        <el-table-column prop="onlineStatus" :label="$t('overview.OnlineStatus')" width="160">
297 301
           <template #default="scope">
298
-            {{ scope.row.onlineStatus == 0 ? "离线" : "在线" }}
302
+            {{ scope.row.onlineStatus == 0 ? $t("overview.Offline") : $t("overview.Online") }}
299 303
           </template>
300 304
         </el-table-column>
301
-        <el-table-column prop="dayImportKwh" label="今日充电量(kWh)" width="160" />
302
-        <el-table-column prop="dayExportKwh" label="今日放电量(kWh)" width="160" />
303
-        <el-table-column prop="accumulativeImportKwh" label="总充电量(kWh)" width="160" />
304
-        <el-table-column prop="accumulativeExportKwh" label="总放电量(kWh)" width="160" />
305
+        <el-table-column prop="dayImportKwh" :label="$t('overview.TodayCharging')" width="160" />
306
+        <el-table-column prop="dayExportKwh" :label="$t('overview.TodaysDischarge')" width="160" />
307
+        <el-table-column prop="accumulativeImportKwh" :label="$t('overview.TotalCharged')" width="160" />
308
+        <el-table-column prop="accumulativeExportKwh" :label="$t('overview.TotalDischarged')" width="160" />
305 309
         <el-table-column prop="soc" label="SOC(%)" width="160" />
306
-        <el-table-column prop="todayAlarmCount" label="运维处理(今日)" align="center" width="160">
310
+        <el-table-column prop="todayAlarmCount" :label="$t('overview.Maintenance')" align="center" width="160">
307 311
           <template #default="scope">
308 312
             {{ scope.row.todayAlarmCount == null ? "-" : scope.row.todayAlarmCount }}
309 313
           </template>
310 314
         </el-table-column>
311 315
 
312
-        <el-table-column prop="gridActivePower" label="电网有功功率(KW)" width="160" />
313
-        <el-table-column prop="storageActivePower" label="储能有功功率(KW)" width="160" />
314
-        <el-table-column prop="loadActivePower" label="负载有功功率(KW)" width="160" />
316
+        <el-table-column prop="gridActivePower" :label="$t('overview.GridActivePower')" width="160" />
317
+        <el-table-column prop="storageActivePower" :label="$t('overview.ESSActivePower')" width="160" />
318
+        <el-table-column prop="loadActivePower" :label="$t('overview.LoadActivePower')" width="160" />
315 319
       </el-table>
316 320
       <div class="example_block">
317 321
         <Pagination :pageable="pageable" :handle-size-change="handleSizeChange" :handle-current-change="handleCurrentChange" />
@@ -320,67 +324,71 @@
320 324
     </el-card>
321 325
     <el-dialog v-model="dialogVisible" title="查看电站" width="800" :before-close="handleClose">
322 326
       <div class="dialog">
323
-        <div :class="informationtype == 1 ? 'information' : 'more'" @click="oninformation">基础信息</div>
324
-        <div :class="informationtype == 2 ? 'information' : 'more'" @click="onmoreinformation">更多信息</div>
327
+        <div :class="informationtype == 1 ? 'information' : 'more'" @click="oninformation">
328
+          {{ $t("overview.BasicInformation") }}
329
+        </div>
330
+        <div :class="informationtype == 2 ? 'information' : 'more'" @click="onmoreinformation">
331
+          {{ $t("overview.MoreDetails") }}
332
+        </div>
325 333
       </div>
326 334
       <div v-if="informationtype == 1">
327 335
         <div class="more_img">
328
-          <div class="more_name">电站图片:</div>
336
+          <div class="more_name">{{ $t("overview.PlantPhotos") }}:</div>
329 337
           <img class="dialogimg" :src="stationinfodata.absoluteStationPicUrl" alt="" />
330 338
         </div>
331 339
         <div class="dialog_title">
332
-          <div class="more_name">电站名称:</div>
340
+          <div class="more_name">{{ $t("overview.PlantName") }}:</div>
333 341
           <div class="more_theme">{{ stationinfodata.stationName }}</div>
334 342
         </div>
335 343
         <div class="dialog_title">
336
-          <div class="more_name">装机功率:</div>
344
+          <div class="more_name">{{ $t("overview.InstalledPower") }}:</div>
337 345
           <div class="more_theme">{{ stationinfodata.installedPower }}MW</div>
338 346
         </div>
339 347
         <div class="dialog_title">
340
-          <div class="more_name">装机容量:</div>
348
+          <div class="more_name">{{ $t("overview.InstalledCapacity") }}:</div>
341 349
           <div class="more_theme">{{ stationinfodata.installedCap }}kWh</div>
342 350
         </div>
343 351
         <div class="dialog_title">
344
-          <div class="more_name">电站地址:</div>
352
+          <div class="more_name">{{ $t("overview.PlantLocation") }}:</div>
345 353
           <div class="more_theme">{{ stationinfodata.province }}</div>
346 354
         </div>
347 355
         <div class="dialog_title">
348
-          <div class="more_name">投运时间:</div>
356
+          <div class="more_name">{{ $t("overview.CommissioningDate") }}:</div>
349 357
           <div class="more_theme">{{ stationinfodata.operationDate }}</div>
350 358
         </div>
351 359
         <div class="dialog_title">
352
-          <div class="more_name">电站联系电话:</div>
360
+          <div class="more_name">{{ $t("overview.ContactNumber") }}:</div>
353 361
           <div class="more_theme">{{ stationinfodata.contactPhone }}</div>
354 362
         </div>
355 363
       </div>
356 364
       <div v-if="informationtype == 2">
357 365
         <div class="dialog_title">
358
-          <div class="more_name">安装图片:</div>
366
+          <div class="more_name">{{ $t("overview.InstallationPhotos") }}:</div>
359 367
           <div class="more_theme">-</div>
360 368
         </div>
361 369
         <div class="dialog_title">
362
-          <div class="more_name">并网点信息:</div>
370
+          <div class="more_name">{{ $t("overview.GridConnectionInfo") }}:</div>
363 371
           <div class="more_theme">-</div>
364 372
         </div>
365 373
         <div class="dialog_title">
366
-          <div class="more_name">变压器信息:</div>
374
+          <div class="more_name">{{ $t("overview.TransformerSpecifications") }}:</div>
367 375
           <div class="more_theme">-</div>
368 376
         </div>
369 377
         <div class="dialog_title">
370
-          <div class="more_name">站点变压器容量:</div>
378
+          <div class="more_name">{{ $t("overview.TransformerCapacity") }}:</div>
371 379
           <div class="more_theme">-</div>
372 380
         </div>
373 381
         <div class="dialog_title">
374
-          <div class="more_name">安装人:</div>
382
+          <div class="more_name">{{ $t("overview.Installer") }}:</div>
375 383
           <div class="more_theme">-</div>
376 384
         </div>
377 385
         <div class="dialog_title">
378
-          <div class="more_name">安装人联系号码:</div>
386
+          <div class="more_name">{{ $t("overview.InstallerContact") }}:</div>
379 387
           <div class="more_theme">-</div>
380 388
         </div>
381 389
       </div>
382 390
       <div class="dialog_footer">
383
-        <el-button @click="dialogVisible = false" size="large">关闭</el-button>
391
+        <el-button @click="dialogVisible = false" size="large">{{ $t("overview.Close") }}</el-button>
384 392
       </div>
385 393
     </el-dialog>
386 394
   </div>
@@ -407,6 +415,9 @@ import {
407 415
   postsexportKwhMonth
408 416
 } from "@/api/home/Multisite";
409 417
 import { Station } from "@/api/interface";
418
+import { useRoute } from "vue-router";
419
+const route = useRoute();
420
+
410 421
 const multiStation = ref();
411 422
 const activeName = ref("first");
412 423
 const value2 = ref();
@@ -420,7 +431,7 @@ const pageable = ref({
420 431
   total: 0
421 432
 });
422 433
 // 选择站点
423
-const Singlevalue = ref("");
434
+const Singlevalue = ref();
424 435
 const Singledata = ref([]);
425 436
 const onselect = (val: any) => {
426 437
   activeName.value = "first";
@@ -456,7 +467,12 @@ const options = ref([
456 467
 
457 468
 const poststationstationName = async () => {
458 469
   const { data } = await stationstationName({});
459
-  Singlevalue.value = data[0].id;
470
+  if (route.query.powerId) {
471
+    Singlevalue.value = route.query.powerId;
472
+  } else {
473
+    Singlevalue.value = data[0].id;
474
+  }
475
+
460 476
   cities.value = data;
461 477
   getsite();
462 478
   getStationinfo();

+ 8
- 14
src/views/powerconfiguration/index.vue View File

@@ -71,13 +71,13 @@
71 71
 
72 72
           </template>
73 73
         </el-table-column> -->
74
-        <el-table-column prop="url" label="设备启停控制" align="center" width="200">
74
+        <el-table-column prop="value" label="设备启停控制" align="center" width="200">
75 75
           <template #default="scope">
76 76
             <el-switch
77 77
               v-model="scope.row.binding"
78 78
               active-value="1"
79 79
               inactive-value="0"
80
-              @change="newValue => changeswitch(newValue, scope.row)"
80
+              @change="changeswitch(scope.row)"
81 81
               size="large"
82 82
             />
83 83
           </template>
@@ -265,7 +265,7 @@
265 265
   </div>
266 266
 </template>
267 267
 <!--  
268
- 
268
+
269 269
 -->
270 270
 <script setup lang="ts">
271 271
 import { selectemssytemNameURL, stationstationName, periodoftimeURL, mqttsendURL } from "@/api/home/Multisite";
@@ -357,17 +357,11 @@ const newition = async (row: { url: never[]; emsDeviceId: any; eid: any; periodo
357 357
 };
358 358
 const Switchvalue = ref();
359 359
 
360
-const changeswitch = async (
361
-  newValue: any,
362
-  row: {
363
-    eid: any;
364
-    binding: string;
365
-  }
366
-) => {
367
-  console.log("Switch value:", newValue);
360
+const changeswitch = async (row: { eid: any; value: string }) => {
361
+  // console.log("Switch value:", newValue);
368 362
   console.log("Switch value:", row);
369 363
 
370
-  if (newValue == 0) {
364
+  if (row.value == "0") {
371 365
     Switchvalue.value = "确定关闭设备吗?";
372 366
   } else {
373 367
     Switchvalue.value = "确定开启设备吗?";
@@ -380,7 +374,7 @@ const changeswitch = async (
380 374
     .then(async () => {
381 375
       let obj = {
382 376
         deviceId: row.eid,
383
-        value: newValue == 0 ? 0 : 1,
377
+        value: row.value == "0" ? "0" : "1",
384 378
         id: "7721e827-610e-4d15-8497-3590eb120c5f",
385 379
         name: "Sys_Cmd_StartStop"
386 380
       };
@@ -397,7 +391,7 @@ const changeswitch = async (
397 391
         type: "info",
398 392
         message: "取消操作"
399 393
       });
400
-      row.binding = row.binding === "1" ? "0" : "1"; // 恢复到原来的状态
394
+      row.value = row.value === "1" ? "0" : "1"; // 恢复到原来的状态
401 395
     });
402 396
 };
403 397
 // 确定

+ 9
- 0
src/views/reportforms/index.scss View File

@@ -174,3 +174,12 @@
174 174
   width: 100%;
175 175
   margin: 20px 0;
176 176
 }
177
+.abnormal {
178
+  color: red;
179
+}
180
+.different {
181
+  color: orange;
182
+}
183
+.normal {
184
+  color: #007545;
185
+}

+ 109
- 61
src/views/reportforms/index.vue View File

@@ -1,22 +1,23 @@
1 1
 <template>
2 2
   <div>
3 3
     <div class="title">
4
-      电量报表
4
+      {{ $t("reportforms.Electricityreport") }}
5 5
       <div class="title_time">{{ currentDate }}</div>
6 6
     </div>
7 7
     <el-card class="price_allocationcard" v-if="false">
8 8
       <div class="price_allocation">
9
-        <el-icon><WarningFilled /></el-icon>&ensp;
10
-        站点汇总展示所有站点报表数据,支持按日展示31天,按月展示一年内数据。&ensp;&ensp;&ensp;&ensp;<el-icon><Close /></el-icon>
9
+        <el-icon><WarningFilled /></el-icon>&ensp; {{ $t("reportforms.summary") }} &ensp;&ensp;&ensp;&ensp;<el-icon>
10
+          <Close />
11
+        </el-icon>
11 12
       </div>
12 13
     </el-card>
13 14
     <el-card>
14 15
       <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
15
-        <el-tab-pane label="站点汇总" name="站点汇总">
16
+        <el-tab-pane :label="$t('reportforms.SiteSummary')" name="站点汇总">
16 17
           <div class="tabdiv">
17 18
             <div class="tabpanesite">
18 19
               <div class="tabpane">
19
-                <div>时间范围:</div>
20
+                <div>{{ $t("reportforms.timeframe") }}:</div>
20 21
                 <div class="tabpane1">
21 22
                   <!-- year -->
22 23
                   <el-date-picker
@@ -65,13 +66,15 @@
65 66
                   </el-select>
66 67
                 </div>
67 68
                 &ensp;&ensp;
68
-                <el-button type="primary" size="large" color="#0052d9" @click="gatSummary">查询</el-button>
69
-                <el-button size="large" @click="onreset">重置</el-button>
69
+                <el-button type="primary" size="large" color="#0052d9" @click="gatSummary">{{
70
+                  $t("reportforms.Query")
71
+                }}</el-button>
72
+                <el-button size="large" @click="onreset">{{ $t("reportforms.Reset") }}</el-button>
70 73
               </div>
71 74
 
72 75
               <div class="exportright" v-if="BUTTONS.export">
73 76
                 <el-dropdown trigger="click" :hide-on-click="false" @visible-change="onclose">
74
-                  <el-button size="large" type="primary" plain>导出</el-button>
77
+                  <el-button size="large" type="primary" plain>{{ $t("reportforms.export") }}</el-button>
75 78
                   <template #dropdown>
76 79
                     <el-dropdown-menu v-for="(item, index) in columnList" :key="index">
77 80
                       <el-dropdown-item>
@@ -84,7 +87,7 @@
84 87
                       </el-dropdown-item>
85 88
                     </el-dropdown-menu>
86 89
                     <div class="dropdown">
87
-                      <el-button @click="onexport" type="primary" plain>确定导出</el-button>
90
+                      <el-button @click="onexport" type="primary" plain>{{ $t("reportforms.export") }}</el-button>
88 91
                     </div>
89 92
                   </template>
90 93
                 </el-dropdown>
@@ -122,22 +125,34 @@
122 125
             </el-table>
123 126
           </div>
124 127
         </el-tab-pane>
125
-        <el-tab-pane label="单站报表" name="单站报表">
128
+        <el-tab-pane :label="$t('reportforms.Singlereport')" name="单站报表">
126 129
           <div class="tabpane">
127
-            <div class="tabpane_1">报表类型:</div>
130
+            <div class="tabpane_1">{{ $t("reportforms.reporttype") }}:</div>
128 131
             <!-- <div :class="reportformsindex == 1 ? 'tabpane_2' : 'tabpane_1'" @click="onreportforms(1)">时段报表</div> -->
129
-            <div :class="reportformsindex == 2 ? 'tabpane_2' : 'tabpane_1'" @click="onreportforms(2)">日报表</div>
130
-            <div :class="reportformsindex == 3 ? 'tabpane_2' : 'tabpane_1'" @click="onreportforms(3)">月报表</div>
131
-            <div :class="reportformsindex == 4 ? 'tabpane_2' : 'tabpane_1'" @click="onreportforms(4)">年报表</div>
132
+            <div :class="reportformsindex == 2 ? 'tabpane_2' : 'tabpane_1'" @click="onreportforms(2)">
133
+              {{ $t("reportforms.dailyreport") }}
134
+            </div>
135
+            <div :class="reportformsindex == 3 ? 'tabpane_2' : 'tabpane_1'" @click="onreportforms(3)">
136
+              {{ $t("reportforms.Monthlyreport") }}
137
+            </div>
138
+            <div :class="reportformsindex == 4 ? 'tabpane_2' : 'tabpane_1'" @click="onreportforms(4)">
139
+              {{ $t("reportforms.annualreport") }}
140
+            </div>
132 141
           </div>
133 142
           <div class="tabpanesite">
134 143
             <div class="selectsite">
135
-              <div class="tabpane_1">选择站点:</div>
136
-              <el-select v-model="Singlevalue" placeholder="选择站点" size="large" style="width: 240px" @change="postemsDevice">
144
+              <div class="tabpane_1">{{ $t("reportforms.selectsite") }}:</div>
145
+              <el-select
146
+                v-model="Singlevalue"
147
+                :placeholder="$t('reportforms.selectsite')"
148
+                size="large"
149
+                style="width: 240px"
150
+                @change="postemsDevice"
151
+              >
137 152
                 <el-option v-for="item in cities" :key="item.id" :label="item.stationName" :value="item.id" />
138 153
               </el-select>
139 154
               &ensp;&ensp;&ensp;&ensp; &ensp;&ensp;
140
-              <div class="tabpane_1">选择日期:</div>
155
+              <div class="tabpane_1">{{ $t("reportforms.SelectDate") }}:</div>
141 156
               <div>
142 157
                 <el-date-picker
143 158
                   v-if="pickertype != 'year'"
@@ -177,8 +192,10 @@
177 192
               </div>
178 193
               &ensp;&ensp;
179 194
 
180
-              <el-button type="primary" size="large" color="#0052d9" @click="onselectsite">查询</el-button>
181
-              <el-button size="large" @click="onselectreset">重置</el-button>
195
+              <el-button type="primary" size="large" color="#0052d9" @click="onselectsite">{{
196
+                $t("reportforms.Query")
197
+              }}</el-button>
198
+              <el-button size="large" @click="onselectreset">{{ $t("reportforms.Reset") }}</el-button>
182 199
               &ensp;&ensp;
183 200
             </div>
184 201
 
@@ -187,7 +204,7 @@
187 204
             </div> -->
188 205
             <div class="exportright" v-if="BUTTONS.export && reportformsindex != 1">
189 206
               <el-dropdown trigger="click" :hide-on-click="false" @visible-change="onsingleclose">
190
-                <el-button size="large" type="primary" plain>导出</el-button>
207
+                <el-button size="large" type="primary" plain>{{ $t("reportforms.export") }}</el-button>
191 208
                 <template #dropdown>
192 209
                   <el-dropdown-menu v-for="(item, index) in singlecolumnList" :key="index">
193 210
                     <el-dropdown-item>
@@ -200,37 +217,37 @@
200 217
                     </el-dropdown-item>
201 218
                   </el-dropdown-menu>
202 219
                   <div class="dropdown">
203
-                    <el-button @click="singleexport" type="primary" plain>确定导出</el-button>
220
+                    <el-button @click="singleexport" type="primary" plain>{{ $t("reportforms.export") }}</el-button>
204 221
                   </div>
205 222
                 </template>
206 223
               </el-dropdown>
207 224
             </div>
208 225
           </div>
209 226
           <!-- <div v-if="reportformsindex == 1"> -->
210
-          <!-- 目前没有时段数据 -->
227
+          <!-- 目前没有--时段数据 -->
211 228
           <div v-if="false">
212
-            <div class="tabpane_data">时段数据</div>
229
+            <div class="tabpane_data">{{ $t("reportforms.perioddata") }}</div>
213 230
             <div class="tabpanechart">
214 231
               <div :class="chartindex == 1 ? 'tabpane_22' : 'tabpane_11'" @click="onchart(1)">
215
-                <i class="iconfont iconfontfont">&#xeb96;</i>&ensp;折线图
232
+                <i class="iconfont iconfontfont">&#xeb96;</i>&ensp;{{ $t("reportforms.linechart") }}
216 233
               </div>
217 234
               <div :class="chartindex == 2 ? 'tabpane_22' : 'tabpane_11'" @click="onchart(2)">
218
-                <i class="iconfont iconfontfont">&#xe663;</i>&ensp;柱状图
235
+                <i class="iconfont iconfontfont">&#xe663;</i>&ensp;{{ $t("reportforms.barchart") }}
219 236
               </div>
220 237
               <div :class="chartindex == 3 ? 'tabpane_22' : 'tabpane_11'" @click="onchart(3)">
221
-                <i class="iconfont iconfontfont">&#xeb94;</i>&ensp;表格
238
+                <i class="iconfont iconfontfont">&#xeb94;</i>&ensp;{{ $t("reportforms.table") }}
222 239
               </div>
223 240
             </div>
224 241
             <div class="Line_chart" v-if="chartindex == 1">
225 242
               <div class="gcurve_title">
226 243
                 <div class="gcurve_tip"></div>
227
-                <div></div>
244
+                <div>{{ $t("reportforms.Peak") }}</div>
228 245
                 <div class="gcurve_peak"></div>
229
-                <div></div>
246
+                <div>{{ $t("reportforms.Shoulder") }}</div>
230 247
                 <div class="gcurve_flat"></div>
231
-                <div></div>
248
+                <div>{{ $t("reportforms.Offpeak") }}</div>
232 249
                 <div class="gcurve_valley"></div>
233
-                <div></div>
250
+                <div>{{ $t("reportforms.Valley") }}</div>
234 251
               </div>
235 252
               <div class="gcurve_chart">
236 253
                 <div class="trendchartchart" ref="trendchart"></div>
@@ -240,13 +257,13 @@
240 257
             <div class="Line_chart" v-if="chartindex == 2">
241 258
               <div class="gcurve_title">
242 259
                 <div class="gcurve_tip"></div>
243
-                <div></div>
260
+                <div>{{ $t("reportforms.Peak") }}</div>
244 261
                 <div class="gcurve_peak"></div>
245
-                <div></div>
262
+                <div>{{ $t("reportforms.Shoulder") }}</div>
246 263
                 <div class="gcurve_flat"></div>
247
-                <div></div>
264
+                <div>{{ $t("reportforms.Offpeak") }}</div>
248 265
                 <div class="gcurve_valley"></div>
249
-                <div></div>
266
+                <div>{{ $t("reportforms.Valley") }}</div>
250 267
               </div>
251 268
               <div class="trendchartchart" ref="columnchart"></div>
252 269
             </div>
@@ -260,36 +277,46 @@
260 277
                   </el-table-column>
261 278
 
262 279
                   <el-table-column label="充电量(kWh)" align="center">
263
-                    <el-table-column prop="chargeSharpKwh" label="尖" align="center" />
264
-                    <el-table-column prop="chargePeakKwh" label="峰" align="center" />
265
-                    <el-table-column prop="chargeShoulderKwh" label="平" align="center" />
266
-                    <el-table-column prop="chargeValleyKwh" label="谷" align="center" />
267
-                    <el-table-column prop="chargeKwh" label="总" align="center" />
280
+                    <el-table-column prop="chargeSharpKwh" :label="$t('reportforms.Valley')" align="center" />
281
+                    <el-table-column prop="chargePeakKwh" :label="$t('reportforms.Shoulder')" align="center" />
282
+                    <el-table-column prop="chargeShoulderKwh" :label="$t('reportforms.Shoulder')" align="center" />
283
+                    <el-table-column prop="chargeValleyKwh" :label="$t('reportforms.Shoulder')" align="center" />
284
+                    <el-table-column prop="chargeKwh" :label="$t('reportforms.Total')" align="center" />
268 285
                   </el-table-column>
269 286
                   <el-table-column label="放电量(kWh)" align="center">
270
-                    <el-table-column prop="dischargeSharpKwh" label="尖" align="center" />
271
-                    <el-table-column prop="dischargePeakKwh" label="峰" align="center" />
272
-                    <el-table-column prop="dischargeShoulderKwh" label="平" align="center" />
273
-                    <el-table-column prop="dischargeValleyKwh" label="谷" align="center" />
274
-                    <el-table-column prop="dischargeKwh" label="总" align="center" />
287
+                    <el-table-column prop="dischargeSharpKwh" :label="$t('reportforms.Valley')" align="center" />
288
+                    <el-table-column prop="dischargePeakKwh" :label="$t('reportforms.Shoulder')" align="center" />
289
+                    <el-table-column prop="dischargeShoulderKwh" :label="$t('reportforms.Shoulder')" align="center" />
290
+                    <el-table-column prop="dischargeValleyKwh" :label="$t('reportforms.Shoulder')" align="center" />
291
+                    <el-table-column prop="dischargeKwh" :label="$t('reportforms.Total')" align="center" />
292
+                  </el-table-column>
293
+
294
+                  <el-table-column prop="ymdHour" label="时间" width="150" align="center">
295
+                    <template #default="scope">
296
+                      {{ scope.row.ymdHour }}
297
+                    </template>
275 298
                   </el-table-column>
276 299
                 </el-table>
277 300
               </div>
278 301
             </div>
279
-            <div class="tabpane_data">原始数据</div>
302
+            <div class="tabpane_data">{{ $t("reportforms.rawdata") }}</div>
280 303
             <div class="tabpane">
281
-              <div :class="rawdataid == 1 ? 'tabpane_22' : 'tabpane_11'" @click="onrawdata(1)">当日数据</div>
282
-              <div :class="rawdataid == 2 ? 'tabpane_22' : 'tabpane_11'" @click="onrawdata(2)">积累数据</div>
304
+              <div :class="rawdataid == 1 ? 'tabpane_22' : 'tabpane_11'" @click="onrawdata(1)">
305
+                {{ $t("reportforms.Dailydata") }}
306
+              </div>
307
+              <div :class="rawdataid == 2 ? 'tabpane_22' : 'tabpane_11'" @click="onrawdata(2)">
308
+                {{ $t("reportforms.Accumulatedata") }}
309
+              </div>
283 310
             </div>
284 311
             <div class="gcurve_title">
285 312
               <div class="gcurve_tip"></div>
286
-              <div>尖</div>
313
+              <div>{{ $t("reportforms.Peak") }}</div>
287 314
               <div class="gcurve_peak"></div>
288
-              <div></div>
315
+              <div>{{ $t("reportforms.Shoulder") }}</div>
289 316
               <div class="gcurve_flat"></div>
290
-              <div></div>
317
+              <div>{{ $t("reportforms.Offpeak") }}</div>
291 318
               <div class="gcurve_valley"></div>
292
-              <div></div>
319
+              <div>{{ $t("reportforms.Valley") }}</div>
293 320
             </div>
294 321
             <div class="gcurve_chart">
295 322
               <div class="trendchartchart" ref="rawdatachart"></div>
@@ -307,6 +334,15 @@
307 334
                   </template>
308 335
                 </el-table-column>
309 336
               </template>
337
+              <!-- <el-table-column prop="ymdHour" label="数据质量状态" width="150" align="center">
338
+                <template #default="scope">
339
+               
340
+                  <div v-if="scope.row.andTime != '合计'">
341
+                    <div class="abnormal" v-if="scope.row.chargeTotal - scope.row.dischargeTotal > 200">充放数据有异</div>
342
+                    <div class="normal" v-else-if="scope.row.chargeTotal - scope.row.dischargeTotal < 200">充电数据正常</div>
343
+                  </div>
344
+                </template>
345
+              </el-table-column> -->
310 346
 
311 347
               <!-- <el-table-column label="日期" width="150" align="center">
312 348
                 <template #default="scope">
@@ -337,8 +373,8 @@
337 373
     </el-card>
338 374
   </div>
339 375
 </template>
340
-<!--    
341
-  
376
+<!--   
377
+
342 378
  -->
343 379
 <script setup lang="ts">
344 380
 import { onMounted, Ref, ref } from "vue";
@@ -359,7 +395,8 @@ import {
359 395
   Summaryexportyear,
360 396
   betweenbiaoExcel,
361 397
   betweenyearMonthExcel,
362
-  betweenyearExcel
398
+  betweenyearExcel,
399
+  selectemssytemNameURL
363 400
 } from "@/api/home/Multisite";
364 401
 import { useAuthButtons } from "@/hooks/useAuthButtons";
365 402
 const { BUTTONS } = useAuthButtons();
@@ -518,13 +555,6 @@ const singlecolumnList = ref([
518 555
       }
519 556
     ]
520 557
   }
521
-  // ,
522
-  // {
523
-  //   prop: "overallEfficiency",
524
-  //   label: "综合效率(%)",
525
-  //   ifcolumn: true,
526
-  //   children: null
527
-  // }
528 558
 ]);
529 559
 const currentDate = ref();
530 560
 const activeName = ref("站点汇总");
@@ -1127,6 +1157,23 @@ const poststationstationName = async () => {
1127 1157
   getemsSystemsingleStation();
1128 1158
   getstationsystem();
1129 1159
 };
1160
+// 获取电站下的设备数
1161
+const pageable = ref({
1162
+  pn: 1,
1163
+  ps: 10,
1164
+  total: 0
1165
+});
1166
+const gettableData = ref();
1167
+const getplatformuserlist = async () => {
1168
+  let obj = {
1169
+    powerId: Singlevalue.value, //查询电站id
1170
+    pn: pageable.value.pn,
1171
+    ps: pageable.value.ps
1172
+  };
1173
+  const { data } = await selectemssytemNameURL(obj);
1174
+  gettableData.value = data;
1175
+  pageable.value.total = gettableData.value.total;
1176
+};
1130 1177
 const postemsDevice = async (value: any) => {
1131 1178
   console.log(value);
1132 1179
 };
@@ -1153,6 +1200,7 @@ const starttime: Ref<any> = ref("");
1153 1200
 // 查询-文件夹
1154 1201
 const onselectsite = async () => {
1155 1202
   onreportformsid(reportformsindex.value);
1203
+  getplatformuserlist();
1156 1204
 };
1157 1205
 // 重置
1158 1206
 const onselectreset = async () => {

+ 4
- 2
src/views/station/index.scss View File

@@ -170,8 +170,10 @@
170 170
   color: gray;
171 171
 }
172 172
 .topcard_Location {
173
-  display: flex;
174
-  align-items: center;
173
+  width: 30%; /* 需要设置一个宽度 */
174
+  overflow: hidden;
175
+  text-overflow: ellipsis;
176
+  white-space: nowrap;
175 177
 }
176 178
 .topcard_div1:hover .content {
177 179
   transform: scale(1.1); /* 鼠标悬浮时放大 */

+ 54
- 41
src/views/station/index.vue View File

@@ -2,28 +2,31 @@
2 2
   <div>
3 3
     <div>
4 4
       <div class="title">
5
-        多站卡片
5
+        {{ $t("station.SiteCard") }}
6 6
         <div class="title_time">{{ currentDate }}</div>
7 7
       </div>
8 8
       <el-card>
9 9
         <div class="search">
10 10
           <div class="search_choice">
11 11
             <div :class="searchtype == '' ? 'search_choice2' : 'search_choice1'" @click.stop="searchwhole('')">
12
-              全部({{ postmultinfo.stationPicArray.totalCnt }})
12
+              {{ $t("station.All") }}
13
+              ({{ postmultinfo.stationPicArray.totalCnt }})
13 14
             </div>
14 15
             <div :class="searchtype == '1' ? 'search_choice2' : 'search_choice1'" @click.stop="searchwhole('1')">
15
-              在线({{ postmultinfo.stationPicArray.onlineCnt }})
16
+              {{ $t("station.Online") }}
17
+              ({{ postmultinfo.stationPicArray.onlineCnt }})
16 18
             </div>
17 19
             <div :class="searchtype == '0' ? 'search_choice2' : 'search_choice1'" @click.stop="searchwhole('0')">
18
-              离线({{ postmultinfo.stationPicArray.offlineCnt }})
20
+              {{ $t("station.Offline") }}
21
+              ({{ postmultinfo.stationPicArray.offlineCnt }})
19 22
             </div>
20 23
           </div>
21 24
           <div class="search_right">
22 25
             <div class="search_right" v-if="!foldtype" @click.stop="foldopen">
23
-              <el-icon style="padding-top: 2px; margin-right: 8px"><ArrowDown /></el-icon>打开
26
+              <el-icon style="padding-top: 2px; margin-right: 8px"><ArrowDown /></el-icon>{{ $t("station.Expand") }}
24 27
             </div>
25 28
             <div class="search_right" v-if="foldtype" @click.stop="foldopen">
26
-              <el-icon style="margin-top: 2px; margin-right: 8px"><ArrowUp /></el-icon>收起
29
+              <el-icon style="margin-top: 2px; margin-right: 8px"><ArrowUp /></el-icon>{{ $t("station.Collapse") }}
27 30
             </div>
28 31
           </div>
29 32
         </div>
@@ -39,8 +42,8 @@
39 42
               style="width: 360px; margin-right: 20px"
40 43
             />
41 44
 
42
-            <el-button type="primary" size="large" color="#0052d9" @click="query(0)">查询</el-button>
43
-            <el-button size="large" @click="query(1)">重置</el-button>
45
+            <el-button type="primary" size="large" color="#0052d9" @click="query(0)">{{ $t("station.Query") }}</el-button>
46
+            <el-button size="large" @click="query(1)">{{ $t("station.Reset") }}</el-button>
44 47
           </div>
45 48
           <div>
46 49
             <el-popover placement="bottom-start" :width="400" :visible="visible">
@@ -48,7 +51,7 @@
48 51
                 <el-input
49 52
                   v-model="keyword"
50 53
                   style="width: 400px"
51
-                  placeholder="搜索电站名称/地址"
54
+                  :placeholder="$t('station.SearchAddress')"
52 55
                   size="large"
53 56
                   clearable
54 57
                   suffix-icon="Search"
@@ -58,9 +61,9 @@
58 61
                 >
59 62
                 </el-input>
60 63
               </template>
61
-              <div class="popover_name" @click="onCategory(0)">全部:{{ keyword }}</div>
62
-              <div class="popover_name" @click="onCategory(1)">电站名称:{{ keyword }}</div>
63
-              <div class="popover_name" @click="onCategory(2)">电站地址:{{ keyword }}</div>
64
+              <!-- <div class="popover_name" @click="onCategory(0)">全部:{{ keyword }}</div> -->
65
+              <div class="popover_name" @click="onCategory(1)">{{ $t("station.PlantName") }}:{{ keyword }}</div>
66
+              <!-- <div class="popover_name" @click="onCategory(2)">电站地址:{{ keyword }}</div> -->
64 67
             </el-popover>
65 68
           </div>
66 69
         </div>
@@ -73,7 +76,7 @@
73 76
         >
74 77
           <div>
75 78
             <img
76
-              @click.stop="onJump"
79
+              @click.stop="onJump(item.powerId)"
77 80
               class="topcard_img"
78 81
               :src="item.absoluteStationPicUrl"
79 82
               alt=""
@@ -83,18 +86,18 @@
83 86
 
84 87
             <div v-if="item.onlineStatus == 1" class="topcard_online">
85 88
               <div class="topcard_online1"></div>
86
-              在线
89
+              {{ $t("station.Online") }}
87 90
             </div>
88 91
             <div v-else class="topcard_online">
89 92
               <div class="topcard_online2"></div>
90
-              离线
93
+              {{ $t("station.Offline") }}
91 94
             </div>
92 95
             <div class="topcard_zhong">
93 96
               <el-card>
94 97
                 <div class="el_card">
95 98
                   <div>
96 99
                     <div class="el_cardname">{{ item.installedCap }} <span class="el_cardunit">kWh</span></div>
97
-                    <div class="topcard_title">装机容量</div>
100
+                    <div class="topcard_title">{{ $t("station.InstalledCapacity") }}</div>
98 101
                   </div>
99 102
                   <!-- <div>
100 103
                     <div class="el_cardname">{{ item.installedCap }} <span class="el_cardunit">台/套</span></div>
@@ -102,7 +105,7 @@
102 105
                   </div> -->
103 106
                   <div>
104 107
                     <div class="el_cardname">{{ item.installedPower }} <span class="el_cardunit">kW</span></div>
105
-                    <div class="topcard_title">装机功率</div>
108
+                    <div class="topcard_title">{{ $t("station.RatedPower") }}</div>
106 109
                   </div>
107 110
                 </div>
108 111
               </el-card>
@@ -115,86 +118,90 @@
115 118
                   <i class="iconfont iconfontfont" @click="details(item)">&#xe61b;</i>
116 119
                 </div>
117 120
                 <div class="topcard_bottom2">
118
-                  <div class="topcard_title">投运时间:</div>
121
+                  <div class="topcard_title">{{ $t("station.CommissioningDate") }}:</div>
119 122
                   <div>{{ item.operationDate }}</div>
120 123
                 </div>
121 124
                 <div class="topcard_bottom3">
122
-                  <div class="topcard_title">电站地址:</div>
123
-
125
+                  <div class="topcard_title">{{ $t("station.PlantAddress") }}:</div>
124 126
                   <div class="topcard_Location">
125
-                    <el-icon><Location /></el-icon>&nbsp;{{ item.province }}{{ item.city }}{{ item.county }}
127
+                    &nbsp;{{ item.detailedaddress }}
128
+                    <!-- <el-icon><Location /></el-icon> -->
126 129
                   </div>
127 130
                 </div>
128 131
               </div>
129 132
               <!-- </div> -->
130 133
             </el-card>
131
-            <div v-if="isHovered == index" class="overlay"><i class="iconfont">&#xe62d;</i>进入电站</div>
134
+            <div v-if="isHovered == index" class="overlay"><i class="iconfont">&#xe62d;</i>{{ $t("station.EnterPlant") }}</div>
132 135
           </div>
133 136
         </el-card>
134 137
       </div>
135
-      <el-dialog v-model="dialogVisible" title="查看电站" width="800" :before-close="handleClose">
138
+      <el-dialog v-model="dialogVisible" :title="$t('station.ViewPlant')" width="800" :before-close="handleClose">
136 139
         <div class="dialog">
137
-          <div :class="informationtype == 1 ? 'information' : 'more'" @click="oninformation">基础信息</div>
138
-          <div :class="informationtype == 2 ? 'information' : 'more'" @click="onmoreinformation">更多信息</div>
140
+          <div :class="informationtype == 1 ? 'information' : 'more'" @click="oninformation">
141
+            {{ $t("station.BasicInformation") }}
142
+          </div>
143
+          <div :class="informationtype == 2 ? 'information' : 'more'" @click="onmoreinformation">
144
+            {{ $t("station.MoreDetails") }}
145
+          </div>
139 146
         </div>
140 147
         <div v-if="informationtype == 1">
141 148
           <div class="more_img">
142
-            <div class="more_name">电站图片:</div>
149
+            <div class="more_name">{{ $t("station.PlantPhotos") }}:</div>
143 150
             <img class="dialogimg" :src="carditem.absoluteStationPicUrl" alt="" />
144 151
           </div>
145 152
           <div class="dialog_title">
146
-            <div class="more_name">电站名称:</div>
153
+            <div class="more_name">{{ $t("station.PlantName") }}:</div>
147 154
             <div class="more_theme">{{ carditem.stationName }}</div>
148 155
           </div>
149 156
           <div class="dialog_title">
150
-            <div class="more_name">装机功率:</div>
157
+            <div class="more_name">{{ $t("station.RatedPower") }}:</div>
151 158
             <div class="more_theme">{{ carditem.installedPower }}MW</div>
152 159
           </div>
153 160
           <div class="dialog_title">
154
-            <div class="more_name">装机容量:</div>
161
+            <div class="more_name">{{ $t("station.InstalledCapacity") }}:</div>
155 162
             <div class="more_theme">{{ carditem.installedCap }}kWh</div>
156 163
           </div>
157 164
           <div class="dialog_title">
158
-            <div class="more_name">电站地址:</div>
165
+            <div class="more_name">{{ $t("station.PlantAddress") }}:</div>
159 166
             <div class="more_theme">{{ carditem.province }}</div>
160 167
           </div>
161 168
           <div class="dialog_title">
162
-            <div class="more_name">投运时间:</div>
169
+            <div class="more_name">{{ $t("station.CommissioningDate") }}:</div>
163 170
             <div class="more_theme">{{ carditem.operationDate }}</div>
164 171
           </div>
165 172
           <div class="dialog_title">
166
-            <div class="more_name">电站联系电话:</div>
173
+            <div class="more_name">{{ $t("station.ContactNumber") }}:</div>
167 174
             <div class="more_theme">-</div>
168 175
           </div>
169 176
         </div>
170 177
         <div v-if="informationtype == 2">
171 178
           <div class="dialog_title">
172
-            <div class="more_name">安装图片:</div>
179
+            <div class="more_name">{{ $t("station.InstallationPhotos") }}:</div>
173 180
             <div class="more_theme">-</div>
174 181
           </div>
175 182
           <div class="dialog_title">
176
-            <div class="more_name">并网点信息:</div>
183
+            <div class="more_name">{{ $t("station.GridConnectionInfo") }}:</div>
177 184
             <div class="more_theme">-</div>
178 185
           </div>
179 186
           <div class="dialog_title">
180
-            <div class="more_name">变压器信息:</div>
187
+            <div class="more_name">{{ $t("station.TransformerSpecifications") }}:</div>
181 188
             <div class="more_theme">-</div>
182 189
           </div>
183 190
           <div class="dialog_title">
184
-            <div class="more_name">站点变压器容量:</div>
191
+            <div class="more_name">{{ $t("station.TransformerCapacity") }}:</div>
185 192
             <div class="more_theme">-</div>
186 193
           </div>
187 194
           <div class="dialog_title">
188
-            <div class="more_name">安装人:</div>
195
+            <div class="more_name">{{ $t("station.Installer") }}:</div>
189 196
             <div class="more_theme">-</div>
190 197
           </div>
191 198
           <div class="dialog_title">
192
-            <div class="more_name">安装人联系号码:</div>
199
+            <div class="more_name">{{ $t("station.InstallerContact") }}:</div>
193 200
             <div class="more_theme">-</div>
194 201
           </div>
195 202
         </div>
196 203
         <div class="dialog_footer">
197
-          <el-button @click="dialogVisible = false" size="large">关闭</el-button>
204
+          <el-button @click="dialogVisible = false" size="large">{{ $t("station.Close") }}</el-button>
198 205
         </div>
199 206
       </el-dialog>
200 207
     </div>
@@ -441,8 +448,14 @@ const onchange = () => {
441 448
   postmultiStationpageinfo();
442 449
 };
443 450
 // 跳转页面
444
-const onJump = () => {
445
-  router.push("/overview/index");
451
+const onJump = (e: any) => {
452
+  console.log(e);
453
+  router.push({
454
+    path: "/overview/index",
455
+    query: {
456
+      powerId: e
457
+    }
458
+  });
446 459
 };
447 460
 const dialogVisible = ref(false);
448 461
 // 卡片详情对话框

+ 3
- 0
src/views/system/index.scss View File

@@ -506,3 +506,6 @@
506 506
   display: flex;
507 507
   align-items: center;
508 508
 }
509
+.Space_content1 {
510
+  width: 270px;
511
+}

+ 70
- 59
src/views/system/index.vue View File

@@ -4,7 +4,7 @@
4 4
       <el-select
5 5
         v-model="Singlevalue"
6 6
         collapse-tags
7
-        placeholder="选择电站"
7
+        :placeholder="$t('system.MoreDetails')"
8 8
         popper-class="custom-header"
9 9
         :max-collapse-tags="1"
10 10
         class="Space_content"
@@ -20,7 +20,7 @@
20 20
       <el-select
21 21
         v-model="emsDeviceId"
22 22
         collapse-tags
23
-        placeholder="选择编号"
23
+        :placeholder="$t('system.MoreDetails')"
24 24
         popper-class="custom-header"
25 25
         :max-collapse-tags="1"
26 26
         class="Space_content"
@@ -28,7 +28,7 @@
28 28
         @change="getstationrealtime"
29 29
       >
30 30
         <template #prefix>
31
-          {{ (emsDevice.find(s => s.id === emsDeviceId) || {}).id }}
31
+          {{ (emsDevice.find(s => s.id === emsDeviceId) || {}).emsDeviceId }}
32 32
         </template>
33 33
         <el-option v-for="item in emsDevice" :key="item.id" :label="item.emsDeviceId" :value="item.id" />
34 34
       </el-select>
@@ -36,11 +36,11 @@
36 36
         <div></div>
37 37
         <div class="Equipmenttpye" v-if="realtime.onlineStatus == 1">
38 38
           <div class="equipmentborder"></div>
39
-          在线
39
+          {{ $t("system.Online") }}
40 40
         </div>
41 41
         <div class="Equipmenttpyes" v-else>
42 42
           <div class="equipmentborderif"></div>
43
-          离线
43
+          {{ $t("system.Offline") }}
44 44
         </div>
45 45
       </div>
46 46
     </div>
@@ -50,44 +50,44 @@
50 50
           <el-card>
51 51
             <template #header>
52 52
               <div class="card-header">
53
-                <span>实时数据</span>
53
+                <span>{{ $t("system.RealData") }}</span>
54 54
               </div>
55 55
             </template>
56 56
             <div class="real_time">
57 57
               <div class="real_timediv">
58 58
                 <el-card>
59
-                  <div class="real_timename">今日充电量</div>
59
+                  <div class="real_timename">{{ $t("system.todayCharge") }}</div>
60 60
                   <div class="real_timeunit">{{ realtime.dayImportKwh }}<span class="real_timeunitcss"> kWh</span></div>
61 61
                 </el-card>
62 62
               </div>
63 63
               <div class="real_timediv">
64 64
                 <el-card>
65
-                  <div class="real_timename">今日放电量</div>
65
+                  <div class="real_timename">{{ $t("system.todayDischarge") }}</div>
66 66
                   <div class="real_timeunit">{{ realtime.dayExportKwh }} <span class="real_timeunitcss">kWh</span></div>
67 67
                 </el-card>
68 68
               </div>
69 69
               <div class="real_timediv">
70 70
                 <el-card>
71
-                  <div class="real_timename">累计充电量</div>
71
+                  <div class="real_timename">{{ $t("system.totalCharge") }}</div>
72 72
                   <div class="real_timeunit">{{ realtime.accumulativeImportKwh }} <span class="real_timeunitcss">kWh</span></div>
73 73
                 </el-card>
74 74
               </div>
75 75
               <div class="real_timediv">
76 76
                 <el-card>
77
-                  <div class="real_timename">累计放电量</div>
77
+                  <div class="real_timename">{{ $t("system.totalDischarge") }}</div>
78 78
                   <div class="real_timeunit">{{ realtime.accumulativeExportKwh }} <span class="real_timeunitcss">kWh</span></div>
79 79
                 </el-card>
80 80
               </div>
81 81
               <div class="real_timediv">
82 82
                 <el-card>
83
-                  <div class="real_timename">电池堆SOC</div>
83
+                  <div class="real_timename">{{ $t("system.batterySOC") }}</div>
84 84
                   <div class="real_timeunit">{{ realtime.soc }} <span class="real_timeunitcss">%</span></div>
85 85
                 </el-card>
86 86
               </div>
87 87
             </div>
88 88
             <div class="trend">
89 89
               <div class="trend_left">
90
-                <div class="trend_leftname">运行状态</div>
90
+                <div class="trend_leftname">{{ $t("system.operatingStatus") }}</div>
91 91
                 <div class="trend_leftline">
92 92
                   <img class="trend_imgdw" src="../../assets/images/dw.36d3b54f.png" alt="" />
93 93
                   <div class="trend_line1">
@@ -107,8 +107,11 @@
107 107
                 </div>
108 108
               </div>
109 109
               <div class="trend_right">
110
-                <div>功率趋势</div>
111
-                <div>最大充电功率:107.00kW最大放电功率:80.20 kW 最大负载功率:- kW</div>
110
+                <div>{{ $t("system.powerTrend") }}</div>
111
+                <div>
112
+                  {{ $t("system.maxChargePower") }}:107.00kW {{ $t("system.maxDischargePower") }}:80.20 kW
113
+                  {{ $t("system.peakLoadPower") }}:- kW
114
+                </div>
112 115
                 <div class="trend_chart" ref="trendchart"></div>
113 116
               </div>
114 117
             </div>
@@ -118,16 +121,16 @@
118 121
           <el-card>
119 122
             <template #header>
120 123
               <div class="card-header">
121
-                <span>告警状态</span>
124
+                <span>{{ $t("system.alarmStatus") }}</span>
122 125
               </div>
123 126
             </template>
124 127
             <div class="Boxdiv">
125 128
               <div class="Boxdiv_">
126 129
                 <div class="Boxdiv_left">
127
-                  <div class="Boxdiv_bottom">名称</div>
130
+                  <div class="Boxdiv_bottom">{{ $t("system.name") }}</div>
128 131
                 </div>
129 132
                 <div class="Boxdiv_right">
130
-                  <div class="Boxdiv_bottom">状态</div>
133
+                  <div class="Boxdiv_bottom">{{ $t("system.status") }}</div>
131 134
                 </div>
132 135
               </div>
133 136
               <div class="Boxdiv_" v-for="(item, index) in device" :key="index">
@@ -138,11 +141,11 @@
138 141
                   <div class="Boxdiv_bottom">
139 142
                     <div v-if="item.emsCommStatus == 0" class="equipment">
140 143
                       <!-- <div class="equipmentborderif"></div> -->
141
-                      停机
144
+                      {{ $t("system.shutdown") }}
142 145
                     </div>
143 146
                     <div v-else class="equipment">
144 147
                       <!-- <div class="equipmentborder"></div> -->
145
-                      运行
148
+                      {{ $t("system.running") }}
146 149
                     </div>
147 150
                   </div>
148 151
                 </div>
@@ -159,11 +162,17 @@
159 162
       <el-card>
160 163
         <template #header>
161 164
           <div class="card-header">
162
-            <div>实时运行</div>
165
+            <div>{{ $t("system.Operation") }}</div>
163 166
             <div class="grid_divright">
164
-              <div :class="timetype == 1 ? 'grid_divright_1' : 'grid_divright_2'" @click="recently(1)">实时</div>
165
-              <div :class="timetype == 7 ? 'grid_divright_1' : 'grid_divright_2'" @click="recently(7)">近7日</div>
166
-              <div :class="timetype == 31 ? 'grid_divright_1' : 'grid_divright_2'" @click="recently(31)">近31月</div>
167
+              <div :class="timetype == 1 ? 'grid_divright_1' : 'grid_divright_2'" @click="recently(1)">
168
+                {{ $t("system.live") }}
169
+              </div>
170
+              <div :class="timetype == 7 ? 'grid_divright_1' : 'grid_divright_2'" @click="recently(7)">
171
+                {{ $t("system.last7Days") }}
172
+              </div>
173
+              <div :class="timetype == 31 ? 'grid_divright_1' : 'grid_divright_2'" @click="recently(31)">
174
+                {{ $t("system.last31Days") }}
175
+              </div>
167 176
               <el-date-picker
168 177
                 v-model="value2"
169 178
                 type="datetimerange"
@@ -177,7 +186,7 @@
177 186
           </div>
178 187
         </template>
179 188
         <div class="realoperationdiv">
180
-          <div class="realoperationdiv1">数据类型</div>
189
+          <div class="realoperationdiv1">{{ $t("system.DataType") }}</div>
181 190
           <div class="realoperationdiv2">
182 191
             <div class="realopscreen1">
183 192
               <div class="realopscreen1_top">
@@ -191,12 +200,12 @@
191 200
                 </el-select>
192 201
               </div>
193 202
               <div class="realopscreen1_bottom">
194
-                <el-checkbox v-model="PCS" style="font-weight: 600" label="有功功率" size="large" />
203
+                <el-checkbox v-model="PCS" style="font-weight: 600" :label="$t('system.activePower')" size="large" />
195 204
               </div>
196 205
             </div>
197 206
             <div class="realopscreen1">
198 207
               <div class="realopscreen1_top">
199
-                <el-checkbox v-model="metertype" style="font-weight: 600" label="电表:" size="large" /><el-select
208
+                <el-checkbox v-model="metertype" style="font-weight: 600" :label="$t('system.Meter')" size="large" /><el-select
200 209
                   v-model="metervalue"
201 210
                   placeholder="请选择电表"
202 211
                   size="large"
@@ -206,17 +215,17 @@
206 215
                 </el-select>
207 216
               </div>
208 217
               <div class="realopscreen1_bottom">
209
-                <el-checkbox v-model="metertype" style="font-weight: 600" label="有功功率" size="large" />
218
+                <el-checkbox v-model="metertype" style="font-weight: 600" :label="$t('system.activePower')" size="large" />
210 219
               </div>
211 220
             </div>
212 221
             <div class="realopscreen1">
213 222
               <div class="realopscreen1_top">
214
-                <el-checkbox v-model="Battery" style="font-weight: 600" label="电池堆:" size="large" /><el-select
215
-                  v-model="Batteryvalue"
216
-                  placeholder="请选择电池堆"
223
+                <el-checkbox
224
+                  v-model="Battery"
225
+                  style="font-weight: 600"
226
+                  :label="$t('system.BatteryStack')"
217 227
                   size="large"
218
-                  style="width: 360px"
219
-                >
228
+                /><el-select v-model="Batteryvalue" placeholder="请选择电池堆" size="large" style="width: 360px">
220 229
                   <el-option
221 230
                     v-for="item in batteryCluster"
222 231
                     :key="item.deviceId"
@@ -227,22 +236,24 @@
227 236
               </div>
228 237
               <div class="realopscreen1_bottom">
229 238
                 <el-checkbox v-model="socvalue" style="font-weight: 600" label="soc" size="large" />
230
-                <el-checkbox v-model="maxvoltage" style="font-weight: 600" label="单体最高电压" size="large" />
231
-                <el-checkbox v-model="minvoltage" style="font-weight: 600" label="单体最低电压" size="large" />
239
+                <el-checkbox v-model="maxvoltage" style="font-weight: 600" :label="$t('system.MaxCellVoltage')" size="large" />
240
+                <el-checkbox v-model="minvoltage" style="font-weight: 600" :label="$t('system.MinCellVoltage')" size="large" />
232 241
               </div>
233 242
             </div>
234 243
           </div>
235
-          <el-button type="primary" size="large" color="#0052d9" @click="getpoststationdevice">查询</el-button>
244
+          <el-button type="primary" size="large" color="#0052d9" @click="getpoststationdevice">{{
245
+            $t("system.Query")
246
+          }}</el-button>
236 247
         </div>
237 248
         <div class="gcurve_title">
238 249
           <div class="gcurve_tip"></div>
239
-          <div></div>
250
+          <div>{{ $t("system.Peak") }}</div>
240 251
           <div class="gcurve_peak"></div>
241
-          <div></div>
252
+          <div>{{ $t("system.Shoulder") }}</div>
242 253
           <div class="gcurve_flat"></div>
243
-          <div></div>
254
+          <div>{{ $t("system.Offpeak") }}</div>
244 255
           <div class="gcurve_valley"></div>
245
-          <div></div>
256
+          <div>{{ $t("system.Valley") }}</div>
246 257
         </div>
247 258
         <div class="gcurve_chart" ref="operatingcurve"></div>
248 259
       </el-card>
@@ -251,47 +262,47 @@
251 262
       <el-card>
252 263
         <template #header>
253 264
           <div class="card-header">
254
-            <div>实时电量收益</div>
265
+            <div>{{ $t("system.LiveEnergyRevenue") }}</div>
255 266
           </div>
256 267
         </template>
257 268
         <div>
258
-          日期:
269
+          {{ $t("system.date") }}
259 270
           <el-date-picker
260 271
             v-model="pickervalue"
261 272
             type="date"
262
-            placeholder="选择时间"
273
+            :placeholder="$t('system.date')"
263 274
             size="large"
264 275
             clearable
265 276
             :disabled-date="pickerOptions"
266 277
             @change="pickerincome"
267 278
           />&ensp;&ensp;
268
-          <el-button type="primary" size="large" color="#0052d9" @click="gatrevenue">查询</el-button>
269
-          <el-button size="large" @click="onreset">重置</el-button>
279
+          <el-button type="primary" size="large" color="#0052d9" @click="gatrevenue">{{ $t("system.Query") }}</el-button>
280
+          <el-button size="large" @click="onreset">{{ $t("system.Reset") }}</el-button>
270 281
         </div>
271 282
         <div class="income_div">
272 283
           <div class="income_title">
273
-            <div class="income_title1">时间</div>
284
+            <div class="income_title1">{{ $t("system.time") }}</div>
274 285
             <div class="income_title2">
275
-              <div class="income_title2_">充电量(kWh)</div>
286
+              <div class="income_title2_">{{ $t("system.charge") }}</div>
276 287
               <div class="income_title2_1">
277
-                <div class="income_title2_11"></div>
278
-                <div class="income_title2_11"></div>
279
-                <div class="income_title2_11"></div>
280
-                <div class="income_title2_11"></div>
281
-                <div class="income_title2_11"></div>
288
+                <div class="income_title2_11">{{ $t("system.Peak") }}</div>
289
+                <div class="income_title2_11">{{ $t("system.Shoulder") }}</div>
290
+                <div class="income_title2_11">{{ $t("system.Offpeak") }}</div>
291
+                <div class="income_title2_11">{{ $t("system.Valley") }}</div>
292
+                <div class="income_title2_11">{{ $t("system.Total") }}</div>
282 293
               </div>
283 294
             </div>
284 295
             <div class="income_title3">
285
-              <div class="income_title2_">放电量(kWh)</div>
296
+              <div class="income_title2_">{{ $t("system.discharge") }}</div>
286 297
               <div class="income_title2_1">
287
-                <div class="income_title2_11"></div>
288
-                <div class="income_title2_11"></div>
289
-                <div class="income_title2_11"></div>
290
-                <div class="income_title2_11"></div>
291
-                <div class="income_title2_11"></div>
298
+                <div class="income_title2_11">{{ $t("system.Peak") }}</div>
299
+                <div class="income_title2_11">{{ $t("system.Shoulder") }}</div>
300
+                <div class="income_title2_11">{{ $t("system.Offpeak") }}</div>
301
+                <div class="income_title2_11">{{ $t("system.Valley") }}</div>
302
+                <div class="income_title2_11">{{ $t("system.Total") }}</div>
292 303
               </div>
293 304
             </div>
294
-            <div class="income_title4">当前收益(元)</div>
305
+            <div class="income_title4">{{ $t("system.revenue") }}</div>
295 306
           </div>
296 307
 
297 308
           <div class="income_ul" v-for="(item, index) in incomedata.list" :key="index">
@@ -317,7 +328,7 @@
317 328
             <div class="income_ul_right">{{ item.profit.toFixed(2) }}</div>
318 329
           </div>
319 330
           <div class="income_ul">
320
-            <div class="income_ul_left">总计</div>
331
+            <div class="income_ul_left">{{ $t("system.Total") }}</div>
321 332
             <div class="income_li1">
322 333
               <div class="income_title2_1">
323 334
                 <div class="income_title2_11">{{ incomedata.total.chargeSharpKwh.toFixed(2) }}</div>

+ 1
- 1
src/views/user/index.scss View File

@@ -16,7 +16,7 @@
16 16
 .screen_view1 {
17 17
   display: flex;
18 18
   align-items: center;
19
-  width: 30%;
19
+  width: 18.5%;
20 20
 }
21 21
 .cardbottom {
22 22
   margin-top: 20px;

+ 3
- 3
src/views/user/index.vue View File

@@ -9,17 +9,17 @@
9 9
     <div class="card">
10 10
       <div class="screen">
11 11
         <div class="screen_view">
12
-          登录账号&ensp;&ensp;<el-input v-model="loginName" style="width: 70%" size="large" placeholder="输入登录账号" />
12
+          登录账号&ensp;&ensp;<el-input v-model="loginName" style="width: 50%" size="large" placeholder="输入登录账号" />
13 13
         </div>
14 14
         <div class="screen_view">
15
-          用户状态&ensp;&ensp;<el-select v-model="status" placeholder="请选择用户状态" size="large" style="width: 70%">
15
+          用户状态&ensp;&ensp;<el-select v-model="status" placeholder="请选择用户状态" size="large" style="width: 50%">
16 16
             <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
17 17
           </el-select>
18 18
         </div>
19 19
         <div class="screen_view">
20 20
           手机号码&ensp;&ensp;<el-input
21 21
             v-model="phonenumber"
22
-            style="width: 70%"
22
+            style="width: 50%"
23 23
             size="large"
24 24
             :rules="[
25 25
               { required: true, message: '请输入手机号码', trigger: 'blur' },

Loading…
Cancel
Save