| | |
| | | type="primary" |
| | | plain |
| | | @click="refreshDashboardData">刷新数据</el-button> |
| | | <el-button size="small" |
| | | <!-- <el-button size="small" |
| | | plain |
| | | @click="configDialogVisible = true">首页配置</el-button> |
| | | @click="configDialogVisible = true">首页配置</el-button> --> |
| | | </div> |
| | | </div> |
| | | <div class="content-grid"> |
| | |
| | | </el-button> |
| | | </div> |
| | | </section> |
| | | <section class="section-card"> |
| | | <!-- <section class="section-card"> |
| | | <div class="section-title">重点待办</div> |
| | | <div class="todo-row" |
| | | v-for="todo in todos" |
| | |
| | | :type="todo.type">{{ todo.level }}</el-tag> |
| | | <span>{{ todo.title }}</span> |
| | | </div> |
| | | </section> |
| | | </section> --> |
| | | <section class="section-card"> |
| | | <div class="section-title">经营关注</div> |
| | | <div class="focus-row" |
| | |
| | | </section> |
| | | <section class="section-card" |
| | | v-if="isSectionVisible('costChart')"> |
| | | <div class="section-title">能耗与成本结构</div> |
| | | <div class="section-title">能耗类型占比</div> |
| | | <Echarts :chartStyle="chartStyle" |
| | | :legend="costLegend" |
| | | :tooltip="pieTooltip" |
| | | :series="costSeries" |
| | | :series="energyTypeSeries" |
| | | style="height: 260px" /> |
| | | </section> |
| | | </div> |
| | |
| | | data: [], |
| | | }, |
| | | ]); |
| | | |
| | | // 能耗类型占比数据 |
| | | const energyTypeSeries = reactive([ |
| | | { |
| | | type: "pie", |
| | | radius: ["40%", "70%"], |
| | | center: ["50%", "50%"], |
| | | avoidLabelOverlap: false, |
| | | itemStyle: { |
| | | borderRadius: 10, |
| | | borderColor: "#fff", |
| | | borderWidth: 2, |
| | | }, |
| | | label: { |
| | | show: true, |
| | | formatter: "{b}: {d}%", |
| | | }, |
| | | data: [ |
| | | { value: 0, name: "水", itemStyle: { color: "#409EFF" } }, |
| | | { value: 0, name: "电", itemStyle: { color: "#E6A23C" } }, |
| | | { value: 0, name: "气", itemStyle: { color: "#F56C6C" } }, |
| | | ], |
| | | }, |
| | | ]); |
| | | |
| | | // 模拟能耗数据 |
| | | const energyData = reactive({ |
| | | water: 120, |
| | | electricity: 350, |
| | | gas: 80, |
| | | }); |
| | | |
| | | // 更新能耗类型占比图表 |
| | | const updateEnergyTypeChart = () => { |
| | | const { water, electricity, gas } = energyData; |
| | | const total = water + electricity + gas; |
| | | |
| | | energyTypeSeries[0].data = [ |
| | | { |
| | | value: total > 0 ? ((water / total) * 100).toFixed(2) : 0, |
| | | name: "水", |
| | | itemStyle: { color: "#409EFF" }, |
| | | }, |
| | | { |
| | | value: total > 0 ? ((electricity / total) * 100).toFixed(2) : 0, |
| | | name: "电", |
| | | itemStyle: { color: "#E6A23C" }, |
| | | }, |
| | | { |
| | | value: total > 0 ? ((gas / total) * 100).toFixed(2) : 0, |
| | | name: "气", |
| | | itemStyle: { color: "#F56C6C" }, |
| | | }, |
| | | ]; |
| | | }; |
| | | |
| | | const planTable = reactive([]); |
| | | const recentTrendCards = reactive([ |
| | |
| | | loadQualityData(); |
| | | loadCostComposition(); |
| | | loadWarningCenter(); |
| | | updateEnergyTypeChart(); |
| | | lastUpdatedAt.value = new Date().toLocaleString(); |
| | | }; |
| | | |