保存
This commit is contained in:
149
src/views/copilot/efficiency/components/sub/city/CityData.vue
Normal file
149
src/views/copilot/efficiency/components/sub/city/CityData.vue
Normal file
@@ -0,0 +1,149 @@
|
||||
<!--
|
||||
filename: CityData.vue
|
||||
author: liubin
|
||||
date: 2024-04-17 09:55:12
|
||||
description:
|
||||
-->
|
||||
|
||||
<template>
|
||||
<div class="city-data">
|
||||
<div class="headquarter">
|
||||
<div class="inner-shadow w-1"></div>
|
||||
<div class="inner-shadow flex-1 flex">
|
||||
<CityName value="凯盛光伏" />
|
||||
<CityValue :value="headquarterValue" horizontal :period="period" />
|
||||
</div>
|
||||
<div class="inner-shadow w-1"></div>
|
||||
</div>
|
||||
|
||||
<div class="city-item-container">
|
||||
<CityItem
|
||||
v-for="city in cities"
|
||||
:key="city.name"
|
||||
:location="city.name"
|
||||
:value="city.value"
|
||||
:period="period"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import CityItemVue from "./CityItem.vue";
|
||||
import CityNameVue from "./CityName.vue";
|
||||
import CityValueVue from "./CityValue.vue";
|
||||
|
||||
export default {
|
||||
name: "CityData",
|
||||
components: {
|
||||
CityItem: CityItemVue,
|
||||
CityName: CityNameVue,
|
||||
CityValue: CityValueVue,
|
||||
},
|
||||
props: {
|
||||
dataSource: {
|
||||
type: String,
|
||||
default: null,
|
||||
},
|
||||
period: {
|
||||
type: String,
|
||||
default: "日",
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
computed: {
|
||||
headquarterValue() {
|
||||
let getterName = "";
|
||||
switch (this.dataSource) {
|
||||
case "标准组件产出":
|
||||
getterName = "stdOutput";
|
||||
break;
|
||||
case "芯片产出":
|
||||
getterName = "chipOutput";
|
||||
break;
|
||||
case "BIPV产出":
|
||||
getterName = "bipvOutput";
|
||||
break;
|
||||
}
|
||||
return (
|
||||
"" + (this.$store.getters.copilot.yield[getterName]?.current?.[5] ?? 0)
|
||||
);
|
||||
},
|
||||
cities() {
|
||||
let getterName = "";
|
||||
switch (this.dataSource) {
|
||||
case "标准组件产出":
|
||||
getterName = "stdOutput";
|
||||
break;
|
||||
case "芯片产出":
|
||||
getterName = "chipOutput";
|
||||
break;
|
||||
case "BIPV产出":
|
||||
getterName = "bipvOutput";
|
||||
break;
|
||||
}
|
||||
const _cities = [
|
||||
{ name: "瑞昌", value: 0 },
|
||||
{ name: "邯郸", value: 0 },
|
||||
{ name: "株洲", value: 0 },
|
||||
{ name: "佳木斯", value: 0 },
|
||||
{ name: "成都", value: 0 },
|
||||
{ name: "凯盛光伏", value: 0 },
|
||||
{ name: "蚌埠兴科", value: 0 },
|
||||
];
|
||||
this.$store.getters.copilot.yield[getterName]?.current?.forEach(
|
||||
(v, idx) => {
|
||||
_cities[idx].value = v ?? 0;
|
||||
}
|
||||
);
|
||||
// 删掉凯盛光伏
|
||||
_cities.splice(4, 1);
|
||||
return _cities;
|
||||
},
|
||||
},
|
||||
mounted() {},
|
||||
methods: {},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.city-data {
|
||||
width: 100%;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.headquarter {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.w-1 {
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
.flex {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.flex-1 {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.inner-shadow {
|
||||
box-shadow: inset 0 0 12px 2px #fff3;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.city-item-container {
|
||||
flex: 3;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 8px;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user