瀏覽代碼

常规上传

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 2 月之前
父節點
當前提交
f102aff59b

+ 439 - 353
src/router/index.js

@@ -97,123 +97,123 @@ export const asyncRoutes = [
         },
         children: [
             //对标管理
-            {
-                path: "benchmarkingManagement",
-                redirect: "benchmarkingManagement/performanceRankingList",
-                component: () =>
-                    import("@/views/economicsOperation/benchmarkingManagement"),
-                name: "benchmarkingManagement",
-                meta: {
-                    title: "对标管理",
-                    icon: "svg-dbgl",
-                    permissions: ["jn_dbgl"],
-                },
-                children: [
-                    {
-                        path: "performanceRankingList",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/benchmarkingManagement/performanceRankingList/index.vue"
-                            ),
-                        name: "performanceRankingList",
-                        meta: {
-                            title: "绩效榜",
-                            icon: "",
-                            permissions: ["jn_dbgl_jxb"],
-                        },
-                    },
-                    {
-                        path: "decision1Mx", //风机绩效榜明细
-                        name: "decision1Mx",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/benchmarkingManagement/performanceRankingList/decision1Mx.vue"
-                            ),
-                        meta: {
-                            title: "风机绩效榜明细",
-                            icon: "",
-                            permissions: ["jn_dbgl_jxb"],
-                        },
-                    },
-                    {
-                        path: "loseRate",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/benchmarkingManagement/loseRate/index.vue"
-                            ),
-                        name: "loseRate",
-                        meta: {
-                            title: "五项损失率",
-                            icon: "",
-                            permissions: ["jn_dbgl_wxssl"],
-                        },
-                    },
-                    {
-                        path: "siteBenchmarking",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/benchmarkingManagement/siteBenchmarking"
-                            ),
-                        name: "siteBenchmarking",
-                        meta: {
-                            title: "场内对标",
-                            icon: "",
-                            permissions: ["jn_dbgl_cndb"],
-                        },
-                    },
-                    {
-                        path: "intervalBenchmarking",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/benchmarkingManagement/intervalBenchmarking"
-                            ),
-                        name: "intervalBenchmarking",
-                        meta: {
-                            title: "场际对标",
-                            icon: "",
-                            permissions: ["jn_dbgl_cjdb"],
-                        },
-                    },
-                    {
-                        path: "valueBenchmarking",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/benchmarkingManagement/valueBenchmarking"
-                            ),
-                        name: "valueBenchmarking",
-                        meta: {
-                            title: "值际对标",
-                            icon: "",
-                        },
-                    },
-                    {
-                        path: "projectBenchmarking",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/benchmarkingManagement/projectBenchmarking"
-                            ),
-                        name: "projectBenchmarking",
-                        meta: {
-                            title: "项目对标",
-                            icon: "",
-                            permissions: ["jn_dbgl_xmdb"],
-                        },
-                    },
-                    {
-                        path: "wiringBenchmarking",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/benchmarkingManagement/wiringBenchmarking"
-                            ),
-                        name: "wiringBenchmarking",
-                        meta: {
-                            title: "线路对标",
-                            icon: "",
-                            permissions: ["jn_dbgl_xldb"],
-                        },
-                    },
-                ],
-            },
+            // {
+            //     path: "benchmarkingManagement",
+            //     redirect: "benchmarkingManagement/performanceRankingList",
+            //     component: () =>
+            //         import("@/views/economicsOperation/benchmarkingManagement"),
+            //     name: "benchmarkingManagement",
+            //     meta: {
+            //         title: "对标管理",
+            //         icon: "svg-dbgl",
+            //         permissions: ["jn_dbgl"],
+            //     },
+            //     children: [
+            //         {
+            //             path: "performanceRankingList",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/benchmarkingManagement/performanceRankingList/index.vue"
+            //                 ),
+            //             name: "performanceRankingList",
+            //             meta: {
+            //                 title: "绩效榜",
+            //                 icon: "",
+            //                 permissions: ["jn_dbgl_jxb"],
+            //             },
+            //         },
+            //         {
+            //             path: "decision1Mx", //风机绩效榜明细
+            //             name: "decision1Mx",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/benchmarkingManagement/performanceRankingList/decision1Mx.vue"
+            //                 ),
+            //             meta: {
+            //                 title: "风机绩效榜明细",
+            //                 icon: "",
+            //                 permissions: ["jn_dbgl_jxb"],
+            //             },
+            //         },
+            //         {
+            //             path: "loseRate",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/benchmarkingManagement/loseRate/index.vue"
+            //                 ),
+            //             name: "loseRate",
+            //             meta: {
+            //                 title: "五项损失率",
+            //                 icon: "",
+            //                 permissions: ["jn_dbgl_wxssl"],
+            //             },
+            //         },
+            //         {
+            //             path: "siteBenchmarking",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/benchmarkingManagement/siteBenchmarking"
+            //                 ),
+            //             name: "siteBenchmarking",
+            //             meta: {
+            //                 title: "场内对标",
+            //                 icon: "",
+            //                 permissions: ["jn_dbgl_cndb"],
+            //             },
+            //         },
+            //         {
+            //             path: "intervalBenchmarking",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/benchmarkingManagement/intervalBenchmarking"
+            //                 ),
+            //             name: "intervalBenchmarking",
+            //             meta: {
+            //                 title: "场际对标",
+            //                 icon: "",
+            //                 permissions: ["jn_dbgl_cjdb"],
+            //             },
+            //         },
+            //         {
+            //             path: "valueBenchmarking",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/benchmarkingManagement/valueBenchmarking"
+            //                 ),
+            //             name: "valueBenchmarking",
+            //             meta: {
+            //                 title: "值际对标",
+            //                 icon: "",
+            //             },
+            //         },
+            //         {
+            //             path: "projectBenchmarking",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/benchmarkingManagement/projectBenchmarking"
+            //                 ),
+            //             name: "projectBenchmarking",
+            //             meta: {
+            //                 title: "项目对标",
+            //                 icon: "",
+            //                 permissions: ["jn_dbgl_xmdb"],
+            //             },
+            //         },
+            //         {
+            //             path: "wiringBenchmarking",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/benchmarkingManagement/wiringBenchmarking"
+            //                 ),
+            //             name: "wiringBenchmarking",
+            //             meta: {
+            //                 title: "线路对标",
+            //                 icon: "",
+            //                 permissions: ["jn_dbgl_xldb"],
+            //             },
+            //         },
+            //     ],
+            // },
             //性能分析(山西版)
             {
                 path: "windAnalyse",
@@ -286,19 +286,21 @@ export const asyncRoutes = [
                         icon: "",
                         permissions: ["jn_fdfx_jhfdl"],
                     },
-                }, {
-                    path: "equipmentDifferences",
-                    component: () =>
-                        import(
-                            "@/views/sxReport/czsbcyl.vue"
-                        ),
-                    name: "equipmentDifferences",
-                    meta: {
-                        title: "场站设备差异率",
-                        icon: "",
-                        permissions: ["jn_fdfx_czsbcyl"],
-                    },
-                },{
+                },
+                // {
+                //     path: "equipmentDifferences",
+                //     component: () =>
+                //         import(
+                //             "@/views/sxReport/czsbcyl.vue"
+                //         ),
+                //     name: "equipmentDifferences",
+                //     meta: {
+                //         title: "场站设备差异率",
+                //         icon: "",
+                //         permissions: ["jn_fdfx_czsbcyl"],
+                //     },
+                // },
+                {
                     path: "powerPlan",
                     component: () =>
                         import(
@@ -310,7 +312,7 @@ export const asyncRoutes = [
                         icon: "",
                         permissions: ["jn_fdfx_jhfdl"],
                     },
-                },{
+                }, {
                     path: "performanceAnalysis",
                     component: () =>
                         import(
@@ -322,7 +324,7 @@ export const asyncRoutes = [
                         icon: "",
                         permissions: ["jn_fdfx_fjxnfx"],
                     },
-                },{
+                }, {
                     path: "runningAnalysis",
                     component: () =>
                         import(
@@ -334,7 +336,7 @@ export const asyncRoutes = [
                         icon: "",
                         permissions: ["jn_fdfx_fjyxfx"],
                     },
-                },{
+                }, {
                     path: "stopAnalysis",
                     component: () =>
                         import(
@@ -346,7 +348,7 @@ export const asyncRoutes = [
                         icon: "",
                         permissions: ["jn_fdfx_tjsjfx"],
                     },
-                },{
+                }, {
                     path: "freeAnalysis",
                     component: () =>
                         import(
@@ -360,240 +362,324 @@ export const asyncRoutes = [
                     },
                 }],
             },
-            //性能分析(旧版)
+            //综合指标排行(山西版)
             {
-                path: "windAnalyse_old",
-                component: () => import("@/views/economicsOperation/windAnalyse"),
-                name: "windAnalyse_old",
+                path: "indexRanking",
+                component: () => import("@/views/indexRanking"),
+                name: "indexRanking",
                 meta: {
-                    title: "性能分析(旧版)",
+                    title: "综合指标排行",
                     icon: "svg-fdfx",
-                    permissions: ["jn_fdfx"],
-                },
-                children: [
-                    {
-                        path: "stateTransition",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/windAnalyse/stateTransition/index.vue"
-                            ),
-                        name: "stateTransition",
-                        meta: {
-                            title: "状态时间分析",
-                            icon: "",
-                            permissions: ["jn_fdfx_ztzhfx"],
-                        },
-                    },
-                    {
-                        path: "timeTransition",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/windAnalyse/timeTransition/index.vue"
-                            ),
-                        name: "timeTransition",
-                        meta: {
-                            title: "状态转换分析",
-                            icon: "",
-                            permissions: ["jn_fdfx_ztsjfx"],
-                        },
-                    },
-                    {
-                        path: "powerAnalyse",
-                        component: () =>
-                            import("@/views/economicsOperation/windAnalyse/powerCurve"),
-                        name: "PowerCurve",
-                        meta: {
-                            title: "功率曲线拟合",
-                            icon: "",
-                            permissions: ["jn_fdfx_glqxnh"],
-                        },
-                    },
-                    {
-                        path: "powerSearch",
-                        component: () =>
-                            import("@/views/economicsOperation/windAnalyse/powerSearch"),
-                        name: "PowerSearch",
-                        meta: {
-                            title: "功率曲线查询",
-                            icon: "",
-                            permissions: ["jn_fdfx_glqxcx"],
-                        },
-                    },
-                    {
-                        path: "qxpclfx",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/windAnalyse/qxpclfx/index.vue"
-                            ),
-                        name: "Qxpclfx",
-                        meta: {
-                            title: "曲线偏差率分析",
-                            icon: "",
-                            permissions: ["jn_fdfx_qxpclfx"],
-                        },
-                    },
-                    {
-                        path: "qxqjpcl",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/windAnalyse/qxqjpcl/index.vue"
-                            ),
-                        name: "Qxqjpcl",
-                        meta: {
-                            title: "曲线区间偏差率分析",
-                            icon: "",
-                            permissions: ["jn_fdfx_qxpclfx"],
-                        },
-                    },
-                    {
-                        path: "singleWindAnasyle",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/windAnalyse/singleWindAnasyle/index.vue"
-                            ),
-                        name: "SingleWindAnasyle",
-                        meta: {
-                            title: "单机性能分析",
-                            icon: "",
-                            permissions: ["jn_fdfx_djxnfx"],
-                        },
-                    },
-                    {
-                        path: "monthlyAnalysis",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/windAnalyse/monthlyAnalysis/index.vue"
-                            ),
-                        name: "MonthlyAnalysis",
-                        meta: {
-                            title: "单机月度分析",
-                            icon: "",
-                            permissions: ["jn_fdfx_djydfx"],
-                        },
-                    },
-                    {
-                        path: "performanceAssess",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/windAnalyse/performanceAssess/index.vue"
-                            ),
-                        name: "PerformanceAssess",
-                        meta: {
-                            title: "性能等级评估",
-                            icon: "",
-                            permissions: ["jn_fdfx_xndjpg"],
-                        },
-                    },
-                ],
-            },
-            //管控效率
-            {
-                path: "efficiency",
-                redirect: "efficiency/restorationEfficiency",
-                component: () => import("@/views/economicsOperation/efficiency"),
-                name: "efficiency",
-                meta: {
-                    title: "指标统计分析",
-                    icon: "svg-dimension-new",
-                    permissions: ["jn_slgl"],
+                    permissions: ["jn_zbph"],
                 },
-                children: [
-                    {
-                        path: "restorationEfficiency",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/efficiency/restorationEfficiency"
-                            ),
-                        name: "restorationEfficiency",
-                        meta: {
-                            title: "复位及时率",
-                            icon: "",
-                            permissions: ["jn_slgl_fwjsl"],
-                        },
+                children: [{
+                    path: "fittingRanking",
+                    component: () =>
+                        import(
+                            "@/views/indexRanking/nhydph/index.vue"
+                        ),
+                    name: "fittingRanking",
+                    meta: {
+                        title: "拟合优度排行",
+                        icon: "",
+                        permissions: ["jn_fdfx_nhydph"],
                     },
-                ],
-            },
-            //指标排行
-            {
-                path: "comprehensiveControl",
-                redirect: "comprehensiveControl/running",
-                component: () =>
-                    import("@/views/economicsOperation/comprehensiveControl"),
-                name: "comprehensiveControl",
-                meta: {
-                    title: "指标排行",
-                    icon: "svg-zhgk",
-                    permissions: ["jn_zhgk"],
-                },
-                children: [
-                    {
-                        path: "running",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/comprehensiveControl/runningKPI/index.vue"
-                            ),
-                        name: "running",
-                        meta: {
-                            title: "运行KPI",
-                            icon: "",
-                            permissions: ["jn_zhgk_yx"],
-                        },
+                }, {
+                    path: "powerRanking",
+                    component: () =>
+                        import(
+                            "@/views/indexRanking/zfdlph/index.vue"
+                        ),
+                    name: "powerRanking",
+                    meta: {
+                        title: "总发电量排行",
+                        icon: "",
+                        permissions: ["jn_fdfx_zfdlph"],
                     },
-                    {
-                        path: "maintenance",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/comprehensiveControl/maintenanceKPI/index.vue"
-                            ),
-                        name: "maintenance",
-                        meta: {
-                            title: "检修KPI",
-                            icon: "",
-                            permissions: ["jn_zhgk_jx"],
-                        },
+                }, {
+                    path: "lossRanking",
+                    component: () =>
+                        import(
+                            "@/views/indexRanking/sslph/index.vue"
+                        ),
+                    name: "lossRanking",
+                    meta: {
+                        title: "损失率排行榜",
+                        icon: "",
+                        permissions: ["jn_fdfx_sslph"],
                     },
-                    {
-                        path: "stationControl",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/comprehensiveControl/stationControlKPI/index.vue"
-                            ),
-                        name: "stationControl",
-                        meta: {
-                            title: "场站管控KPI",
-                            icon: "",
-                            permissions: ["jn_zhgk_czgk"],
-                        },
+                }, {
+                    path: "loadRanking",
+                    component: () =>
+                        import(
+                            "@/views/indexRanking/fhph/index.vue"
+                        ),
+                    name: "loadRanking",
+                    meta: {
+                        title: "负荷排行榜",
+                        icon: "",
+                        permissions: ["jn_fdfx_fhph"],
                     },
-                ],
+                },],
             },
-            //管控效率
+            //等级评估(山西版)
             {
-                path: "efficiency",
-                redirect: "efficiency/restorationEfficiency",
-                component: () => import("@/views/economicsOperation/efficiency"),
-                name: "efficiency",
+                path: "gradeEvaluation",
+                component: () => import("@/views/gradeEvaluation"),
+                name: "gradeEvaluation",
                 meta: {
                     title: "等级评估",
-                    icon: "svg-dimension-new",
-                    permissions: ["jn_slgl"],
+                    icon: "svg-fdfx",
+                    permissions: ["jn_djpg"],
                 },
-                children: [
-                    {
-                        path: "restorationEfficiency",
-                        component: () =>
-                            import(
-                                "@/views/economicsOperation/efficiency/restorationEfficiency"
-                            ),
-                        name: "restorationEfficiency",
-                        meta: {
-                            title: "单机等级评估",
-                            icon: "",
-                            permissions: ["jn_slgl_fwjsl"],
-                        },
+                children: [{
+                    path: "soloEvaluation",
+                    component: () =>
+                        import(
+                            "@/views/gradeEvaluation/djdjpg/index.vue"
+                        ),
+                    name: "soloEvaluation",
+                    meta: {
+                        title: "单机等级评估",
+                        icon: "",
+                        permissions: ["jn_fdfx_djdjpg"],
                     },
-                ],
+                }],
             },
+            //性能分析(旧版)
+            // {
+            //     path: "windAnalyse_old",
+            //     component: () => import("@/views/economicsOperation/windAnalyse"),
+            //     name: "windAnalyse_old",
+            //     meta: {
+            //         title: "性能分析(旧版)",
+            //         icon: "svg-fdfx",
+            //         permissions: ["jn_fdfx"],
+            //     },
+            //     children: [
+            //         {
+            //             path: "stateTransition",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/windAnalyse/stateTransition/index.vue"
+            //                 ),
+            //             name: "stateTransition",
+            //             meta: {
+            //                 title: "状态时间分析",
+            //                 icon: "",
+            //                 permissions: ["jn_fdfx_ztzhfx"],
+            //             },
+            //         },
+            //         {
+            //             path: "timeTransition",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/windAnalyse/timeTransition/index.vue"
+            //                 ),
+            //             name: "timeTransition",
+            //             meta: {
+            //                 title: "状态转换分析",
+            //                 icon: "",
+            //                 permissions: ["jn_fdfx_ztsjfx"],
+            //             },
+            //         },
+            //         {
+            //             path: "powerAnalyse",
+            //             component: () =>
+            //                 import("@/views/economicsOperation/windAnalyse/powerCurve"),
+            //             name: "PowerCurve",
+            //             meta: {
+            //                 title: "功率曲线拟合",
+            //                 icon: "",
+            //                 permissions: ["jn_fdfx_glqxnh"],
+            //             },
+            //         },
+            //         {
+            //             path: "powerSearch",
+            //             component: () =>
+            //                 import("@/views/economicsOperation/windAnalyse/powerSearch"),
+            //             name: "PowerSearch",
+            //             meta: {
+            //                 title: "功率曲线查询",
+            //                 icon: "",
+            //                 permissions: ["jn_fdfx_glqxcx"],
+            //             },
+            //         },
+            //         {
+            //             path: "qxpclfx",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/windAnalyse/qxpclfx/index.vue"
+            //                 ),
+            //             name: "Qxpclfx",
+            //             meta: {
+            //                 title: "曲线偏差率分析",
+            //                 icon: "",
+            //                 permissions: ["jn_fdfx_qxpclfx"],
+            //             },
+            //         },
+            //         {
+            //             path: "qxqjpcl",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/windAnalyse/qxqjpcl/index.vue"
+            //                 ),
+            //             name: "Qxqjpcl",
+            //             meta: {
+            //                 title: "曲线区间偏差率分析",
+            //                 icon: "",
+            //                 permissions: ["jn_fdfx_qxpclfx"],
+            //             },
+            //         },
+            //         {
+            //             path: "singleWindAnasyle",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/windAnalyse/singleWindAnasyle/index.vue"
+            //                 ),
+            //             name: "SingleWindAnasyle",
+            //             meta: {
+            //                 title: "单机性能分析",
+            //                 icon: "",
+            //                 permissions: ["jn_fdfx_djxnfx"],
+            //             },
+            //         },
+            //         {
+            //             path: "monthlyAnalysis",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/windAnalyse/monthlyAnalysis/index.vue"
+            //                 ),
+            //             name: "MonthlyAnalysis",
+            //             meta: {
+            //                 title: "单机月度分析",
+            //                 icon: "",
+            //                 permissions: ["jn_fdfx_djydfx"],
+            //             },
+            //         },
+            //         {
+            //             path: "performanceAssess",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/windAnalyse/performanceAssess/index.vue"
+            //                 ),
+            //             name: "PerformanceAssess",
+            //             meta: {
+            //                 title: "性能等级评估",
+            //                 icon: "",
+            //                 permissions: ["jn_fdfx_xndjpg"],
+            //             },
+            //         },
+            //     ],
+            // },
+            // //管控效率
+            // {
+            //     path: "efficiency",
+            //     redirect: "efficiency/restorationEfficiency",
+            //     component: () => import("@/views/economicsOperation/efficiency"),
+            //     name: "efficiency",
+            //     meta: {
+            //         title: "指标统计分析",
+            //         icon: "svg-dimension-new",
+            //         permissions: ["jn_slgl"],
+            //     },
+            //     children: [
+            //         {
+            //             path: "restorationEfficiency",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/efficiency/restorationEfficiency"
+            //                 ),
+            //             name: "restorationEfficiency",
+            //             meta: {
+            //                 title: "复位及时率",
+            //                 icon: "",
+            //                 permissions: ["jn_slgl_fwjsl"],
+            //             },
+            //         },
+            //     ],
+            // },
+            // //指标排行
+            // {
+            //     path: "comprehensiveControl",
+            //     redirect: "comprehensiveControl/running",
+            //     component: () =>
+            //         import("@/views/economicsOperation/comprehensiveControl"),
+            //     name: "comprehensiveControl",
+            //     meta: {
+            //         title: "指标排行",
+            //         icon: "svg-zhgk",
+            //         permissions: ["jn_zhgk"],
+            //     },
+            //     children: [
+            //         {
+            //             path: "running",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/comprehensiveControl/runningKPI/index.vue"
+            //                 ),
+            //             name: "running",
+            //             meta: {
+            //                 title: "运行KPI",
+            //                 icon: "",
+            //                 permissions: ["jn_zhgk_yx"],
+            //             },
+            //         },
+            //         {
+            //             path: "maintenance",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/comprehensiveControl/maintenanceKPI/index.vue"
+            //                 ),
+            //             name: "maintenance",
+            //             meta: {
+            //                 title: "检修KPI",
+            //                 icon: "",
+            //                 permissions: ["jn_zhgk_jx"],
+            //             },
+            //         },
+            //         {
+            //             path: "stationControl",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/comprehensiveControl/stationControlKPI/index.vue"
+            //                 ),
+            //             name: "stationControl",
+            //             meta: {
+            //                 title: "场站管控KPI",
+            //                 icon: "",
+            //                 permissions: ["jn_zhgk_czgk"],
+            //             },
+            //         },
+            //     ],
+            // },
+            // //管控效率
+            // {
+            //     path: "efficiency",
+            //     redirect: "efficiency/restorationEfficiency",
+            //     component: () => import("@/views/economicsOperation/efficiency"),
+            //     name: "efficiency",
+            //     meta: {
+            //         title: "等级评估",
+            //         icon: "svg-dimension-new",
+            //         permissions: ["jn_slgl"],
+            //     },
+            //     children: [
+            //         {
+            //             path: "restorationEfficiency",
+            //             component: () =>
+            //                 import(
+            //                     "@/views/economicsOperation/efficiency/restorationEfficiency"
+            //                 ),
+            //             name: "restorationEfficiency",
+            //             meta: {
+            //                 title: "单机等级评估",
+            //                 icon: "",
+            //                 permissions: ["jn_slgl_fwjsl"],
+            //             },
+            //         },
+            //     ],
+            // },
         ],
     },
     //综合报警

+ 223 - 1
src/views/Home/components/map.vue

@@ -895,6 +895,12 @@
               </div>
             </div>
           </div>
+          <div class="hover72Power">
+            <div
+              id="hover72Powers"
+              style="width: 100%; height: 100%"
+            ></div>
+          </div>
         </template>
       </div>
     </div>
@@ -1015,7 +1021,7 @@
           <div class="model-bg-new">
             <div class="titles">
               <div class="name">
-                {{ activeTab == 0 ? "实时负荷" : "关键指标" }}
+                {{ activeTab == 0 ? "风电负荷" : "关键指标" }}
               </div>
               <!-- <div class="unit">(单位: MW)</div> -->
             </div>
@@ -1805,9 +1811,218 @@ export default {
         value: [47, 28, 69, 23, 46, 79, 59, 57],
       },
     ];
+    this.$nextTick(() => {
+      this.initPageData({
+        data: {
+          "72time": dataJson["72time"],
+        },
+      });
+    });
   },
   // 函数
   methods: {
+    initPageData(res) {
+      let that = this;
+      const theme = sessionStorage.getItem("theme") === "true" ? true : false;
+      if (res && res.data) {
+        // 72小时功率曲线
+        if (res.data["72time"] && res.data["72time"].length > 0) {
+          let xAxis = [];
+          let seriesSpeed = [];
+          let seriesGl = [];
+          let seriesSJ = [];
+          let seriesYc = [];
+          res.data["72time"].forEach((it) => {
+            xAxis.push(dayjs(it.time).format("MM-DD HH:mm"));
+            seriesSpeed.push(it.speed);
+            seriesGl.push(it.expectedpower);
+            seriesSJ.push(it.power);
+            seriesYc.push(it.predictedpower);
+          });
+          let series = [
+            {
+              name: "平均风速",
+              data: seriesSpeed,
+              yAxisIndex: 1,
+              type: "line",
+              symbol: "none",
+            },
+            {
+              name: "理论功率",
+              data: seriesGl,
+              type: "line",
+              symbol: "none",
+              yAxisIndex: 0,
+            },
+            {
+              name: "实际功率",
+              data: seriesSJ,
+              type: "line",
+              symbol: "none",
+              yAxisIndex: 0,
+            },
+            {
+              name: "预测功率",
+              data: seriesYc,
+              type: "line",
+              symbol: "none",
+              yAxisIndex: 0,
+            },
+          ];
+
+          const allPowerData = seriesGl.concat(seriesSJ, seriesYc);
+          const powerMin = Math.min(...allPowerData);
+          const powerMax = Math.max(...allPowerData);
+          const windSpeedMin = Math.min(...seriesSpeed);
+          const windSpeedMax = Math.max(...seriesSpeed);
+          const splitNumber = 4;
+
+          that.getPowerLine(
+            xAxis,
+            series,
+            powerMin,
+            powerMax,
+            windSpeedMin,
+            windSpeedMax,
+            splitNumber
+          );
+        }
+      }
+    },
+
+    getPowerLine(
+      xAxis,
+      series,
+      powerMin,
+      powerMax,
+      windSpeedMin,
+      windSpeedMax,
+      splitNumber
+    ) {
+      const theme = this.$store.state.themeName === "dark" ? true : false;
+      let myChart;
+      let legendState = {};
+      if (this.chart72Options?.getOption) {
+        legendState = this.chart72Options.getOption().legend[0].selected;
+      }
+
+      let option = {
+        animation: true,
+        backgroundColor: "rgba(3, 5, 9, 0.75)",
+        title: {
+          text: "风速功率曲线",
+          left: "5px",
+          top: "5px",
+          textStyle: {
+            fontSize: "16",
+            fontWeight: 400,
+            color: "#fff",
+          },
+        },
+        tooltip: {
+          trigger: "axis",
+        },
+        color: ["#7981AF", "#1C99FF", "#E57F25", "#f25656"],
+        legend: {
+          right: "5",
+          top: "5",
+          itemWidth: 5,
+          itemHeight: 5,
+          data: ["平均风速", "理论功率", "实际功率", "预测功率"],
+          textStyle: {
+            color: "#fff",
+          },
+          selected: legendState,
+        },
+        grid: {
+          left: "2%",
+          right: "2%",
+          bottom: "5%",
+          height: "110px",
+          containLabel: true,
+        },
+        xAxis: {
+          type: "category",
+          boundaryGap: false,
+          data: xAxis,
+          axisLine: {
+            lineStyle: {
+              color: "#fff",
+            },
+          },
+        },
+        yAxis: [
+          {
+            type: "value",
+            splitLine: {
+              lineStyle: {
+                color: "#fff",
+                type: "dashed", // 修改为虚线
+                opacity: 0,
+              },
+            },
+            name: "单位:MW",
+            axisLine: {
+              lineStyle: {
+                color: "#fff",
+              },
+            },
+            min: powerMin,
+            max: powerMax, // 动态设置最大值
+            interval: parseFloat(
+              ((powerMax - powerMin) / splitNumber).toFixed(4)
+            ),
+            splitNumber,
+            axisLabel: {
+              formatter(value) {
+                return parseInt(value);
+              },
+            },
+          },
+          {
+            type: "value",
+            splitLine: {
+              lineStyle: {
+                color: "#fff",
+                type: "dashed", // 修改为虚线
+                opacity: 0.2,
+              },
+            },
+            name: "单位:m/s",
+            axisLine: {
+              lineStyle: {
+                color: "#fff",
+              },
+            },
+            min: windSpeedMin,
+            max: windSpeedMax, // 动态设置最大值
+            splitNumber,
+            interval: parseFloat(
+              ((windSpeedMax - windSpeedMin) / splitNumber).toFixed(4)
+            ),
+            axisLabel: {
+              formatter(value) {
+                return parseFloat(value.toFixed(1));
+              },
+            },
+          },
+        ],
+        series: series,
+      };
+      // 基于准备好的dom,初始化echarts实例
+      let dom = document.getElementById("hover72Powers");
+      dom && dom.removeAttribute("_echarts_instance_");
+
+      myChart = this.$echarts.init(dom);
+      this.chart72Options = myChart;
+
+      myChart.setOption(option);
+
+      window.addEventListener("resize", () => {
+        myChart.resize();
+      });
+    },
+
     //放大24小时功率曲线
     handleShowCharts(title) {
       //   console.log(title);
@@ -3228,6 +3443,13 @@ p {
         }
       }
 
+      .hover72Power {
+        width: 520px;
+        height: 180px;
+        // background-color: rgba(3, 5, 9, 0.75);
+        margin-top: 30px;
+      }
+
       .security-day[data-type~="greenSty"] {
         .lineBox {
           .num {

File diff suppressed because it is too large
+ 1436 - 335
src/views/Home/components/mapdataJson.json


+ 902 - 0
src/views/gradeEvaluation/djdjpg/dataHistoryJson.json

@@ -0,0 +1,902 @@
+{
+    "code": 0,
+    "data": {
+        "success": true,
+        "code": 200,
+        "message": "成功",
+        "count": null,
+        "data": [
+            {
+                "id": "1810950367689637911",
+                "windpowerstationId": "SXJ_KGDL_XWT_FDC_STA",
+                "projectId": "SXJ_KGDL_XWTF01_EG",
+                "lineId": "SXJ_KGDL_XWTF01_LN",
+                "windturbineId": "SXJ_KGDL_XWT_F_WT_0001_EQ",
+                "nemCode": "#1",
+                "recordDate": "2024-08-06",
+                "dayfdl": 51628.0,
+                "monthfdl": 0.0,
+                "yearfdl": 0.0,
+                "dayllfdl": 75112.43,
+                "monthllfdl": 0.0,
+                "yearllfdl": 0.0,
+                "dayfs": 6.69,
+                "monthfs": 2.0,
+                "yearfs": 9.0,
+                "daygl": 290.86,
+                "monthgl": 0.0,
+                "yeargl": 0.0,
+                "daygzssdl": 13067.16,
+                "monthgzssdl": 0.0,
+                "yeargzssdl": 0.0,
+                "dayxdssdl": 0.0,
+                "monthxdssdl": 0.0,
+                "yearxdssdl": 0.0,
+                "daywhssdl": 0.0,
+                "monthwhssdl": 0.0,
+                "yearwhssdl": 0.0,
+                "dayxnssdl": 0.0,
+                "monthxnssdl": 1.0,
+                "yearxnssdl": 0.0,
+                "daygzsj": 6.05,
+                "monthgzsj": 0.0,
+                "yeargzsj": 0.0,
+                "daywhsj": 0.0,
+                "monthwhsj": 0.0,
+                "yearwhsj": 0.0,
+                "dayyxsj": 87.9,
+                "monthyxsj": 0.0,
+                "yearyxsj": 0.0,
+                "daytjsj": 6.05,
+                "monthtjsj": 0.0,
+                "yeartjsj": 0.0,
+                "daylyxs": 41.3,
+                "monthlyxs": 3.0,
+                "yearlyxs": 9.0,
+                "daynhyd": 0.0,
+                "monthnhyd": 1.0,
+                "yearnhyd": 0.0,
+                "daysbklyl": 95.8,
+                "monthsbklyl": 18.0,
+                "yearsbklyl": 5.0,
+                "daydxkyxs": 95.8,
+                "monthdxkyxs": 18.0,
+                "yeardxkyxs": 5.0,
+                "dayyxfss": 0.0,
+                "monthyxfss": 1.0,
+                "yearyxfss": 0.0,
+                "dayxfqr": 0.0,
+                "monthxfqr": 1.0,
+                "yearxfqr": 0.0,
+                "dayjfpl": 0.0,
+                "monthjfpl": 1.0,
+                "yearjfpl": 0.0,
+                "dayglyzxxs": 0.0,
+                "monthglyzxxs": 1.0,
+                "yearglyzxxs": 0.0,
+                "types": 2,
+                "dayRank": 4,
+                "monthRank": null,
+                "yearRank": null,
+                "year": 2024,
+                "month": 1,
+                "dayScore": 48.0,
+                "monthScore": null,
+                "yearScore": null,
+                "dayLevel": "C",
+                "yearLevel": null,
+                "monthLevel": null
+            },
+            {
+                "id": "1810950452792066062",
+                "windpowerstationId": "SXJ_KGDL_XWT_FDC_STA",
+                "projectId": "SXJ_KGDL_XWTF01_EG",
+                "lineId": "SXJ_KGDL_XWTF01_LN",
+                "windturbineId": "SXJ_KGDL_XWT_F_WT_0001_EQ",
+                "nemCode": "#1",
+                "recordDate": "2024-08-09",
+                "dayfdl": 77412.0,
+                "monthfdl": 0.0,
+                "yearfdl": 0.0,
+                "dayllfdl": 101622.84,
+                "monthllfdl": 0.0,
+                "yearllfdl": 0.0,
+                "dayfs": 4.78,
+                "monthfs": 3.0,
+                "yearfs": 9.0,
+                "daygl": 133.17,
+                "monthgl": 0.0,
+                "yeargl": 0.0,
+                "daygzssdl": 13119.64,
+                "monthgzssdl": 0.0,
+                "yeargzssdl": 0.0,
+                "dayxdssdl": 0.0,
+                "monthxdssdl": 0.0,
+                "yearxdssdl": 0.0,
+                "daywhssdl": 0.0,
+                "monthwhssdl": 0.0,
+                "yearwhssdl": 0.0,
+                "dayxnssdl": 0.0,
+                "monthxnssdl": 1.0,
+                "yearxnssdl": 0.0,
+                "daygzsj": 6.23,
+                "monthgzsj": 0.0,
+                "yeargzsj": 0.0,
+                "daywhsj": 0.0,
+                "monthwhsj": 0.0,
+                "yearwhsj": 0.0,
+                "dayyxsj": 149.04,
+                "monthyxsj": 0.0,
+                "yearyxsj": 0.0,
+                "daytjsj": 6.23,
+                "monthtjsj": 0.0,
+                "yeartjsj": 0.0,
+                "daylyxs": 61.93,
+                "monthlyxs": 3.0,
+                "yearlyxs": 9.0,
+                "daynhyd": 57.0,
+                "monthnhyd": 24.0,
+                "yearnhyd": 3.0,
+                "daysbklyl": 97.12,
+                "monthsbklyl": 15.0,
+                "yearsbklyl": 5.0,
+                "daydxkyxs": 97.12,
+                "monthdxkyxs": 15.0,
+                "yeardxkyxs": 5.0,
+                "dayyxfss": 209.77,
+                "monthyxfss": 15.0,
+                "yearyxfss": 5.0,
+                "dayxfqr": 3.72,
+                "monthxfqr": 28.0,
+                "yearxfqr": 2.0,
+                "dayjfpl": 3.65,
+                "monthjfpl": 6.0,
+                "yearjfpl": 8.18,
+                "dayglyzxxs": 100.0,
+                "monthglyzxxs": 1.0,
+                "yearglyzxxs": 0.0,
+                "types": 2,
+                "dayRank": 10,
+                "monthRank": null,
+                "yearRank": null,
+                "year": 2024,
+                "month": 1,
+                "dayScore": 66.0,
+                "monthScore": null,
+                "yearScore": null,
+                "dayLevel": "BB",
+                "yearLevel": null,
+                "monthLevel": null
+            },
+            {
+                "id": "1810950421485781058",
+                "windpowerstationId": "SXJ_KGDL_XWT_FDC_STA",
+                "projectId": "SXJ_KGDL_XWTF01_EG",
+                "lineId": "SXJ_KGDL_XWTF01_LN",
+                "windturbineId": "SXJ_KGDL_XWT_F_WT_0001_EQ",
+                "nemCode": "#1",
+                "recordDate": "2024-08-08",
+                "dayfdl": 74491.0,
+                "monthfdl": 0.0,
+                "yearfdl": 0.0,
+                "dayllfdl": 98641.07,
+                "monthllfdl": 0.0,
+                "yearllfdl": 0.0,
+                "dayfs": 9.34,
+                "monthfs": 1.0,
+                "yearfs": 10.0,
+                "daygl": 641.61,
+                "monthgl": 0.0,
+                "yeargl": 0.0,
+                "daygzssdl": 13119.64,
+                "monthgzssdl": 0.0,
+                "yeargzssdl": 0.0,
+                "dayxdssdl": 0.0,
+                "monthxdssdl": 0.0,
+                "yearxdssdl": 0.0,
+                "daywhssdl": 0.0,
+                "monthwhssdl": 0.0,
+                "yearwhssdl": 0.0,
+                "dayxnssdl": 0.0,
+                "monthxnssdl": 1.0,
+                "yearxnssdl": 0.0,
+                "daygzsj": 6.23,
+                "monthgzsj": 0.0,
+                "yeargzsj": 0.0,
+                "daywhsj": 0.0,
+                "monthwhsj": 0.0,
+                "yearwhsj": 0.0,
+                "dayyxsj": 133.49,
+                "monthyxsj": 0.0,
+                "yearyxsj": 0.0,
+                "daytjsj": 6.23,
+                "monthtjsj": 0.0,
+                "yeartjsj": 0.0,
+                "daylyxs": 59.59,
+                "monthlyxs": 3.0,
+                "yearlyxs": 9.0,
+                "daynhyd": 33.0,
+                "monthnhyd": 14.0,
+                "yearnhyd": 6.0,
+                "daysbklyl": 96.76,
+                "monthsbklyl": 15.0,
+                "yearsbklyl": 5.0,
+                "daydxkyxs": 96.76,
+                "monthdxkyxs": 15.0,
+                "yeardxkyxs": 5.0,
+                "dayyxfss": 185.95,
+                "monthyxfss": 17.0,
+                "yearyxfss": 5.0,
+                "dayxfqr": 3.8,
+                "monthxfqr": 30.0,
+                "yearxfqr": 1.0,
+                "dayjfpl": 0.74,
+                "monthjfpl": 9.0,
+                "yearjfpl": 7.27,
+                "dayglyzxxs": 100.0,
+                "monthglyzxxs": 1.0,
+                "yearglyzxxs": 0.0,
+                "types": 2,
+                "dayRank": 10,
+                "monthRank": null,
+                "yearRank": null,
+                "year": 2024,
+                "month": 1,
+                "dayScore": 68.0,
+                "monthScore": null,
+                "yearScore": null,
+                "dayLevel": "BB",
+                "yearLevel": null,
+                "monthLevel": null
+            },
+            {
+                "id": "1810950395091025980",
+                "windpowerstationId": "SXJ_KGDL_XWT_FDC_STA",
+                "projectId": "SXJ_KGDL_XWTF01_EG",
+                "lineId": "SXJ_KGDL_XWTF01_LN",
+                "windturbineId": "SXJ_KGDL_XWT_F_WT_0001_EQ",
+                "nemCode": "#1",
+                "recordDate": "2024-08-07",
+                "dayfdl": 59392.0,
+                "monthfdl": 0.0,
+                "yearfdl": 0.0,
+                "dayllfdl": 83072.28,
+                "monthllfdl": 0.0,
+                "yearllfdl": 0.0,
+                "dayfs": 6.87,
+                "monthfs": 2.0,
+                "yearfs": 9.0,
+                "daygl": 322.45,
+                "monthgl": 0.0,
+                "yeargl": 0.0,
+                "daygzssdl": 13067.16,
+                "monthgzssdl": 0.0,
+                "yeargzssdl": 0.0,
+                "dayxdssdl": 0.0,
+                "monthxdssdl": 0.0,
+                "yearxdssdl": 0.0,
+                "daywhssdl": 0.0,
+                "monthwhssdl": 0.0,
+                "yearwhssdl": 0.0,
+                "dayxnssdl": 0.0,
+                "monthxnssdl": 1.0,
+                "yearxnssdl": 0.0,
+                "daygzsj": 6.05,
+                "monthgzsj": 0.0,
+                "yeargzsj": 0.0,
+                "daywhsj": 0.0,
+                "monthwhsj": 0.0,
+                "yearwhsj": 0.0,
+                "dayyxsj": 109.7,
+                "monthyxsj": 0.0,
+                "yearyxsj": 0.0,
+                "daytjsj": 6.05,
+                "monthtjsj": 0.0,
+                "yeartjsj": 0.0,
+                "daylyxs": 47.51,
+                "monthlyxs": 3.0,
+                "yearlyxs": 9.0,
+                "daynhyd": 36.0,
+                "monthnhyd": 18.0,
+                "yearnhyd": 5.0,
+                "daysbklyl": 96.4,
+                "monthsbklyl": 17.0,
+                "yearsbklyl": 5.0,
+                "daydxkyxs": 96.4,
+                "monthdxkyxs": 17.0,
+                "yeardxkyxs": 5.0,
+                "dayyxfss": 161.95,
+                "monthyxfss": 18.0,
+                "yearyxfss": 5.0,
+                "dayxfqr": 3.8,
+                "monthxfqr": 30.0,
+                "yearxfqr": 1.0,
+                "dayjfpl": 0.85,
+                "monthjfpl": 9.0,
+                "yearjfpl": 7.27,
+                "dayglyzxxs": 100.0,
+                "monthglyzxxs": 1.0,
+                "yearglyzxxs": 0.0,
+                "types": 2,
+                "dayRank": 12,
+                "monthRank": null,
+                "yearRank": null,
+                "year": 2024,
+                "month": 1,
+                "dayScore": 66.0,
+                "monthScore": null,
+                "yearScore": null,
+                "dayLevel": "BB",
+                "yearLevel": null,
+                "monthLevel": null
+            },
+            {
+                "id": "1810950563114844167",
+                "windpowerstationId": "SXJ_KGDL_XWT_FDC_STA",
+                "projectId": "SXJ_KGDL_XWTF01_EG",
+                "lineId": "SXJ_KGDL_XWTF01_LN",
+                "windturbineId": "SXJ_KGDL_XWT_F_WT_0001_EQ",
+                "nemCode": "#1",
+                "recordDate": "2024-08-13",
+                "dayfdl": 124912.0,
+                "monthfdl": 0.0,
+                "yearfdl": 0.0,
+                "dayllfdl": 127431.53,
+                "monthllfdl": 0.0,
+                "yearllfdl": 0.0,
+                "dayfs": 7.86,
+                "monthfs": 4.0,
+                "yearfs": 9.0,
+                "daygl": 444.15,
+                "monthgl": 0.0,
+                "yeargl": 0.0,
+                "daygzssdl": 45.08,
+                "monthgzssdl": 0.0,
+                "yeargzssdl": 0.0,
+                "dayxdssdl": 0.0,
+                "monthxdssdl": 0.0,
+                "yearxdssdl": 0.0,
+                "daywhssdl": 0.0,
+                "monthwhssdl": 0.0,
+                "yearwhssdl": 0.0,
+                "dayxnssdl": 0.0,
+                "monthxnssdl": 1.0,
+                "yearxnssdl": 0.0,
+                "daygzsj": 6.31,
+                "monthgzsj": 0.0,
+                "yeargzsj": 0.0,
+                "daywhsj": 0.0,
+                "monthwhsj": 0.0,
+                "yearwhsj": 0.0,
+                "dayyxsj": 243.42,
+                "monthyxsj": 0.0,
+                "yearyxsj": 0.0,
+                "daytjsj": 6.31,
+                "monthtjsj": 0.0,
+                "yeartjsj": 0.0,
+                "daylyxs": 99.93,
+                "monthlyxs": 2.0,
+                "yearlyxs": 9.0,
+                "daynhyd": 42.0,
+                "monthnhyd": 17.0,
+                "yearnhyd": 5.0,
+                "daysbklyl": 97.98,
+                "monthsbklyl": 12.0,
+                "yearsbklyl": 6.0,
+                "daydxkyxs": 97.98,
+                "monthdxkyxs": 12.0,
+                "yeardxkyxs": 6.0,
+                "dayyxfss": 305.77,
+                "monthyxfss": 13.0,
+                "yearyxfss": 6.0,
+                "dayxfqr": 3.72,
+                "monthxfqr": 29.0,
+                "yearxfqr": 1.0,
+                "dayjfpl": 0.12,
+                "monthjfpl": 5.0,
+                "yearjfpl": 8.48,
+                "dayglyzxxs": 100.0,
+                "monthglyzxxs": 2.0,
+                "yearglyzxxs": 0.0,
+                "types": 2,
+                "dayRank": 6,
+                "monthRank": null,
+                "yearRank": null,
+                "year": 2024,
+                "month": 1,
+                "dayScore": 70.0,
+                "monthScore": null,
+                "yearScore": null,
+                "dayLevel": "BB",
+                "yearLevel": null,
+                "monthLevel": null
+            },
+            {
+                "id": "1810950539136008205",
+                "windpowerstationId": "SXJ_KGDL_XWT_FDC_STA",
+                "projectId": "SXJ_KGDL_XWTF01_EG",
+                "lineId": "SXJ_KGDL_XWTF01_LN",
+                "windturbineId": "SXJ_KGDL_XWT_F_WT_0001_EQ",
+                "nemCode": "#1",
+                "recordDate": "2024-08-12",
+                "dayfdl": 115331.0,
+                "monthfdl": 0.0,
+                "yearfdl": 0.0,
+                "dayllfdl": 117501.7,
+                "monthllfdl": 0.0,
+                "yearllfdl": 0.0,
+                "dayfs": 7.65,
+                "monthfs": 1.0,
+                "yearfs": 10.0,
+                "daygl": 398.01,
+                "monthgl": 0.0,
+                "yeargl": 0.0,
+                "daygzssdl": 0.0,
+                "monthgzssdl": 0.0,
+                "yeargzssdl": 0.0,
+                "dayxdssdl": 0.0,
+                "monthxdssdl": 0.0,
+                "yearxdssdl": 0.0,
+                "daywhssdl": 0.0,
+                "monthwhssdl": 0.0,
+                "yearwhssdl": 0.0,
+                "dayxnssdl": 0.0,
+                "monthxnssdl": 1.0,
+                "yearxnssdl": 0.0,
+                "daygzsj": 6.23,
+                "monthgzsj": 0.0,
+                "yeargzsj": 0.0,
+                "daywhsj": 0.0,
+                "monthwhsj": 0.0,
+                "yearwhsj": 0.0,
+                "dayyxsj": 220.15,
+                "monthyxsj": 0.0,
+                "yearyxsj": 0.0,
+                "daytjsj": 6.23,
+                "monthtjsj": 0.0,
+                "yeartjsj": 0.0,
+                "daylyxs": 92.26,
+                "monthlyxs": 2.0,
+                "yearlyxs": 9.0,
+                "daynhyd": 62.0,
+                "monthnhyd": 25.0,
+                "yearnhyd": 2.0,
+                "daysbklyl": 97.84,
+                "monthsbklyl": 13.0,
+                "yearsbklyl": 6.0,
+                "daydxkyxs": 97.84,
+                "monthdxkyxs": 13.0,
+                "yeardxkyxs": 6.0,
+                "dayyxfss": 281.77,
+                "monthyxfss": 13.0,
+                "yearyxfss": 6.0,
+                "dayxfqr": 3.71,
+                "monthxfqr": 27.0,
+                "yearxfqr": 2.0,
+                "dayjfpl": 0.02,
+                "monthjfpl": 5.0,
+                "yearjfpl": 8.48,
+                "dayglyzxxs": 100.0,
+                "monthglyzxxs": 1.0,
+                "yearglyzxxs": 0.0,
+                "types": 2,
+                "dayRank": 5,
+                "monthRank": null,
+                "yearRank": null,
+                "year": 2024,
+                "month": 1,
+                "dayScore": 69.0,
+                "monthScore": null,
+                "yearScore": null,
+                "dayLevel": "BB",
+                "yearLevel": null,
+                "monthLevel": null
+            },
+            {
+                "id": "1810950476208865315",
+                "windpowerstationId": "SXJ_KGDL_XWT_FDC_STA",
+                "projectId": "SXJ_KGDL_XWTF01_EG",
+                "lineId": "SXJ_KGDL_XWTF01_LN",
+                "windturbineId": "SXJ_KGDL_XWT_F_WT_0001_EQ",
+                "nemCode": "#1",
+                "recordDate": "2024-08-10",
+                "dayfdl": 93350.0,
+                "monthfdl": 0.0,
+                "yearfdl": 0.0,
+                "dayllfdl": 94901.71,
+                "monthllfdl": 0.0,
+                "yearllfdl": 0.0,
+                "dayfs": 10.05,
+                "monthfs": 2.0,
+                "yearfs": 9.0,
+                "daygl": 666.83,
+                "monthgl": 0.0,
+                "yeargl": 0.0,
+                "daygzssdl": 0.0,
+                "monthgzssdl": 0.0,
+                "yeargzssdl": 0.0,
+                "dayxdssdl": 0.0,
+                "monthxdssdl": 0.0,
+                "yearxdssdl": 0.0,
+                "daywhssdl": 0.0,
+                "monthwhssdl": 0.0,
+                "yearwhssdl": 0.0,
+                "dayxnssdl": 0.0,
+                "monthxnssdl": 1.0,
+                "yearxnssdl": 0.0,
+                "daygzsj": 6.23,
+                "monthgzsj": 0.0,
+                "yeargzsj": 0.0,
+                "daywhsj": 0.0,
+                "monthwhsj": 0.0,
+                "yearwhsj": 0.0,
+                "dayyxsj": 172.94,
+                "monthyxsj": 0.0,
+                "yearyxsj": 0.0,
+                "daytjsj": 6.23,
+                "monthtjsj": 0.0,
+                "yeartjsj": 0.0,
+                "daylyxs": 74.68,
+                "monthlyxs": 2.0,
+                "yearlyxs": 9.0,
+                "daynhyd": 44.0,
+                "monthnhyd": 18.0,
+                "yearnhyd": 5.0,
+                "daysbklyl": 97.4,
+                "monthsbklyl": 13.0,
+                "yearsbklyl": 6.0,
+                "daydxkyxs": 97.4,
+                "monthdxkyxs": 13.0,
+                "yeardxkyxs": 6.0,
+                "dayyxfss": 24.0,
+                "monthyxfss": 1.0,
+                "yearyxfss": 10.0,
+                "dayxfqr": 3.58,
+                "monthxfqr": 24.0,
+                "yearxfqr": 3.0,
+                "dayjfpl": 0.0,
+                "monthjfpl": 1.0,
+                "yearjfpl": 0.0,
+                "dayglyzxxs": 100.0,
+                "monthglyzxxs": 1.0,
+                "yearglyzxxs": 0.0,
+                "types": 2,
+                "dayRank": 9,
+                "monthRank": null,
+                "yearRank": null,
+                "year": 2024,
+                "month": 1,
+                "dayScore": 68.0,
+                "monthScore": null,
+                "yearScore": null,
+                "dayLevel": "BB",
+                "yearLevel": null,
+                "monthLevel": null
+            },
+            {
+                "id": "1810950505195700244",
+                "windpowerstationId": "SXJ_KGDL_XWT_FDC_STA",
+                "projectId": "SXJ_KGDL_XWTF01_EG",
+                "lineId": "SXJ_KGDL_XWTF01_LN",
+                "windturbineId": "SXJ_KGDL_XWT_F_WT_0001_EQ",
+                "nemCode": "#1",
+                "recordDate": "2024-08-11",
+                "dayfdl": 105814.0,
+                "monthfdl": 0.0,
+                "yearfdl": 0.0,
+                "dayllfdl": 107732.99,
+                "monthllfdl": 0.0,
+                "yearllfdl": 0.0,
+                "dayfs": 8.64,
+                "monthfs": 1.0,
+                "yearfs": 10.0,
+                "daygl": 535.39,
+                "monthgl": 0.0,
+                "yeargl": 0.0,
+                "daygzssdl": 0.0,
+                "monthgzssdl": 0.0,
+                "yeargzssdl": 0.0,
+                "dayxdssdl": 0.0,
+                "monthxdssdl": 0.0,
+                "yearxdssdl": 0.0,
+                "daywhssdl": 0.0,
+                "monthwhssdl": 0.0,
+                "yearwhssdl": 0.0,
+                "dayxnssdl": 0.0,
+                "monthxnssdl": 1.0,
+                "yearxnssdl": 0.0,
+                "daygzsj": 6.23,
+                "monthgzsj": 0.0,
+                "yeargzsj": 0.0,
+                "daywhsj": 0.0,
+                "monthwhsj": 0.0,
+                "yearwhsj": 0.0,
+                "dayyxsj": 196.74,
+                "monthyxsj": 0.0,
+                "yearyxsj": 0.0,
+                "daytjsj": 6.23,
+                "monthtjsj": 0.0,
+                "yeartjsj": 0.0,
+                "daylyxs": 84.65,
+                "monthlyxs": 2.0,
+                "yearlyxs": 9.0,
+                "daynhyd": 34.0,
+                "monthnhyd": 6.0,
+                "yearnhyd": 8.0,
+                "daysbklyl": 97.64,
+                "monthsbklyl": 13.0,
+                "yearsbklyl": 6.0,
+                "daydxkyxs": 97.64,
+                "monthdxkyxs": 13.0,
+                "yeardxkyxs": 6.0,
+                "dayyxfss": 257.77,
+                "monthyxfss": 13.0,
+                "yearyxfss": 6.0,
+                "dayxfqr": 3.72,
+                "monthxfqr": 29.0,
+                "yearxfqr": 1.0,
+                "dayjfpl": 0.01,
+                "monthjfpl": 6.0,
+                "yearjfpl": 8.18,
+                "dayglyzxxs": 100.0,
+                "monthglyzxxs": 1.0,
+                "yearglyzxxs": 0.0,
+                "types": 2,
+                "dayRank": 5,
+                "monthRank": null,
+                "yearRank": null,
+                "year": 2024,
+                "month": 1,
+                "dayScore": 74.0,
+                "monthScore": null,
+                "yearScore": null,
+                "dayLevel": "BB",
+                "yearLevel": null,
+                "monthLevel": null
+            },
+            {
+                "id": "1810950593217364045",
+                "windpowerstationId": "SXJ_KGDL_XWT_FDC_STA",
+                "projectId": "SXJ_KGDL_XWTF01_EG",
+                "lineId": "SXJ_KGDL_XWTF01_LN",
+                "windturbineId": "SXJ_KGDL_XWT_F_WT_0001_EQ",
+                "nemCode": "#1",
+                "recordDate": "2024-08-14",
+                "dayfdl": 125319.0,
+                "monthfdl": 0.0,
+                "yearfdl": 0.0,
+                "dayllfdl": 127855.28,
+                "monthllfdl": 0.0,
+                "yearllfdl": 0.0,
+                "dayfs": 2.34,
+                "monthfs": 23.0,
+                "yearfs": 3.0,
+                "daygl": 6.96,
+                "monthgl": 0.0,
+                "yeargl": 0.0,
+                "daygzssdl": 45.08,
+                "monthgzssdl": 0.0,
+                "yeargzssdl": 0.0,
+                "dayxdssdl": 0.0,
+                "monthxdssdl": 0.0,
+                "yearxdssdl": 0.0,
+                "daywhssdl": 0.0,
+                "monthwhssdl": 0.0,
+                "yearwhssdl": 0.0,
+                "dayxnssdl": 0.0,
+                "monthxnssdl": 1.0,
+                "yearxnssdl": 0.0,
+                "daygzsj": 6.31,
+                "monthgzsj": 0.0,
+                "yeargzsj": 0.0,
+                "daywhsj": 0.0,
+                "monthwhsj": 0.0,
+                "yearwhsj": 0.0,
+                "dayyxsj": 245.62,
+                "monthyxsj": 0.0,
+                "yearyxsj": 0.0,
+                "daytjsj": 6.31,
+                "monthtjsj": 0.0,
+                "yeartjsj": 0.0,
+                "daylyxs": 100.26,
+                "monthlyxs": 2.0,
+                "yearlyxs": 9.0,
+                "daynhyd": 41.0,
+                "monthnhyd": 8.0,
+                "yearnhyd": 8.0,
+                "daysbklyl": 98.12,
+                "monthsbklyl": 11.0,
+                "yearsbklyl": 7.0,
+                "daydxkyxs": 98.12,
+                "monthdxkyxs": 11.0,
+                "yeardxkyxs": 7.0,
+                "dayyxfss": 329.69,
+                "monthyxfss": 12.0,
+                "yearyxfss": 6.0,
+                "dayxfqr": 3.74,
+                "monthxfqr": 31.0,
+                "yearxfqr": 1.0,
+                "dayjfpl": 6.26,
+                "monthjfpl": 14.0,
+                "yearjfpl": 5.76,
+                "dayglyzxxs": 100.0,
+                "monthglyzxxs": 1.0,
+                "yearglyzxxs": 0.0,
+                "types": 2,
+                "dayRank": 10,
+                "monthRank": null,
+                "yearRank": null,
+                "year": 2024,
+                "month": 1,
+                "dayScore": 67.0,
+                "monthScore": null,
+                "yearScore": null,
+                "dayLevel": "BB",
+                "yearLevel": null,
+                "monthLevel": null
+            },
+            {
+                "id": "1810950624175521822",
+                "windpowerstationId": "SXJ_KGDL_XWT_FDC_STA",
+                "projectId": "SXJ_KGDL_XWTF01_EG",
+                "lineId": "SXJ_KGDL_XWTF01_LN",
+                "windturbineId": "SXJ_KGDL_XWT_F_WT_0001_EQ",
+                "nemCode": "#1",
+                "recordDate": "2024-08-15",
+                "dayfdl": 126235.0,
+                "monthfdl": 0.0,
+                "yearfdl": 0.0,
+                "dayllfdl": 128810.19,
+                "monthllfdl": 0.0,
+                "yearllfdl": 0.0,
+                "dayfs": 3.81,
+                "monthfs": 4.0,
+                "yearfs": 9.0,
+                "daygl": 47.41,
+                "monthgl": 0.0,
+                "yeargl": 0.0,
+                "daygzssdl": 45.08,
+                "monthgzssdl": 0.0,
+                "yeargzssdl": 0.0,
+                "dayxdssdl": 0.0,
+                "monthxdssdl": 0.0,
+                "yearxdssdl": 0.0,
+                "daywhssdl": 0.0,
+                "monthwhssdl": 0.0,
+                "yearwhssdl": 0.0,
+                "dayxnssdl": 0.0,
+                "monthxnssdl": 1.0,
+                "yearxnssdl": 0.0,
+                "daygzsj": 6.31,
+                "monthgzsj": 0.0,
+                "yeargzsj": 0.0,
+                "daywhsj": 0.0,
+                "monthwhsj": 0.0,
+                "yearwhsj": 0.0,
+                "dayyxsj": 257.47,
+                "monthyxsj": 0.0,
+                "yearyxsj": 0.0,
+                "daytjsj": 6.31,
+                "monthtjsj": 0.0,
+                "yeartjsj": 0.0,
+                "daylyxs": 100.99,
+                "monthlyxs": 2.0,
+                "yearlyxs": 9.0,
+                "daynhyd": 45.0,
+                "monthnhyd": 28.0,
+                "yearnhyd": 2.0,
+                "daysbklyl": 98.25,
+                "monthsbklyl": 10.0,
+                "yearsbklyl": 7.0,
+                "daydxkyxs": 98.25,
+                "monthdxkyxs": 10.0,
+                "yeardxkyxs": 7.0,
+                "dayyxfss": 353.69,
+                "monthyxfss": 11.0,
+                "yearyxfss": 7.0,
+                "dayxfqr": 3.72,
+                "monthxfqr": 29.0,
+                "yearxfqr": 1.0,
+                "dayjfpl": 7.51,
+                "monthjfpl": 9.0,
+                "yearjfpl": 7.27,
+                "dayglyzxxs": 100.0,
+                "monthglyzxxs": 1.0,
+                "yearglyzxxs": 0.0,
+                "types": 2,
+                "dayRank": 4,
+                "monthRank": null,
+                "yearRank": null,
+                "year": 2024,
+                "month": 1,
+                "dayScore": 69.0,
+                "monthScore": null,
+                "yearScore": null,
+                "dayLevel": "BB",
+                "yearLevel": null,
+                "monthLevel": null
+            },
+            {
+                "id": "1810950653762142220",
+                "windpowerstationId": "SXJ_KGDL_XWT_FDC_STA",
+                "projectId": "SXJ_KGDL_XWTF01_EG",
+                "lineId": "SXJ_KGDL_XWTF01_LN",
+                "windturbineId": "SXJ_KGDL_XWT_F_WT_0001_EQ",
+                "nemCode": "#1",
+                "recordDate": "2024-08-16",
+                "dayfdl": 127383.0,
+                "monthfdl": 0.0,
+                "yearfdl": 0.0,
+                "dayllfdl": 129999.59,
+                "monthllfdl": 0.0,
+                "yearllfdl": 0.0,
+                "dayfs": 3.02,
+                "monthfs": 5.0,
+                "yearfs": 8.0,
+                "daygl": 40.73,
+                "monthgl": 0.0,
+                "yeargl": 0.0,
+                "daygzssdl": 45.08,
+                "monthgzssdl": 0.0,
+                "yeargzssdl": 0.0,
+                "dayxdssdl": 0.0,
+                "monthxdssdl": 0.0,
+                "yearxdssdl": 0.0,
+                "daywhssdl": 0.0,
+                "monthwhssdl": 0.0,
+                "yearwhssdl": 0.0,
+                "dayxnssdl": 0.0,
+                "monthxnssdl": 1.0,
+                "yearxnssdl": 0.0,
+                "daygzsj": 6.31,
+                "monthgzsj": 0.0,
+                "yeargzsj": 0.0,
+                "daywhsj": 0.0,
+                "monthwhsj": 0.0,
+                "yearwhsj": 0.0,
+                "dayyxsj": 267.0,
+                "monthyxsj": 0.0,
+                "yearyxsj": 0.0,
+                "daytjsj": 6.31,
+                "monthtjsj": 0.0,
+                "yeartjsj": 0.0,
+                "daylyxs": 101.91,
+                "monthlyxs": 2.0,
+                "yearlyxs": 9.0,
+                "daynhyd": 0.0,
+                "monthnhyd": 1.0,
+                "yearnhyd": 0.0,
+                "daysbklyl": 98.36,
+                "monthsbklyl": 10.0,
+                "yearsbklyl": 7.0,
+                "daydxkyxs": 98.36,
+                "monthdxkyxs": 10.0,
+                "yeardxkyxs": 7.0,
+                "dayyxfss": 377.69,
+                "monthyxfss": 10.0,
+                "yearyxfss": 7.0,
+                "dayxfqr": 3.71,
+                "monthxfqr": 29.0,
+                "yearxfqr": 1.0,
+                "dayjfpl": 11.05,
+                "monthjfpl": 8.0,
+                "yearjfpl": 7.58,
+                "dayglyzxxs": 100.0,
+                "monthglyzxxs": 1.0,
+                "yearglyzxxs": 0.0,
+                "types": 2,
+                "dayRank": 12,
+                "monthRank": null,
+                "yearRank": null,
+                "year": 2024,
+                "month": 1,
+                "dayScore": 67.0,
+                "monthScore": null,
+                "yearScore": null,
+                "dayLevel": "BB",
+                "yearLevel": null,
+                "monthLevel": null
+            }
+        ]
+    }
+}

File diff suppressed because it is too large
+ 1722 - 0
src/views/gradeEvaluation/djdjpg/dataJson.json


+ 616 - 0
src/views/gradeEvaluation/djdjpg/dayDetailInfo.vue

@@ -0,0 +1,616 @@
+<template>
+  <div class="Evaluationinfo" v-if="!noData">
+    <div class="chart-name">
+      <div class="point point-left"></div>
+      <div class="point point-right"></div>
+    </div>
+    <div class="header">
+      <span class="herder-info" v-for="item of gridDatas" :key="item"
+        >风机编号:{{ item.nemCode }}</span
+      >
+      <span class="herder-info">基础指标</span>
+    </div>
+    <div class="Evaluationinfo_main">
+      <div class="mainleft">
+        <table class="table-form">
+          <tr>
+            <td class="white" v-for="item of gridDatas" :key="item">
+              量化评级:{{ item.dayLevel }}
+            </td>
+          </tr>
+          <tr>
+            <td class="white" v-for="item of gridDatas" :key="item">
+              综合排名:{{ item.dayRank }}
+            </td>
+          </tr>
+        </table>
+        <div class="chart-namess">
+          <div class="point point-left"></div>
+          <div class="point point-right"></div>
+        </div>
+        <div class="chart-body">
+          <normal-radar-chart :height="'500px'" :value="chartDatas" />
+        </div>
+      </div>
+      <div class="mainleft">
+        <table class="table-form">
+          <tr>
+            <td class="white">类型</td>
+            <td class="white">指标</td>
+            <td class="white" v-for="item of gridDatas" :key="item">
+              {{ item.nemCode }}
+            </td>
+            <td class="white" :colspan="gridDatas.length">排名</td>
+            <td class="white" colspan="2">评分</td>
+          </tr>
+          <tr v-for="item of tabEvent === -1 ? column : columnGf" :key="item">
+            <td class="white">{{ item.type }}</td>
+            <td class="white">{{ item.name }}</td>
+            <td class="white colorSty" v-for="row of gridDatas" :key="row">
+              {{ row[item.field] }}
+            </td>
+            <td class="white colorSty" v-for="row of gridDatas" :key="row">
+              {{ row[item.rank] }}
+            </td>
+            <td class="white colorSty" v-for="row of gridDatas" :key="row">
+              {{ row[item.score] }}
+            </td>
+          </tr>
+        </table>
+      </div>
+    </div>
+  </div>
+  <div v-else style="text-align: center">
+    <span style="color: #fff">暂无数据</span>
+  </div>
+</template>
+
+<script>
+import NormalRadarChart from "../../economicsOperation/homePage/components/normal-radar-chart.vue";
+
+import { getApiequipmentinfoDayCompareList } from "@/api/monthlyPerformanceAnalysis";
+export default {
+  components: { NormalRadarChart },
+  props: {
+    chooseList: {
+      type: Array,
+      default: () => [],
+    },
+    tabEvent: {
+      type: Number,
+      default: -1,
+    },
+  },
+  data() {
+    return {
+      tabIndex: 0,
+      gridDatas: [],
+      chartDatas: [],
+      oidObj: {
+        name: "",
+        id: "",
+        charts: [],
+      },
+      tidObj: {
+        name: "",
+        id: "",
+        charts: [],
+      },
+      column: [
+        {
+          name: "发电量",
+          field: "dayfdl",
+          rank: "monthfdl",
+          score: "yearfdl",
+        },
+        {
+          name: "理论发电量",
+          field: "dayllfdl",
+          rank: "monthllfdl",
+          score: "yearllfdl",
+        },
+        {
+          name: "平均功率",
+          field: "daygl",
+          rank: "monthgl",
+          score: "yeargl",
+        },
+        {
+          name: "故障损失电量",
+          field: "daygzssdl",
+          rank: "monthgzssdl",
+          score: "yeargzssdl",
+        },
+        {
+          name: "限电损失电量",
+          field: "dayxdssdl",
+          rank: "monthxdssdl",
+          score: "yearxdssdl",
+        },
+        {
+          name: "检修损失电量",
+          field: "daywhssdl",
+          rank: "monthwhssdl",
+          score: "yearwhssdl",
+        },
+        {
+          name: "故障时间",
+          field: "daygzsj",
+          rank: "monthgzsj",
+          score: "yeargzsj",
+        },
+        {
+          name: "维护时间",
+          field: "daywhsj",
+          rank: "monthwhsj",
+          score: "yearwhsj",
+        },
+        {
+          name: "运行时间",
+          field: "dayyxsj",
+          rank: "monthyxsj",
+          score: "yearyxsj",
+        },
+        {
+          name: "停机时间",
+          field: "daytjsj",
+          rank: "monthtjsj",
+          score: "yeartjsj",
+        },
+        {
+          name: "平均切入风速",
+          field: "dayxfqr",
+          type: "性能",
+          rank: "monthxfqr",
+          score: "yearxfqr",
+        },
+        {
+          name: "性能损失电量",
+          field: "dayxnssdl",
+          type: "性能",
+          rank: "monthxnssdl",
+          score: "yearxnssdl",
+        },
+        {
+          name: "拟合优度",
+          field: "daynhyd",
+          type: "性能",
+          rank: "monthnhyd",
+          score: "yearnhyd",
+        },
+        {
+          name: "功率一致性系数",
+          field: "dayglyzxxs",
+          type: "性能",
+          rank: "monthglyzxxs",
+          score: "yearglyzxxs",
+        },
+        {
+          name: "利用小时",
+          field: "daylyxs",
+          type: "可靠性管理",
+          rank: "monthlyxs",
+          score: "yearlyxs",
+        },
+        {
+          name: "设备可利用率",
+          field: "daysbklyl",
+          type: "可靠性管理",
+          rank: "monthsbklyl",
+          score: "yearsbklyl",
+        },
+        {
+          name: "等效可利用率",
+          field: "daydxkyxs",
+          type: "可靠性管理",
+          rank: "monthdxkyxs",
+          score: "yeardxkyxs",
+        },
+        {
+          name: "有效风时数",
+          field: "dayyxfss",
+          type: "可靠性管理",
+          rank: "monthyxfss",
+          score: "yearyxfss",
+        },
+        {
+          name: "平均风速",
+          field: "dayfs",
+          type: "资源",
+          rank: "monthfs",
+          score: "yearfs",
+        },
+        {
+          name: "静风频率",
+          field: "dayjfpl",
+          type: "资源",
+          rank: "monthjfpl",
+          score: "yearjfpl",
+        },
+      ],
+      columnGf: [
+        {
+          name: "发电量",
+          field: "dayfdl",
+          rank: "monthfdl",
+          score: "yearfdl",
+        },
+        {
+          name: "理论发电量",
+          field: "dayllfdl",
+          rank: "monthllfdl",
+          score: "yearllfdl",
+        },
+        {
+          name: "平均功率",
+          field: "daygl",
+          rank: "monthgl",
+          score: "yeargl",
+        },
+        {
+          name: "故障损失电量",
+          field: "daygzssdl",
+          rank: "monthgzssdl",
+          score: "yeargzssdl",
+        },
+        {
+          name: "限电损失电量",
+          field: "dayxdssdl",
+          rank: "monthxdssdl",
+          score: "yearxdssdl",
+        },
+        {
+          name: "检修损失电量",
+          field: "daywhssdl",
+          rank: "monthwhssdl",
+          score: "yearwhssdl",
+        },
+        {
+          name: "故障时间",
+          field: "daygzsj",
+          rank: "monthgzsj",
+          score: "yeargzsj",
+        },
+        {
+          name: "维护时间",
+          field: "daywhsj",
+          rank: "monthwhsj",
+          score: "yearwhsj",
+        },
+        {
+          name: "运行时间",
+          field: "dayyxsj",
+          rank: "monthyxsj",
+          score: "yearyxsj",
+        },
+        {
+          name: "停机时间",
+          field: "daytjsj",
+          rank: "monthtjsj",
+          score: "yeartjsj",
+        },
+        {
+          name: "平均切入光照",
+          field: "dayxfqr",
+          type: "性能",
+          rank: "monthxfqr",
+          score: "yearxfqr",
+        },
+        {
+          name: "性能损失电量",
+          field: "dayxnssdl",
+          type: "性能",
+          rank: "monthxnssdl",
+          score: "yearxnssdl",
+        },
+        {
+          name: "拟合优度",
+          field: "daynhyd",
+          type: "性能",
+          rank: "monthnhyd",
+          score: "yearnhyd",
+        },
+        {
+          name: "功率一致性系数",
+          field: "dayglyzxxs",
+          type: "性能",
+          rank: "monthglyzxxs",
+          score: "yearglyzxxs",
+        },
+        {
+          name: "利用小时",
+          field: "daylyxs",
+          type: "可靠性管理",
+          rank: "monthlyxs",
+          score: "yearlyxs",
+        },
+        {
+          name: "设备可利用率",
+          field: "daysbklyl",
+          type: "可靠性管理",
+          rank: "monthsbklyl",
+          score: "yearsbklyl",
+        },
+        {
+          name: "等效可利用率",
+          field: "daydxkyxs",
+          type: "可靠性管理",
+          rank: "monthdxkyxs",
+          score: "yeardxkyxs",
+        },
+        {
+          name: "有效光时数",
+          field: "dayyxfss",
+          type: "可靠性管理",
+          rank: "monthyxfss",
+          score: "yearyxfss",
+        },
+        {
+          name: "平均光照",
+          field: "dayfs",
+          type: "资源",
+          rank: "monthfs",
+          score: "yearfs",
+        },
+        // {
+        //   name: "静风频率",
+        //   field: "dayjfpl",
+        //   type: "资源",
+        //   rank: "monthjfpl",
+        //   score: "yearjfpl",
+        // },
+      ],
+      noData: false,
+    };
+  },
+  methods: {
+    init() {
+      this.oidObj.name = this.chooseList[0].nemCode;
+      this.oidObj.id = this.chooseList[0].id;
+      this.oidObj.charts = [];
+      this.tidObj.name = this.chooseList[1].nemCode;
+      this.tidObj.id = this.chooseList[1].id;
+      this.tidObj.charts = [];
+      this.getDetailInfo();
+    },
+    showName(val) {
+      let str = "";
+      str = val.substring(val.indexOf("_F") + 3, val.length);
+      return str;
+    },
+    // 获取对比详情数据
+    async getDetailInfo() {
+      this.noData = false;
+      let params = {
+        oid: this.oidObj.id,
+        tid: this.tidObj.id,
+        types: this.tabIndex,
+      };
+      const { data: datas } = await getApiequipmentinfoDayCompareList(params);
+      if (datas && datas.data) {
+        if (datas.data.charts) {
+          if (
+            datas.data.charts[this.oidObj.name] &&
+            datas.data.charts[this.oidObj.name].length > 0
+          ) {
+            datas.data.charts[this.oidObj.name].forEach((it, index) => {
+              this.oidObj.charts.push(it);
+            });
+          }
+          if (
+            datas.data.charts[this.tidObj.name] &&
+            datas.data.charts[this.tidObj.name].length > 0
+          ) {
+            datas.data.charts[this.tidObj.name].forEach((it, index) => {
+              this.tidObj.charts.push(it);
+            });
+          }
+          this.changeChartsData();
+        } else {
+          this.noData = true;
+        }
+        if (datas.data.data.length > 0) {
+          this.gridDatas = datas.data.data;
+          // this.oidObj.datas = datas.data.data[0]
+          // this.tidObj.datas = datas.data.data[1]
+        } else {
+          this.noData = true;
+        }
+      }
+    },
+    //整理charts数据
+    changeChartsData() {
+      let valArr = [];
+      if (this.tabEvent == -1) {
+        valArr = [
+          "平均切入风速",
+          "性能损失电量",
+          "拟合优度",
+          "功率一致性系数",
+          "利用小时",
+          "设备可利用率",
+          "等效可利用系数",
+          "有效风时数",
+          "平均风速",
+          "静风频率",
+        ];
+      } else {
+        valArr = [
+          "平均切入光照",
+          "性能损失电量",
+          "拟合优度",
+          "功率一致性系数",
+          "利用小时",
+          "设备可利用率",
+          "等效可利用系数",
+          "有效光时数",
+          "平均光照",
+        ];
+      }
+      const service1 = {
+        name: this.oidObj.name,
+        value: [],
+      };
+      const service2 = {
+        name: this.tidObj.name,
+        value: [],
+      };
+      for (let i = 0; i < valArr.length; i++) {
+        let it = valArr[i];
+        for (let j = 0; j < this.oidObj.charts.length; j++) {
+          let ic = this.oidObj.charts[j];
+          if (it === ic.target) {
+            service1.value.push(ic.data);
+          }
+        }
+        for (let k = 0; k < this.tidObj.charts.length; k++) {
+          let iv = this.tidObj.charts[k];
+          if (it === iv.target) {
+            service2.value.push(iv.data);
+          }
+        }
+      }
+      const chartData = [
+        {
+          indicator: valArr,
+          data: [service1],
+        },
+        {
+          indicator: valArr,
+          data: [service2],
+        },
+      ];
+      this.chartDatas = chartData;
+    },
+  },
+};
+</script>
+
+<style lang="less">
+.Evaluationinfo {
+  .header {
+    display: flex;
+    width: 100%;
+    height: 40px;
+    line-height: 40px;
+    background: rgba(83, 89, 104, 0.3);
+    font-family: MicrosoftYaHei;
+    .herder-info {
+      flex: 1 0 25%;
+      color: #a5a3a3;
+      font-family: MicrosoftYaHei;
+      text-align: center;
+      font-size: 14px;
+      font-weight: 400;
+      &:last-child {
+        flex: 1 0 50%;
+      }
+    }
+  }
+  .Evaluationinfo_main {
+    display: flex;
+    .mainleft {
+      flex: 0 0 50%;
+      display: flex;
+      flex-direction: column;
+      .table-form {
+        width: 100%;
+        border-collapse: collapse;
+        tr {
+          background: transparent;
+          &:nth-child(2n) {
+            background: rgba(83, 89, 104, 0.1);
+          }
+          td {
+            padding: 10px;
+            border: 0px;
+            font-size: 12px;
+            text-align: center;
+            &.text {
+              min-width: 13vh;
+            }
+            &.value {
+              min-width: 6vh;
+            }
+            &.unit {
+              min-width: 40px;
+            }
+          }
+        }
+        .white {
+          color: #b3b3b3;
+          font-size: 14px;
+          font-family: MicrosoftYaHei;
+        }
+        .colorSty {
+          text-align: right;
+          color: #05bb4c;
+          font-size: 14px;
+          font-family: MicrosoftYaHei;
+        }
+      }
+      .chart-namess {
+        height: 1px;
+        margin-top: 10px;
+        border-bottom: 1px solid rgba(153, 153, 153, 1);
+        .point {
+          width: 6px;
+          height: 1px;
+          background-color: #ffffff;
+          position: absolute;
+          &.point-left {
+            left: 0;
+          }
+
+          &.point-right {
+            right: 50%;
+          }
+
+          &.top {
+            top: -1px;
+          }
+
+          &.bottom {
+            bottom: 0px;
+          }
+        }
+      }
+      .chart-body {
+        flex-grow: 1;
+        display: flex;
+        align-items: center;
+      }
+    }
+    .right {
+      flex: 0 0 50%;
+    }
+  }
+  .chart-name {
+    height: 1px;
+    margin-bottom: 10px;
+    border-bottom: 1px solid rgba(153, 153, 153, 0.5);
+    .point {
+      width: 6px;
+      height: 1px;
+      background-color: #ffffff;
+      position: absolute;
+
+      &.point-left {
+        left: 0;
+      }
+
+      &.point-right {
+        right: 1px;
+      }
+
+      &.top {
+        top: -1px;
+      }
+
+      &.bottom {
+        bottom: 0px;
+      }
+    }
+  }
+}
+</style>

+ 195 - 0
src/views/gradeEvaluation/djdjpg/historyDetail.vue

@@ -0,0 +1,195 @@
+<template>
+  <div class="historyEvaluation">
+    <div class="historyEvaluation_top">
+      <el-date-picker
+        style="width: 450px"
+        v-model="pickerTimer"
+        type="daterange"
+        range-separator="至"
+        start-placeholder="开始时间"
+        end-placeholder="结束时间"
+        size="mini"
+        format="YYYY/MM/DD"
+        value-format="YYYY-MM-DD"
+      />
+      <el-button round size="mini" class="buttons" @click="seachData"
+        >搜 索</el-button
+      >
+    </div>
+    <div class="economicTable1">
+      <el-table
+        :data="historyEvaluationData"
+        stripe
+        size="mini"
+        height="100%"
+        ref="historysingleTable"
+        style="width: 100%"
+      >
+        <el-table-column
+          align="center"
+          prop="nemCode"
+          label="设备编号"
+          width="150"
+        >
+        </el-table-column>
+        <el-table-column
+          align="center"
+          prop="recordDate"
+          label="日期"
+          width="150"
+        >
+        </el-table-column>
+        <el-table-column
+          v-for="(item, index) in tabEvent === -1 ? tableHeader : tableHeaderGf"
+          :key="index"
+          sortable
+          :prop="item.code"
+          :label="item.title"
+          align="right"
+          header-align="center"
+        >
+          <template #header="scope">
+            <div>
+              {{ scope.column.label.slice(0, scope.column.label.indexOf("(")) }}
+            </div>
+            <div>
+              {{ scope.column.label.slice(scope.column.label.indexOf("(")) }}
+            </div>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+  </div>
+</template>
+
+<script>
+import { getApiequipmentinfoDayHistoryList } from "@/api/monthlyPerformanceAnalysis";
+import dataJson from "./dataHistoryJson.json";
+export default {
+  data() {
+    return {
+      hiswindVal: "",
+      tabIndex: 0,
+      tabEvent: 0,
+      pickerTimer: [],
+      historyEvaluationData: [],
+      tableHeader: [
+        { title: "发电量(kWh)", code: "dayfdl" },
+        { title: "理论发电量(kWh)", code: "dayllfdl" },
+        { title: "平均风速(m/s)", code: "dayfs" },
+        { title: "平均功率(KW)", code: "daygl" },
+        { title: "故障损失(kWh)", code: "daygzssdl" },
+        { title: "限电损失(kWh)", code: "dayxdssdl" },
+        { title: "检修损失(kWh)", code: "daywhssdl" },
+        { title: "性能损失(kWh)", code: "dayxnssdl" },
+        { title: "利用小时数(h)", code: "daylyxs" },
+        { title: "拟合优度(%)", code: "daynhyd" },
+        { title: "可利用率(%)", code: "daysbklyl" },
+        { title: "可用系数(%)", code: "daydxkyxs" },
+        { title: "有效风时数(h)", code: "dayyxfss" },
+        { title: "平均切入(m/s)", code: "dayxfqr" },
+        { title: "静风频率(%)", code: "dayjfpl" },
+        { title: "功率一致性(%)", code: "dayglyzxxs" },
+      ],
+      tableHeaderGf: [
+        { title: "发电量(kWh)", code: "dayfdl" },
+        { title: "理论发电量(kWh)", code: "dayllfdl" },
+        { title: "光照强度(W/㎡)", code: "dayfs" },
+        { title: "平均功率(KW)", code: "daygl" },
+        { title: "故障损失(kWh)", code: "daygzssdl" },
+        { title: "限电损失(kWh)", code: "dayxdssdl" },
+        { title: "检修损失(kWh)", code: "daywhssdl" },
+        { title: "性能损失(kWh)", code: "dayxnssdl" },
+        { title: "利用小时数(h)", code: "daylyxs" },
+        { title: "拟合优度(%)", code: "daynhyd" },
+        { title: "可利用率(%)", code: "daysbklyl" },
+        { title: "可用系数(%)", code: "daydxkyxs" },
+        { title: "有效光时数(h)", code: "dayyxfss" },
+        { title: "功率一致性(%)", code: "dayglyzxxs" },
+      ],
+    };
+  },
+  methods: {
+    init(row) {
+      this.hiswindVal = row.windturbineId;
+      this.getTableData();
+    },
+    seachData() {
+      this.getTableData();
+    },
+    async getTableData() {
+      let params = {
+        beginDate: this.pickerTimer[0],
+        endDate: this.pickerTimer[1],
+        types: this.tabIndex,
+        wtId: this.hiswindVal,
+        type: this.tabEvent,
+      };
+      this.historyEvaluationData = dataJson.data.data;
+      const { data: datas } = await getApiequipmentinfoDayHistoryList(params);
+      this.historyEvaluationData = datas.data;
+    },
+    //转换时间
+    getchangeTime(date) {
+      var y = date.getFullYear();
+      var m = date.getMonth() + 1;
+      m = m < 10 ? "0" + m : m;
+      var d = date.getDate();
+      d = d < 10 ? "0" + d : d;
+      return y + "-" + m + "-" + d;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.historyEvaluation {
+  height: 100%;
+  .historyEvaluation_top {
+    display: flex;
+    padding-bottom: 25px;
+
+    .buttons {
+      background-color: rgba(5, 187, 76, 0.2);
+      border: 1px solid #3b6c53;
+      color: #b3b3b3;
+      font-size: 14px;
+      margin-left: 10px;
+      &:hover {
+        background-color: rgba(5, 187, 76, 0.5);
+        color: #ffffff;
+      }
+    }
+    .el-date-editor--daterange ::v-deep {
+      background: transparent;
+      border: 1px solid #2a374f;
+      border-radius: 30px;
+      height: 25px;
+      .el-range-input {
+        background: transparent;
+        color: #fff;
+      }
+      .el-range-separator {
+        width: 10%;
+        color: #fff;
+        position: relative;
+      }
+    }
+  }
+  .economicTable1 {
+    height: calc(100% - 68px);
+    background: rgba(0, 0, 0, 0.4);
+  }
+}
+</style>
+<style lang="less">
+.el-overlay {
+  .el-overlay-dialog {
+    .EvaluationhistoryModel {
+      .el-dialog__body {
+        height: calc(100% - 65px);
+      }
+    }
+  }
+}
+</style>

+ 755 - 0
src/views/gradeEvaluation/djdjpg/index.vue

@@ -0,0 +1,755 @@
+<template>
+  <div class="comprehensiveEvaluation">
+    <div class="Evaluation_topall">
+      <div class="Evaluation_top">
+        <el-select
+          size="mini"
+          v-model="companyVal"
+          placeholder="请选择"
+          @change="changeCompan"
+        >
+          <el-option
+            v-for="item in companyOptions"
+            :key="item.id"
+            :label="item.aname"
+            :value="item.id"
+          >
+          </el-option>
+        </el-select>
+        <div class="station">
+          场站:
+          <el-select
+            size="mini"
+            v-model="stationVal"
+            placeholder="请选择"
+            clearable
+            @change="changeStation"
+          >
+            <el-option
+              v-for="item in stationOptions"
+              :key="item.id"
+              :label="item.aname"
+              :value="item.id"
+            >
+            </el-option>
+          </el-select>
+        </div>
+        <div class="station">
+          时间:
+          <div class="">
+            <el-date-picker
+              size="mini"
+              v-model="pickerTimer"
+              type="date"
+              value-format="YYYY-MM-DD"
+              placeholder="选择日期"
+              popper-class="date-select"
+              @change="historyTimer = pickerTimer"
+            >
+            </el-date-picker>
+            <!-- <el-date-picker v-if="tabIndex == 0"
+              v-if="tabIndex == 1"
+              size="mini"
+              v-model="pickerTimer"
+              type="month"
+              value-format="YYYY-MM"
+              placeholder="选择月份"
+              popper-class="date-select"
+            >
+            </el-date-picker>
+            <el-date-picker
+              v-if="tabIndex == 2"
+              size="mini"
+              v-model="pickerTimer"
+              type="year"
+              value-format="YYYY"
+              placeholder="选择年份"
+              popper-class="date-select"
+            >
+            </el-date-picker> -->
+          </div>
+        </div>
+        <div class="but">
+          <el-button round size="mini" class="buttons" @click="seachData"
+            >搜 索</el-button
+          >
+          <!-- <el-button
+            round
+            size="mini"
+            class="buttons"
+            @click="contrastFn"
+            :disabled="chooseList.length === 2 ? false : true"
+            >信息对比</el-button
+          > -->
+        </div>
+      </div>
+    </div>
+    <div
+      style="
+        background: rgba(0, 0, 0, 0.4);
+        height: calc(100% - 39px);
+        padding-bottom: 15px;
+      "
+    >
+      <div class="data-bodys">
+        <div class="Evaluation_title clearfix">
+          <div class="leftContent" :data-type="$store.state.moreSty">
+            <span>单机等级性能评估</span>
+          </div>
+        </div>
+        <el-tabs
+          type="border-card"
+          class="detailInfoTabs"
+          v-model="activeTabName"
+          @tab-click="tabClick"
+        >
+          <el-tab-pane label="风机日信息量化评级管理" name="rxx">
+            <el-table
+              :data="EvaluationData"
+              stripe
+              @selection-change="handleCurrentChange"
+              size="mini"
+              height="88vh"
+              ref="Eval_table"
+              style="width: 100%"
+            >
+              <el-table-column type="selection" width="60" align="center">
+              </el-table-column>
+              <el-table-column prop="nemCode" label="设备编号" align="center">
+              </el-table-column>
+              <el-table-column prop="dayLevel" label="等级" align="center">
+              </el-table-column>
+              <el-table-column
+                prop="dayRank"
+                label="综合排名"
+                sortable
+                align="center"
+              >
+              </el-table-column>
+              <el-table-column
+                v-for="(item, index) in tabEvent === -1
+                  ? tableHeader
+                  : tableHeaderGf"
+                :key="index"
+                sortable
+                :prop="item.code"
+                :label="item.title"
+                align="right"
+                header-align="center"
+                show-overflow-tooltip
+              >
+                <template #header="scope">
+                  <div>
+                    {{
+                      scope.column.label.slice(
+                        0,
+                        scope.column.label.indexOf("(")
+                      )
+                    }}
+                  </div>
+                  <div>
+                    {{
+                      scope.column.label.slice(scope.column.label.indexOf("("))
+                    }}
+                  </div>
+                </template>
+              </el-table-column>
+              <el-table-column label="操作" align="center">
+                <template #default="scope">
+                  <span
+                    @click="seachHistoryData(scope.row)"
+                    style="cursor: pointer"
+                    :style="
+                      $store.state.moreSty === 'greenSty'
+                        ? 'color: #05bb4c'
+                        : 'color: #67b9ff'
+                    "
+                    >历史</span
+                  >
+                </template>
+              </el-table-column>
+            </el-table>
+            <div style="text-align: right">
+              <el-pagination
+                @current-change="handlePageChange"
+                :current-page="page.currentPage"
+                :page-size="page.pagesize"
+                @size-change="handleSizeChange"
+                :page-sizes="[21, 50, 100, 500]"
+                layout="total, sizes, prev, pager, next, jumper"
+                :total="page.total"
+              >
+              </el-pagination>
+            </div>
+          </el-tab-pane>
+          <el-tab-pane label="风机月信息量化评级管理" name="yxx">
+            <el-table
+              :data="EvaluationData"
+              stripe
+              @selection-change="handleCurrentChange"
+              size="mini"
+              height="88vh"
+              ref="Eval_table"
+              style="width: 100%"
+            >
+              <el-table-column type="selection" width="60" align="center">
+              </el-table-column>
+              <el-table-column prop="nemCode" label="设备编号" align="center">
+              </el-table-column>
+              <el-table-column prop="dayLevel" label="等级" align="center">
+              </el-table-column>
+              <el-table-column
+                prop="dayRank"
+                label="综合排名"
+                sortable
+                align="center"
+              >
+              </el-table-column>
+              <el-table-column
+                v-for="(item, index) in tabEvent === -1
+                  ? tableHeader
+                  : tableHeaderGf"
+                :key="index"
+                sortable
+                :prop="item.code"
+                :label="item.title"
+                align="right"
+                header-align="center"
+                show-overflow-tooltip
+              >
+                <template #header="scope">
+                  <div>
+                    {{
+                      scope.column.label.slice(
+                        0,
+                        scope.column.label.indexOf("(")
+                      )
+                    }}
+                  </div>
+                  <div>
+                    {{
+                      scope.column.label.slice(scope.column.label.indexOf("("))
+                    }}
+                  </div>
+                </template>
+              </el-table-column>
+              <el-table-column label="操作" align="center">
+                <template #default="scope">
+                  <span
+                    @click="seachHistoryData(scope.row)"
+                    style="cursor: pointer"
+                    :style="
+                      $store.state.moreSty === 'greenSty'
+                        ? 'color: #05bb4c'
+                        : 'color: #67b9ff'
+                    "
+                    >历史</span
+                  >
+                </template>
+              </el-table-column>
+            </el-table>
+            <div style="text-align: right">
+              <el-pagination
+                @current-change="handlePageChange"
+                :current-page="page.currentPage"
+                :page-size="page.pagesize"
+                @size-change="handleSizeChange"
+                :page-sizes="[21, 50, 100, 500]"
+                layout="total, sizes, prev, pager, next, jumper"
+                :total="page.total"
+              >
+              </el-pagination>
+            </div>
+          </el-tab-pane>
+          <el-tab-pane label="风机年信息量化评级管理" name="nxx">
+            <el-table
+              :data="EvaluationData"
+              stripe
+              @selection-change="handleCurrentChange"
+              size="mini"
+              height="88vh"
+              ref="Eval_table"
+              style="width: 100%"
+            >
+              <el-table-column type="selection" width="60" align="center">
+              </el-table-column>
+              <el-table-column prop="nemCode" label="设备编号" align="center">
+              </el-table-column>
+              <el-table-column prop="dayLevel" label="等级" align="center">
+              </el-table-column>
+              <el-table-column
+                prop="dayRank"
+                label="综合排名"
+                sortable
+                align="center"
+              >
+              </el-table-column>
+              <el-table-column
+                v-for="(item, index) in tabEvent === -1
+                  ? tableHeader
+                  : tableHeaderGf"
+                :key="index"
+                sortable
+                :prop="item.code"
+                :label="item.title"
+                align="right"
+                header-align="center"
+                show-overflow-tooltip
+              >
+                <template #header="scope">
+                  <div>
+                    {{
+                      scope.column.label.slice(
+                        0,
+                        scope.column.label.indexOf("(")
+                      )
+                    }}
+                  </div>
+                  <div>
+                    {{
+                      scope.column.label.slice(scope.column.label.indexOf("("))
+                    }}
+                  </div>
+                </template>
+              </el-table-column>
+              <el-table-column label="操作" align="center">
+                <template #default="scope">
+                  <span
+                    @click="seachHistoryData(scope.row)"
+                    style="cursor: pointer"
+                    :style="
+                      $store.state.moreSty === 'greenSty'
+                        ? 'color: #05bb4c'
+                        : 'color: #67b9ff'
+                    "
+                    >历史</span
+                  >
+                </template>
+              </el-table-column>
+            </el-table>
+            <div style="text-align: right">
+              <el-pagination
+                @current-change="handlePageChange"
+                :current-page="page.currentPage"
+                :page-size="page.pagesize"
+                @size-change="handleSizeChange"
+                :page-sizes="[21, 50, 100, 500]"
+                layout="total, sizes, prev, pager, next, jumper"
+                :total="page.total"
+              >
+              </el-pagination>
+            </div>
+          </el-tab-pane>
+        </el-tabs>
+      </div>
+    </div>
+  </div>
+  <el-dialog
+    v-model="dialogVisible"
+    width="100%"
+    custom-class="EvaluationhistoryModel"
+    :close-on-click-modal="false"
+    fullscreen
+  >
+    <template #title>
+      <div class="dialog-title">
+        <div class="title">{{ dialogTitle }}</div>
+      </div>
+    </template>
+    <div style="height: 100%">
+      <history-detail ref="windhistoryDetail"> </history-detail>
+    </div>
+  </el-dialog>
+  <el-dialog
+    v-model="contrastVisible"
+    width="70%"
+    top="120px"
+    custom-class="contrastModal"
+    :close-on-click-modal="false"
+  >
+    <template #title>
+      <div class="dialog-title">
+        <div class="title">信息对比</div>
+      </div>
+    </template>
+    <div class="dialog-body">
+      <img class="dialog-img" src="@assets/imgs/dialog.png" />
+      <day-detail-info
+        :chooseList="chooseList"
+        :tabEvent="tabEvent"
+        ref="MessageContrast"
+      ></day-detail-info>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import dayjs from "dayjs";
+import dataJson from "./dataJson.json";
+import historyDetail from "./historyDetail.vue";
+import dayDetailInfo from "./dayDetailInfo.vue";
+export default {
+  components: {
+    historyDetail,
+    dayDetailInfo,
+  },
+
+  computed: {
+    pageHeight() {
+      return {
+        height: document.documentElement.clientHeight - 130 + "px",
+      };
+    },
+  },
+
+  data() {
+    return {
+      tabIndex: 1,
+      companyVal: "",
+      companyOptions: [],
+      stationVal: "",
+      stationOptions: [],
+      pickerTimer: "",
+      EvaluationData: [],
+      tableHeader: [
+        { title: "发电量(kWh)", code: "dayfdl" },
+        { title: "理论发电量(kWh)", code: "dayllfdl" },
+        { title: "平均风速(m/s)", code: "dayfs" },
+        { title: "平均功率(KW)", code: "daygl" },
+        { title: "故障损失(kWh)", code: "daygzssdl" },
+        { title: "限电损失(kWh)", code: "dayxdssdl" },
+        { title: "检修损失(kWh)", code: "daywhssdl" },
+        { title: "性能损失(kWh)", code: "dayxnssdl" },
+        { title: "利用小时数(h)", code: "daylyxs" },
+        { title: "拟合优度(%)", code: "daynhyd" },
+        { title: "可利用率(%)", code: "daysbklyl" },
+        { title: "等效可用系数(%)", code: "daydxkyxs" },
+        { title: "有效风时数(h)", code: "dayyxfss" },
+        { title: "平均切入(m/s)", code: "dayxfqr" },
+        { title: "静风频率(%)", code: "dayjfpl" },
+        { title: "功率一致性(%)", code: "dayglyzxxs" },
+      ],
+      tableHeaderGf: [
+        { title: "发电量(kWh)", code: "dayfdl" },
+        { title: "理论发电量(kWh)", code: "dayllfdl" },
+        { title: "光照强度(W/㎡)", code: "dayfs" },
+        { title: "平均功率(KW)", code: "daygl" },
+        { title: "故障损失(kWh)", code: "daygzssdl" },
+        { title: "限电损失(kWh)", code: "dayxdssdl" },
+        { title: "检修损失(kWh)", code: "daywhssdl" },
+        { title: "性能损失(kWh)", code: "dayxnssdl" },
+        { title: "利用小时数(h)", code: "daylyxs" },
+        { title: "拟合优度(%)", code: "daynhyd" },
+        { title: "可利用率(%)", code: "daysbklyl" },
+        { title: "等效可用系数(%)", code: "daydxkyxs" },
+        { title: "有效光时数(h)", code: "dayyxfss" },
+        { title: "功率一致性(%)", code: "dayglyzxxs" },
+      ],
+      dialogVisible: false,
+      dialogTitle: "",
+      chooseList: [],
+      contrastVisible: false,
+      tabEvent: -1,
+      tabOptions: [
+        { id: -1, name: "风电" },
+        { id: -2, name: "光伏" },
+      ],
+      page: {
+        currentPage: 1,
+        pagesize: 21,
+        total: 0,
+      },
+      historyTimer: "",
+      activeTabName: "",
+    };
+  },
+
+  created() {
+    this.EvaluationData = dataJson.data.data.records;
+    this.page.total = dataJson.data.data.total;
+  },
+
+  mounted() {
+    this.$nextTick(() => {
+      this.activeTabName = "rxx";
+    });
+  },
+
+  methods: {
+    dataChange(res) {
+      if (res) {
+        let data = [];
+        res.data.forEach((item, index) => {
+          data[index] = {
+            unit: item.wpid,
+            five: item.wfz,
+            fives: item.wfzfwl,
+            ten: item.sfz,
+            tens: item.sfzfwl,
+            fifteen: item.swfz,
+            fifteens: item.swfzfwl,
+            twenty: item.esfz,
+            twentys: item.esfzfwl,
+            is_light: false,
+          };
+        });
+        this.tableData = data;
+      }
+    },
+
+    seachHistoryData(row) {
+      this.dialogVisible = true;
+      this.dialogTitle = "历史数据查询";
+      this.$nextTick(() => {
+        let startT =
+          new Date(this.historyTimer).getTime() - 10 * 24 * 60 * 60 * 1000;
+        this.$refs.windhistoryDetail.pickerTimer = [
+          this.getchangeTime(new Date(startT)),
+          this.historyTimer,
+        ];
+        this.$refs.windhistoryDetail.tabIndex = this.tabIndex * 1 + 1;
+        this.$refs.windhistoryDetail.tabEvent = this.tabEvent;
+        this.$refs.windhistoryDetail.init(row);
+      });
+    },
+
+     //转换时间
+    getchangeTime(date) {
+      var y = date.getFullYear();
+      var m = date.getMonth() + 1;
+      m = m < 10 ? "0" + m : m;
+      var d = date.getDate();
+      d = d < 10 ? "0" + d : d;
+      return y + "-" + m + "-" + d;
+    },
+  },
+};
+</script>
+<style lang="less" scoped>
+.comprehensiveEvaluation {
+  padding: 0 20px;
+  height: 100%;
+
+  .Evaluation_title {
+    .leftContent[data-type~="greenSty"] {
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+    }
+    .leftContent[data-type~="blueSty"] {
+      background: url("~@/assets/imgs/title_left_bg.png") no-repeat;
+    }
+    .leftContent {
+      width: 242px;
+      height: 41px;
+      line-height: 41px;
+      span {
+        font-size: 16px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #05bb4c;
+        margin-left: 25px;
+      }
+    }
+  }
+  .clearfix::after {
+    content: "";
+    clear: both;
+    height: 0;
+    line-height: 0;
+    visibility: hidden;
+    display: block;
+  }
+  .clearfix {
+    zoom: 1;
+  }
+  .Evaluation_topall {
+    display: flex;
+    justify-content: space-between;
+    .selections {
+      position: relative;
+      right: 120px;
+      display: flex;
+      margin-top: 10px;
+      .selections_btn {
+        flex: 0 0 55px;
+        text-align: center;
+        height: 33px;
+        line-height: 33px;
+        margin-right: 8px;
+        color: #b9b9b9;
+        font-size: 1.296vh;
+        background: fade(#606769, 20);
+        border: 1px solid fade(#606769, 20);
+        border-radius: 20px;
+        &:hover,
+        &.active {
+          background: fade(#05bb4c, 80);
+          border: 1px solid #05bb4c;
+          color: #fff;
+          cursor: pointer;
+        }
+      }
+    }
+    .Evaluation_top {
+      display: flex;
+      flex-direction: row;
+      align-items: center;
+      padding-top: 10px;
+      padding-bottom: 10px;
+
+      .station {
+        display: flex;
+        flex-direction: row;
+        align-items: center;
+        font-size: 14px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #b3b3b3;
+        margin-right: 10px;
+        margin-left: 10px;
+      }
+
+      .search-input {
+        margin-left: 10px;
+        .el-input__inner {
+          width: 175px;
+        }
+        .el-input__suffix {
+          right: -50px;
+        }
+      }
+      .tabCut {
+        display: inline-block;
+        margin: 0 10px;
+
+        div {
+          display: inline-block;
+          width: 60px;
+          height: 27px;
+          border: 1px solid #274934;
+          text-align: center;
+          line-height: 25px;
+          cursor: pointer;
+        }
+
+        div:nth-child(1) {
+          border-radius: 13px 0px 0px 13px;
+          border-right-width: 0;
+        }
+
+        div:nth-child(2) {
+          border-radius: 0px 13px 13px 0px;
+        }
+
+        .active {
+          background-color: rgba(5, 187, 76, 0.9);
+          color: #fff;
+        }
+      }
+
+      .but {
+        display: flex;
+        flex-direction: row;
+        align-content: center;
+        margin-left: 20px;
+        .buttons {
+          background-color: rgba(5, 187, 76, 0.2);
+          border: 1px solid #3b6c53;
+          color: #b3b3b3;
+          font-size: 14px;
+
+          &:hover,
+          &.active {
+            background-color: rgba(5, 187, 76, 0.5);
+            color: #ffffff;
+          }
+        }
+      }
+    }
+  }
+  .economicTable1 {
+    height: calc(100% - 40px);
+    .el-table--mini ::v-deep {
+      .el-table__header-wrapper {
+        .el-checkbox {
+          display: none;
+        }
+      }
+      .el-table__body-wrapper {
+        .el-checkbox {
+          .el-checkbox__input {
+            display: block;
+          }
+        }
+      }
+    }
+
+    .historyBtn {
+      background: #43516b;
+      border-radius: 15px;
+      margin-top: 5px;
+      border: 1px solid #43516b;
+      span {
+        color: #fff;
+      }
+    }
+  }
+  .el-overlay {
+    .el-overlay-dialog {
+      overflow-y: hidden !important;
+      .EvaluationhistoryModel {
+        margin-top: 0 !important;
+        .el-dialog__body {
+          height: calc(100% - 51px - 50px);
+        }
+      }
+      .contrastModal {
+        .el-dialog__header {
+          border: none;
+        }
+        .el-dialog__body {
+          padding-top: 10px;
+        }
+      }
+    }
+  }
+
+  .el-picker__popper .el-date-range-picker__header .el-picker-panel__icon-btn {
+    color: #fff;
+  }
+  .el-picker__popper .el-date-table .in-range div {
+    background: #43516b;
+  }
+}
+</style>
+<style lang="less">
+.comprehensiveEvaluation {
+  .detailInfoTabs {
+    background: #081410;
+    color: #fff;
+
+    .el-checkbox__inner {
+      width: 12px;
+      height: 12px;
+      padding: 0 6px;
+    }
+
+    .el-tabs__header {
+      background: #081410;
+      color: #fff;
+
+      .el-tabs__item {
+        border: 0;
+
+        &.is-active {
+          background: transparent;
+        }
+
+        &::after {
+          width: 90% !important;
+          left: 5% !important;
+        }
+      }
+    }
+  }
+}
+</style>

+ 11 - 0
src/views/gradeEvaluation/index.vue

@@ -0,0 +1,11 @@
+<template>
+  <router-view />
+</template>
+
+<script>
+export default {
+  name: "gradeEvaluation", //风电分析
+};
+</script>
+
+<style></style>

+ 350 - 0
src/views/indexRanking/fhph/index.vue

@@ -0,0 +1,350 @@
+<template>
+  <div class="comprehensiveEvaluation">
+    <div class="Evaluation_topall">
+      <div class="Evaluation_top">
+        <div class="station">
+          类型:
+          <el-select size="mini" v-model="lx" placeholder="请选择" clearable>
+            <el-option
+              v-for="item in lxArray"
+              :key="item.id"
+              :label="item.aname"
+              :value="item.id"
+            >
+            </el-option>
+          </el-select>
+        </div>
+        <div class="station">
+          场站:
+          <el-select size="mini" v-model="wp" placeholder="请选择" clearable>
+            <el-option
+              v-for="item in wpArray"
+              :key="item.id"
+              :label="item.aname"
+              :value="item.id"
+            >
+            </el-option>
+          </el-select>
+        </div>
+        <div class="station">
+          日期:
+          <el-date-picker
+            style="width: 400px"
+            v-model="date"
+            type="daterange"
+            range-separator="至"
+            start-placeholder="开始时间"
+            end-placeholder="结束时间"
+            size="mini"
+            format="YYYY-MM-DD"
+            value-format="YYYY-MM-DD"
+          />
+        </div>
+        <div class="but">
+          <el-button round size="mini" class="buttons" @click="exportExcel">
+            导 出
+          </el-button>
+        </div>
+      </div>
+    </div>
+    <div
+      style="
+        background: rgba(0, 0, 0, 0.4);
+        height: calc(100% - 39px);
+        padding-bottom: 15px;
+      "
+    >
+      <div class="Evaluation_title clearfix">
+        <div class="leftContent" :data-type="$store.state.moreSty">
+          <span>负荷排行榜</span>
+        </div>
+      </div>
+      <el-table
+        :data="zfdlph"
+        stripe
+        size="mini"
+        height="90vh"
+        style="width: 100%; margin-bottom: 20px"
+      >
+        <el-table-column label="负荷排行榜">
+          <el-table-column align="center" prop="fc" label="风场" />
+          <el-table-column align="center" prop="bh" label="编号" />
+          <el-table-column align="center" prop="qsrq" label="起始日期" />
+          <el-table-column align="center" prop="jzrq" label="截止日期" />
+          <el-table-column align="center" prop="pjfs" label="平均风速" />
+          <el-table-column align="center" prop="pjgl" label="平均功率" />
+          <el-table-column align="center" prop="fhl" label="负荷率" />
+        </el-table-column>
+      </el-table>
+    </div>
+  </div>
+</template>
+
+<script>
+import dayjs from "dayjs";
+import AreaLineChart from "@com/chart/combination/area-line-chart.vue";
+export default {
+  components: {
+    AreaLineChart,
+  },
+  data() {
+    return {
+      lx: "",
+      lxArray: [],
+      wp: "",
+      wpArray: [],
+      date: [],
+      zfdlph: [
+        {
+          fc: "XX风电场",
+          bh: "#01",
+          qsrq: "2025-5-16 10:51:12",
+          jzrq: "2025-5-16 10:51:12",
+          pjfs: 15,
+          pjgl: 4822.59,
+          fhl: 20.0,
+        },
+        {
+          fc: "XX风电场",
+          bh: "#01",
+          qsrq: "2025-5-16 10:51:12",
+          jzrq: "2025-5-16 10:51:12",
+          pjfs: 15,
+          pjgl: 4822.59,
+          fhl: 20.0,
+        },
+        {
+          fc: "XX风电场",
+          bh: "#01",
+          qsrq: "2025-5-16 10:51:12",
+          jzrq: "2025-5-16 10:51:12",
+          pjfs: 15,
+          pjgl: 4822.59,
+          fhl: 20.0,
+        },
+      ],
+      dialogVisible: false,
+    };
+  },
+
+  created() {},
+
+  mounted() {},
+
+  methods: {
+    getSelect(value) {
+      console.log(1122, value);
+    },
+
+    renderChaet() {
+      this.dialogVisible = true;
+      this.initFjyxqkxxChart();
+    },
+
+    exportExcel() {
+      if (this.tjsjfx.length > 0) {
+        let tH = [];
+        this.tHeader.forEach((ele) => {
+          tH.push(ele.label);
+        });
+        utils.exportExcel(this.$refs.exportExcelRef.$el, tH, `拟合优度排行`);
+      }
+    },
+    initFjyxqkxxChart() {
+      let arr = ["实发功率", "应发功率"];
+      let fjyxqkxxChartLineData = [];
+      arr.forEach((ele) => {
+        let item = {
+          text: ele,
+          value: [],
+        };
+        for (let i = 50; i > -1; i--) {
+          item.value.push({
+            text: dayjs()
+              .add(Number(`-${i}`), "day")
+              .format("YYYY-MM-DD"),
+            value: this.BASE.randomNum(0, 500),
+          });
+        }
+        fjyxqkxxChartLineData.push(item);
+      });
+      this.fjyxqkxxChartLineData = fjyxqkxxChartLineData;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.comprehensiveEvaluation {
+  padding: 0 20px;
+  height: 100%;
+
+  .Evaluation_title {
+    .leftContent[data-type~="greenSty"] {
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+    }
+    .leftContent[data-type~="blueSty"] {
+      background: url("~@/assets/imgs/title_left_bg.png") no-repeat;
+    }
+    .leftContent {
+      width: 242px;
+      height: 41px;
+      line-height: 41px;
+      span {
+        font-size: 16px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #05bb4c;
+        margin-left: 25px;
+      }
+    }
+  }
+  .clearfix::after {
+    content: "";
+    clear: both;
+    height: 0;
+    line-height: 0;
+    visibility: hidden;
+    display: block;
+  }
+  .clearfix {
+    zoom: 1;
+  }
+  .Evaluation_topall {
+    display: flex;
+    justify-content: space-between;
+    .selections {
+      position: relative;
+      right: 120px;
+      display: flex;
+      margin-top: 10px;
+      .selections_btn {
+        flex: 0 0 55px;
+        text-align: center;
+        height: 33px;
+        line-height: 33px;
+        margin-right: 8px;
+        color: #b9b9b9;
+        font-size: 1.296vh;
+        background: fade(#606769, 20);
+        border: 1px solid fade(#606769, 20);
+        border-radius: 20px;
+        &:hover,
+        &.active {
+          background: fade(#05bb4c, 80);
+          border: 1px solid #05bb4c;
+          color: #fff;
+          cursor: pointer;
+        }
+      }
+    }
+    .Evaluation_top {
+      display: flex;
+      flex-direction: row;
+      align-items: center;
+      padding-top: 10px;
+      padding-bottom: 10px;
+
+      .station {
+        display: flex;
+        flex-direction: row;
+        align-items: center;
+        font-size: 14px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #b3b3b3;
+        margin-right: 10px;
+        margin-left: 10px;
+      }
+
+      .search-input {
+        margin-left: 10px;
+        .el-input__inner {
+          width: 175px;
+        }
+        .el-input__suffix {
+          right: -50px;
+        }
+      }
+      .tabCut {
+        display: inline-block;
+        margin: 0 10px;
+
+        div {
+          display: inline-block;
+          width: 60px;
+          height: 27px;
+          border: 1px solid #274934;
+          text-align: center;
+          line-height: 25px;
+          cursor: pointer;
+        }
+
+        div:nth-child(1) {
+          border-radius: 13px 0px 0px 13px;
+          border-right-width: 0;
+        }
+
+        div:nth-child(2) {
+          border-radius: 0px 13px 13px 0px;
+        }
+
+        .active {
+          background-color: rgba(5, 187, 76, 0.9);
+          color: #fff;
+        }
+      }
+
+      .but {
+        display: flex;
+        flex-direction: row;
+        align-content: center;
+        margin-left: 20px;
+        .buttons {
+          background-color: rgba(5, 187, 76, 0.2);
+          border: 1px solid #3b6c53;
+          color: #b3b3b3;
+          font-size: 14px;
+
+          &:hover,
+          &.active {
+            background-color: rgba(5, 187, 76, 0.5);
+            color: #ffffff;
+          }
+        }
+      }
+    }
+  }
+}
+</style>
+<style lang="less">
+.comprehensiveEvaluation {
+  .detailInfoTabs {
+    background: #081410;
+    color: #fff;
+    .el-tabs__header {
+      background: #081410;
+      color: #fff;
+
+      .el-tabs__item {
+        border: 0;
+
+        &.is-active {
+          background: transparent;
+        }
+
+        &::after {
+          width: 90% !important;
+          left: 5% !important;
+        }
+      }
+    }
+  }
+
+  .el-checkbox__inner {
+    width: 12px;
+    height: 12px;
+    padding: 0 6px;
+  }
+}
+</style>

+ 11 - 0
src/views/indexRanking/index.vue

@@ -0,0 +1,11 @@
+<template>
+  <router-view />
+</template>
+
+<script>
+export default {
+  name: "indexRanking", //风电分析
+};
+</script>
+
+<style></style>

+ 420 - 0
src/views/indexRanking/nhydph/index.vue

@@ -0,0 +1,420 @@
+<template>
+  <div class="comprehensiveEvaluation">
+    <div class="Evaluation_topall">
+      <div class="Evaluation_top">
+        <div class="station">
+          场站:
+          <el-select size="mini" v-model="wp" placeholder="请选择" clearable>
+            <el-option
+              v-for="item in wpArray"
+              :key="item.id"
+              :label="item.aname"
+              :value="item.id"
+            >
+            </el-option>
+          </el-select>
+        </div>
+        <div class="station">
+          日期:
+          <el-date-picker
+            style="width: 400px"
+            v-model="date"
+            type="daterange"
+            range-separator="至"
+            start-placeholder="开始时间"
+            end-placeholder="结束时间"
+            size="mini"
+            format="YYYY-MM-DD"
+            value-format="YYYY-MM-DD"
+          />
+        </div>
+        <div class="but">
+          <el-button round size="mini" class="buttons" @click="renderChaet">
+            生成曲线
+          </el-button>
+          <el-button round size="mini" class="buttons" @click="exportExcel">
+            导 出
+          </el-button>
+        </div>
+      </div>
+    </div>
+    <div
+      style="
+        background: rgba(0, 0, 0, 0.4);
+        height: calc(100% - 39px);
+        padding-bottom: 15px;
+      "
+    >
+      <div class="Evaluation_title clearfix">
+        <div class="leftContent" :data-type="$store.state.moreSty">
+          <span>拟合优度排行</span>
+        </div>
+      </div>
+      <el-table
+        :data="nhydph"
+        stripe
+        size="mini"
+        height="90vh"
+        style="width: 100%; margin-bottom: 20px"
+        @select="getSelect"
+      >
+        <el-table-column
+          label="拟合优度指在统计周期内,预期值和现实所得的实际值的差距"
+        >
+          <el-table-column type="selection" width="55" />
+          <el-table-column align="center" prop="fc" label="风场" />
+          <el-table-column align="center" prop="bm" label="编码" />
+          <el-table-column align="center" prop="qsrq" label="起始日期" />
+          <el-table-column align="center" prop="jzrq" label="截止日期" />
+          <el-table-column align="center" prop="pjfs" label="平均风速" />
+          <el-table-column align="center" prop="nhyd" label="拟合优度" />
+        </el-table-column>
+      </el-table>
+      <el-dialog
+        v-model="dialogVisible"
+        width="70%"
+        top="150px"
+        custom-class="contrastModal"
+        :close-on-click-modal="false"
+        destroy-on-close
+      >
+        <template #title>
+          <div class="dialog-title">
+            <div class="title">对比曲线</div>
+          </div>
+        </template>
+        <div class="dialog-body">
+          <img class="dialog-img" src="@assets/imgs/dialog.png" />
+          <AreaLineChart
+            width="100%"
+            :height="'400px'"
+            :lineData="fjyxqkxxChartLineData"
+            :areaData="[]"
+            :showLegend="true"
+          />
+        </div>
+      </el-dialog>
+    </div>
+  </div>
+</template>
+
+<script>
+import dayjs from "dayjs";
+import AreaLineChart from "@com/chart/combination/area-line-chart.vue";
+export default {
+  components: {
+    AreaLineChart,
+  },
+  data() {
+    return {
+      wp: "",
+      wpArray: [],
+      date: [],
+      fjyxqkxxChartLineData: [],
+      nhydph: [
+        {
+          fc: "XX风电场",
+          bm: "#01",
+          qsrq: "2025-5-16 10:51:12",
+          jzrq: "2025-5-16 10:51:12",
+          pjfs: 15,
+          nhyd: 1.0,
+        },
+        {
+          fc: "XX风电场",
+          bm: "#01",
+          qsrq: "2025-5-16 10:51:12",
+          jzrq: "2025-5-16 10:51:12",
+          pjfs: 15,
+          nhyd: 1.0,
+        },
+        {
+          fc: "XX风电场",
+          bm: "#01",
+          qsrq: "2025-5-16 10:51:12",
+          jzrq: "2025-5-16 10:51:12",
+          pjfs: 15,
+          nhyd: 1.0,
+        },
+        {
+          fc: "XX风电场",
+          bm: "#01",
+          qsrq: "2025-5-16 10:51:12",
+          jzrq: "2025-5-16 10:51:12",
+          pjfs: 15,
+          nhyd: 1.0,
+        },
+        {
+          fc: "XX风电场",
+          bm: "#01",
+          qsrq: "2025-5-16 10:51:12",
+          jzrq: "2025-5-16 10:51:12",
+          pjfs: 15,
+          nhyd: 1.0,
+        },
+        {
+          fc: "XX风电场",
+          bm: "#01",
+          qsrq: "2025-5-16 10:51:12",
+          jzrq: "2025-5-16 10:51:12",
+          pjfs: 15,
+          nhyd: 1.0,
+        },
+        {
+          fc: "XX风电场",
+          bm: "#01",
+          qsrq: "2025-5-16 10:51:12",
+          jzrq: "2025-5-16 10:51:12",
+          pjfs: 15,
+          nhyd: 1.0,
+        },
+        {
+          fc: "XX风电场",
+          bm: "#01",
+          qsrq: "2025-5-16 10:51:12",
+          jzrq: "2025-5-16 10:51:12",
+          pjfs: 15,
+          nhyd: 1.0,
+        },
+        {
+          fc: "XX风电场",
+          bm: "#01",
+          qsrq: "2025-5-16 10:51:12",
+          jzrq: "2025-5-16 10:51:12",
+          pjfs: 15,
+          nhyd: 1.0,
+        },
+        {
+          fc: "XX风电场",
+          bm: "#01",
+          qsrq: "2025-5-16 10:51:12",
+          jzrq: "2025-5-16 10:51:12",
+          pjfs: 15,
+          nhyd: 1.0,
+        },
+      ],
+      dialogVisible: false,
+    };
+  },
+
+  created() {},
+
+  mounted() {},
+
+  methods: {
+    getSelect(value) {
+      console.log(1122, value);
+    },
+
+    renderChaet() {
+      this.dialogVisible = true;
+      this.initFjyxqkxxChart();
+    },
+
+    exportExcel() {
+      if (this.tjsjfx.length > 0) {
+        let tH = [];
+        this.tHeader.forEach((ele) => {
+          tH.push(ele.label);
+        });
+        utils.exportExcel(this.$refs.exportExcelRef.$el, tH, `拟合优度排行`);
+      }
+    },
+    initFjyxqkxxChart() {
+      let arr = ["实发功率", "应发功率"];
+      let fjyxqkxxChartLineData = [];
+      arr.forEach((ele) => {
+        let item = {
+          text: ele,
+          value: [],
+        };
+        for (let i = 50; i > -1; i--) {
+          item.value.push({
+            text: dayjs()
+              .add(Number(`-${i}`), "day")
+              .format("YYYY-MM-DD"),
+            value: this.BASE.randomNum(0, 500),
+          });
+        }
+        fjyxqkxxChartLineData.push(item);
+      });
+      this.fjyxqkxxChartLineData = fjyxqkxxChartLineData;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.comprehensiveEvaluation {
+  padding: 0 20px;
+  height: 100%;
+
+  .Evaluation_title {
+    .leftContent[data-type~="greenSty"] {
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+    }
+    .leftContent[data-type~="blueSty"] {
+      background: url("~@/assets/imgs/title_left_bg.png") no-repeat;
+    }
+    .leftContent {
+      width: 242px;
+      height: 41px;
+      line-height: 41px;
+      span {
+        font-size: 16px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #05bb4c;
+        margin-left: 25px;
+      }
+    }
+  }
+  .clearfix::after {
+    content: "";
+    clear: both;
+    height: 0;
+    line-height: 0;
+    visibility: hidden;
+    display: block;
+  }
+  .clearfix {
+    zoom: 1;
+  }
+  .Evaluation_topall {
+    display: flex;
+    justify-content: space-between;
+    .selections {
+      position: relative;
+      right: 120px;
+      display: flex;
+      margin-top: 10px;
+      .selections_btn {
+        flex: 0 0 55px;
+        text-align: center;
+        height: 33px;
+        line-height: 33px;
+        margin-right: 8px;
+        color: #b9b9b9;
+        font-size: 1.296vh;
+        background: fade(#606769, 20);
+        border: 1px solid fade(#606769, 20);
+        border-radius: 20px;
+        &:hover,
+        &.active {
+          background: fade(#05bb4c, 80);
+          border: 1px solid #05bb4c;
+          color: #fff;
+          cursor: pointer;
+        }
+      }
+    }
+    .Evaluation_top {
+      display: flex;
+      flex-direction: row;
+      align-items: center;
+      padding-top: 10px;
+      padding-bottom: 10px;
+
+      .station {
+        display: flex;
+        flex-direction: row;
+        align-items: center;
+        font-size: 14px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #b3b3b3;
+        margin-right: 10px;
+        margin-left: 10px;
+      }
+
+      .search-input {
+        margin-left: 10px;
+        .el-input__inner {
+          width: 175px;
+        }
+        .el-input__suffix {
+          right: -50px;
+        }
+      }
+      .tabCut {
+        display: inline-block;
+        margin: 0 10px;
+
+        div {
+          display: inline-block;
+          width: 60px;
+          height: 27px;
+          border: 1px solid #274934;
+          text-align: center;
+          line-height: 25px;
+          cursor: pointer;
+        }
+
+        div:nth-child(1) {
+          border-radius: 13px 0px 0px 13px;
+          border-right-width: 0;
+        }
+
+        div:nth-child(2) {
+          border-radius: 0px 13px 13px 0px;
+        }
+
+        .active {
+          background-color: rgba(5, 187, 76, 0.9);
+          color: #fff;
+        }
+      }
+
+      .but {
+        display: flex;
+        flex-direction: row;
+        align-content: center;
+        margin-left: 20px;
+        .buttons {
+          background-color: rgba(5, 187, 76, 0.2);
+          border: 1px solid #3b6c53;
+          color: #b3b3b3;
+          font-size: 14px;
+
+          &:hover,
+          &.active {
+            background-color: rgba(5, 187, 76, 0.5);
+            color: #ffffff;
+          }
+        }
+      }
+    }
+  }
+}
+</style>
+<style lang="less">
+.comprehensiveEvaluation {
+  .detailInfoTabs {
+    background: #081410;
+    color: #fff;
+    .el-tabs__header {
+      background: #081410;
+      color: #fff;
+
+      .el-tabs__item {
+        border: 0;
+
+        &.is-active {
+          background: transparent;
+        }
+
+        &::after {
+          width: 90% !important;
+          left: 5% !important;
+        }
+      }
+    }
+  }
+
+  .el-checkbox__inner {
+    width: 12px;
+    height: 12px;
+    padding: 0 6px;
+  }
+}
+</style>

+ 354 - 0
src/views/indexRanking/sslph/index.vue

@@ -0,0 +1,354 @@
+<template>
+  <div class="comprehensiveEvaluation">
+    <div class="Evaluation_topall">
+      <div class="Evaluation_top">
+        <div class="station">
+          类型:
+          <el-select size="mini" v-model="lx" placeholder="请选择" clearable>
+            <el-option
+              v-for="item in lxArray"
+              :key="item.id"
+              :label="item.aname"
+              :value="item.id"
+            >
+            </el-option>
+          </el-select>
+        </div>
+        <div class="station">
+          场站:
+          <el-select size="mini" v-model="wp" placeholder="请选择" clearable>
+            <el-option
+              v-for="item in wpArray"
+              :key="item.id"
+              :label="item.aname"
+              :value="item.id"
+            >
+            </el-option>
+          </el-select>
+        </div>
+        <div class="station">
+          日期:
+          <el-date-picker
+            style="width: 400px"
+            v-model="date"
+            type="daterange"
+            range-separator="至"
+            start-placeholder="开始时间"
+            end-placeholder="结束时间"
+            size="mini"
+            format="YYYY-MM-DD"
+            value-format="YYYY-MM-DD"
+          />
+        </div>
+        <div class="but">
+          <el-button round size="mini" class="buttons" @click="exportExcel">
+            导 出
+          </el-button>
+        </div>
+      </div>
+    </div>
+    <div
+      style="
+        background: rgba(0, 0, 0, 0.4);
+        height: calc(100% - 39px);
+        padding-bottom: 15px;
+      "
+    >
+      <div class="Evaluation_title clearfix">
+        <div class="leftContent" :data-type="$store.state.moreSty">
+          <span>损失率排行榜</span>
+        </div>
+      </div>
+      <el-table
+        :data="sslph"
+        stripe
+        size="mini"
+        height="90vh"
+        style="width: 100%; margin-bottom: 20px"
+      >
+        <el-table-column label="损失率排行榜">
+          <el-table-column align="center" prop="mc" label="名称" />
+          <el-table-column
+            align="center"
+            prop="fjhjx"
+            label="非计划检修损失率(%)"
+          />
+          <el-table-column
+            align="center"
+            prop="jhjx"
+            label="计划检修损失率(%)"
+          />
+          <el-table-column align="center" prop="qf" label="弃风率(%)" />
+          <el-table-column align="center" prop="sl" label="受累损失率(%)" />
+          <el-table-column align="center" prop="xn" label="性能损失率(%)" />
+        </el-table-column>
+      </el-table>
+    </div>
+  </div>
+</template>
+
+<script>
+import dayjs from "dayjs";
+import AreaLineChart from "@com/chart/combination/area-line-chart.vue";
+export default {
+  components: {
+    AreaLineChart,
+  },
+  data() {
+    return {
+      lx: "",
+      lxArray: [],
+      wp: "",
+      wpArray: [],
+      date: [],
+      sslph: [
+        {
+          mc: "XX风电场",
+          fjhjx: 0.94,
+          jhjx: 0.94,
+          qf: 0.94,
+          sl: 0.94,
+          xn: 0.94,
+        },
+        {
+          mc: "XX风电场",
+          fjhjx: 0.94,
+          jhjx: 0.94,
+          qf: 0.94,
+          sl: 0.94,
+          xn: 0.94,
+        },
+        {
+          mc: "XX风电场",
+          fjhjx: 0.94,
+          jhjx: 0.94,
+          qf: 0.94,
+          sl: 0.94,
+          xn: 0.94,
+        },
+      ],
+      dialogVisible: false,
+    };
+  },
+
+  created() {},
+
+  mounted() {},
+
+  methods: {
+    getSelect(value) {
+      console.log(1122, value);
+    },
+
+    renderChaet() {
+      this.dialogVisible = true;
+      this.initFjyxqkxxChart();
+    },
+
+    exportExcel() {
+      if (this.tjsjfx.length > 0) {
+        let tH = [];
+        this.tHeader.forEach((ele) => {
+          tH.push(ele.label);
+        });
+        utils.exportExcel(this.$refs.exportExcelRef.$el, tH, `拟合优度排行`);
+      }
+    },
+    initFjyxqkxxChart() {
+      let arr = ["实发功率", "应发功率"];
+      let fjyxqkxxChartLineData = [];
+      arr.forEach((ele) => {
+        let item = {
+          text: ele,
+          value: [],
+        };
+        for (let i = 50; i > -1; i--) {
+          item.value.push({
+            text: dayjs()
+              .add(Number(`-${i}`), "day")
+              .format("YYYY-MM-DD"),
+            value: this.BASE.randomNum(0, 500),
+          });
+        }
+        fjyxqkxxChartLineData.push(item);
+      });
+      this.fjyxqkxxChartLineData = fjyxqkxxChartLineData;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.comprehensiveEvaluation {
+  padding: 0 20px;
+  height: 100%;
+
+  .Evaluation_title {
+    .leftContent[data-type~="greenSty"] {
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+    }
+    .leftContent[data-type~="blueSty"] {
+      background: url("~@/assets/imgs/title_left_bg.png") no-repeat;
+    }
+    .leftContent {
+      width: 242px;
+      height: 41px;
+      line-height: 41px;
+      span {
+        font-size: 16px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #05bb4c;
+        margin-left: 25px;
+      }
+    }
+  }
+  .clearfix::after {
+    content: "";
+    clear: both;
+    height: 0;
+    line-height: 0;
+    visibility: hidden;
+    display: block;
+  }
+  .clearfix {
+    zoom: 1;
+  }
+  .Evaluation_topall {
+    display: flex;
+    justify-content: space-between;
+    .selections {
+      position: relative;
+      right: 120px;
+      display: flex;
+      margin-top: 10px;
+      .selections_btn {
+        flex: 0 0 55px;
+        text-align: center;
+        height: 33px;
+        line-height: 33px;
+        margin-right: 8px;
+        color: #b9b9b9;
+        font-size: 1.296vh;
+        background: fade(#606769, 20);
+        border: 1px solid fade(#606769, 20);
+        border-radius: 20px;
+        &:hover,
+        &.active {
+          background: fade(#05bb4c, 80);
+          border: 1px solid #05bb4c;
+          color: #fff;
+          cursor: pointer;
+        }
+      }
+    }
+    .Evaluation_top {
+      display: flex;
+      flex-direction: row;
+      align-items: center;
+      padding-top: 10px;
+      padding-bottom: 10px;
+
+      .station {
+        display: flex;
+        flex-direction: row;
+        align-items: center;
+        font-size: 14px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #b3b3b3;
+        margin-right: 10px;
+        margin-left: 10px;
+      }
+
+      .search-input {
+        margin-left: 10px;
+        .el-input__inner {
+          width: 175px;
+        }
+        .el-input__suffix {
+          right: -50px;
+        }
+      }
+      .tabCut {
+        display: inline-block;
+        margin: 0 10px;
+
+        div {
+          display: inline-block;
+          width: 60px;
+          height: 27px;
+          border: 1px solid #274934;
+          text-align: center;
+          line-height: 25px;
+          cursor: pointer;
+        }
+
+        div:nth-child(1) {
+          border-radius: 13px 0px 0px 13px;
+          border-right-width: 0;
+        }
+
+        div:nth-child(2) {
+          border-radius: 0px 13px 13px 0px;
+        }
+
+        .active {
+          background-color: rgba(5, 187, 76, 0.9);
+          color: #fff;
+        }
+      }
+
+      .but {
+        display: flex;
+        flex-direction: row;
+        align-content: center;
+        margin-left: 20px;
+        .buttons {
+          background-color: rgba(5, 187, 76, 0.2);
+          border: 1px solid #3b6c53;
+          color: #b3b3b3;
+          font-size: 14px;
+
+          &:hover,
+          &.active {
+            background-color: rgba(5, 187, 76, 0.5);
+            color: #ffffff;
+          }
+        }
+      }
+    }
+  }
+}
+</style>
+<style lang="less">
+.comprehensiveEvaluation {
+  .detailInfoTabs {
+    background: #081410;
+    color: #fff;
+    .el-tabs__header {
+      background: #081410;
+      color: #fff;
+
+      .el-tabs__item {
+        border: 0;
+
+        &.is-active {
+          background: transparent;
+        }
+
+        &::after {
+          width: 90% !important;
+          left: 5% !important;
+        }
+      }
+    }
+  }
+
+  .el-checkbox__inner {
+    width: 12px;
+    height: 12px;
+    padding: 0 6px;
+  }
+}
+</style>

+ 350 - 0
src/views/indexRanking/zfdlph/index.vue

@@ -0,0 +1,350 @@
+<template>
+  <div class="comprehensiveEvaluation">
+    <div class="Evaluation_topall">
+      <div class="Evaluation_top">
+        <div class="station">
+          类型:
+          <el-select size="mini" v-model="lx" placeholder="请选择" clearable>
+            <el-option
+              v-for="item in lxArray"
+              :key="item.id"
+              :label="item.aname"
+              :value="item.id"
+            >
+            </el-option>
+          </el-select>
+        </div>
+        <div class="station">
+          场站:
+          <el-select size="mini" v-model="wp" placeholder="请选择" clearable>
+            <el-option
+              v-for="item in wpArray"
+              :key="item.id"
+              :label="item.aname"
+              :value="item.id"
+            >
+            </el-option>
+          </el-select>
+        </div>
+        <div class="station">
+          日期:
+          <el-date-picker
+            style="width: 400px"
+            v-model="date"
+            type="daterange"
+            range-separator="至"
+            start-placeholder="开始时间"
+            end-placeholder="结束时间"
+            size="mini"
+            format="YYYY-MM-DD"
+            value-format="YYYY-MM-DD"
+          />
+        </div>
+        <div class="but">
+          <el-button round size="mini" class="buttons" @click="exportExcel">
+            导 出
+          </el-button>
+        </div>
+      </div>
+    </div>
+    <div
+      style="
+        background: rgba(0, 0, 0, 0.4);
+        height: calc(100% - 39px);
+        padding-bottom: 15px;
+      "
+    >
+      <div class="Evaluation_title clearfix">
+        <div class="leftContent" :data-type="$store.state.moreSty">
+          <span>总发电量排行</span>
+        </div>
+      </div>
+      <el-table
+        :data="zfdlph"
+        stripe
+        size="mini"
+        height="90vh"
+        style="width: 100%; margin-bottom: 20px"
+      >
+        <el-table-column label="总发电量排行榜">
+          <el-table-column align="center" prop="fc" label="风场" />
+          <el-table-column align="center" prop="fj" label="风机" />
+          <el-table-column align="center" prop="qsrq" label="起始日期" />
+          <el-table-column align="center" prop="jzrq" label="截止日期" />
+          <el-table-column align="center" prop="pjfs" label="平均风速" />
+          <el-table-column
+            align="center"
+            prop="scada"
+            label="SCADA发电量(万kWh)"
+          />
+        </el-table-column>
+      </el-table>
+    </div>
+  </div>
+</template>
+
+<script>
+import dayjs from "dayjs";
+import AreaLineChart from "@com/chart/combination/area-line-chart.vue";
+export default {
+  components: {
+    AreaLineChart,
+  },
+  data() {
+    return {
+      lx: "",
+      lxArray: [],
+      wp: "",
+      wpArray: [],
+      date: [],
+      zfdlph: [
+        {
+          fc: "XX风电场",
+          fj: "#01",
+          qsrq: "2025-5-16 10:51:12",
+          jzrq: "2025-5-16 10:51:12",
+          pjfs: 15,
+          scada: 15.029,
+        },
+        {
+          fc: "XX风电场",
+          fj: "#01",
+          qsrq: "2025-5-16 10:51:12",
+          jzrq: "2025-5-16 10:51:12",
+          pjfs: 15,
+          scada: 15.029,
+        },
+        {
+          fc: "XX风电场",
+          fj: "#01",
+          qsrq: "2025-5-16 10:51:12",
+          jzrq: "2025-5-16 10:51:12",
+          pjfs: 15,
+          scada: 15.029,
+        },
+      ],
+      dialogVisible: false,
+    };
+  },
+
+  created() {},
+
+  mounted() {},
+
+  methods: {
+    getSelect(value) {
+      console.log(1122, value);
+    },
+
+    renderChaet() {
+      this.dialogVisible = true;
+      this.initFjyxqkxxChart();
+    },
+
+    exportExcel() {
+      if (this.tjsjfx.length > 0) {
+        let tH = [];
+        this.tHeader.forEach((ele) => {
+          tH.push(ele.label);
+        });
+        utils.exportExcel(this.$refs.exportExcelRef.$el, tH, `拟合优度排行`);
+      }
+    },
+    initFjyxqkxxChart() {
+      let arr = ["实发功率", "应发功率"];
+      let fjyxqkxxChartLineData = [];
+      arr.forEach((ele) => {
+        let item = {
+          text: ele,
+          value: [],
+        };
+        for (let i = 50; i > -1; i--) {
+          item.value.push({
+            text: dayjs()
+              .add(Number(`-${i}`), "day")
+              .format("YYYY-MM-DD"),
+            value: this.BASE.randomNum(0, 500),
+          });
+        }
+        fjyxqkxxChartLineData.push(item);
+      });
+      this.fjyxqkxxChartLineData = fjyxqkxxChartLineData;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.comprehensiveEvaluation {
+  padding: 0 20px;
+  height: 100%;
+
+  .Evaluation_title {
+    .leftContent[data-type~="greenSty"] {
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+    }
+    .leftContent[data-type~="blueSty"] {
+      background: url("~@/assets/imgs/title_left_bg.png") no-repeat;
+    }
+    .leftContent {
+      width: 242px;
+      height: 41px;
+      line-height: 41px;
+      span {
+        font-size: 16px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #05bb4c;
+        margin-left: 25px;
+      }
+    }
+  }
+  .clearfix::after {
+    content: "";
+    clear: both;
+    height: 0;
+    line-height: 0;
+    visibility: hidden;
+    display: block;
+  }
+  .clearfix {
+    zoom: 1;
+  }
+  .Evaluation_topall {
+    display: flex;
+    justify-content: space-between;
+    .selections {
+      position: relative;
+      right: 120px;
+      display: flex;
+      margin-top: 10px;
+      .selections_btn {
+        flex: 0 0 55px;
+        text-align: center;
+        height: 33px;
+        line-height: 33px;
+        margin-right: 8px;
+        color: #b9b9b9;
+        font-size: 1.296vh;
+        background: fade(#606769, 20);
+        border: 1px solid fade(#606769, 20);
+        border-radius: 20px;
+        &:hover,
+        &.active {
+          background: fade(#05bb4c, 80);
+          border: 1px solid #05bb4c;
+          color: #fff;
+          cursor: pointer;
+        }
+      }
+    }
+    .Evaluation_top {
+      display: flex;
+      flex-direction: row;
+      align-items: center;
+      padding-top: 10px;
+      padding-bottom: 10px;
+
+      .station {
+        display: flex;
+        flex-direction: row;
+        align-items: center;
+        font-size: 14px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #b3b3b3;
+        margin-right: 10px;
+        margin-left: 10px;
+      }
+
+      .search-input {
+        margin-left: 10px;
+        .el-input__inner {
+          width: 175px;
+        }
+        .el-input__suffix {
+          right: -50px;
+        }
+      }
+      .tabCut {
+        display: inline-block;
+        margin: 0 10px;
+
+        div {
+          display: inline-block;
+          width: 60px;
+          height: 27px;
+          border: 1px solid #274934;
+          text-align: center;
+          line-height: 25px;
+          cursor: pointer;
+        }
+
+        div:nth-child(1) {
+          border-radius: 13px 0px 0px 13px;
+          border-right-width: 0;
+        }
+
+        div:nth-child(2) {
+          border-radius: 0px 13px 13px 0px;
+        }
+
+        .active {
+          background-color: rgba(5, 187, 76, 0.9);
+          color: #fff;
+        }
+      }
+
+      .but {
+        display: flex;
+        flex-direction: row;
+        align-content: center;
+        margin-left: 20px;
+        .buttons {
+          background-color: rgba(5, 187, 76, 0.2);
+          border: 1px solid #3b6c53;
+          color: #b3b3b3;
+          font-size: 14px;
+
+          &:hover,
+          &.active {
+            background-color: rgba(5, 187, 76, 0.5);
+            color: #ffffff;
+          }
+        }
+      }
+    }
+  }
+}
+</style>
+<style lang="less">
+.comprehensiveEvaluation {
+  .detailInfoTabs {
+    background: #081410;
+    color: #fff;
+    .el-tabs__header {
+      background: #081410;
+      color: #fff;
+
+      .el-tabs__item {
+        border: 0;
+
+        &.is-active {
+          background: transparent;
+        }
+
+        &::after {
+          width: 90% !important;
+          left: 5% !important;
+        }
+      }
+    }
+  }
+
+  .el-checkbox__inner {
+    width: 12px;
+    height: 12px;
+    padding: 0 6px;
+  }
+}
+</style>

+ 31 - 4
src/views/sxReport/djxnfx.vue

@@ -1,10 +1,37 @@
 <template>
-  <div>单机性能分析</div>
+  <div style="height: 100%">
+    <iframe
+      :src="url"
+      width="100%"
+      height="100%"
+      frameborder="0"
+      scrolling="auto"
+    ></iframe>
+  </div>
 </template>
-
 <script>
-export default {};
+export default {
+  data() {
+    return {
+      url:
+        process.env.VUE_APP_REPORT +
+        "/bi/showreport.do?resid=EBI$12$9UUFC0MUONU6M4JUCUNZY7WWY6U7CO60$1$CNULUAU01KMJ8S4NTZ76CIEKMJNSTU9X&id=admin&pw=admin",
+    };
+  },
+};
 </script>
+<style lang="less" scope>
+@titleGray: #9ca5ab;
+@rowGray: #606769;
+@darkBack: #536268;
+
+.knowledge-2 {
+  .el-select {
+    width: 200px;
+  }
 
-<style>
+  .el-input {
+    width: 200px;
+  }
+}
 </style>