yudao-init/src/views/copilot/efficiency/components/sub/std/StdRateItem.vue
‘937886381’ 56e011c179 驾驶舱
2024-05-11 16:40:29 +08:00

125 lines
3.1 KiB
Vue

<!--
* @Author: zhp
* @Date: 2024-05-07 10:25:10
* @LastEditTime: 2024-05-11 15:05:17
* @LastEditors: zhp
* @Description:
-->
<template>
<div v-if="period == '日'" class="std-rate-item">
<CityName :value="city.name" />
<div class="std-rate-item__value">
<ProgressBar :period="period" :title="title" :value="city.current" />
<!-- <ProgressBar title="24年累计" :total="city.target" :value="city.thisYear" /> -->
</div>
</div>
<div v-else-if="period == '周'" class="std-rate-item">
<CityName :value="city.name" />
<div class="std-rate-item__value">
<ProgressBar :period="period" :title="title" :value="city.current" />
<!-- <ProgressBar title="24年累计" :total="city.target" :value="city.thisYear" /> -->
</div>
</div>
<div v-else-if="period == '月'" class="std-rate-item">
<CityName :value="city.name" />
<div class="std-rate-item__value">
<ProgressBar :period="period" :title="titleEnd" :target="city.target" :value="city.current" />
<ProgressBar :period="period" :title="title" :value="city.previous" />
</div>
</div>
<div v-else="period == '年'" class="std-rate-item">
<CityName :value="city.name" />
<div class="std-rate-item__value">
<ProgressBar :period="period" :title="titleEnd" :target="city.target" :value="city.current" />
<ProgressBar :period="period" :title="title" :value="city.previous" />
</div>
</div>
</template>
<script>
import CityName from "./CityName.vue";
import ProgressBar from "./ProgressBar.vue";
export default {
name: "StdRateItem",
components: { CityName, ProgressBar },
props: {
city: {
type: Object,
required: true,
},
period: {
type: String,
default: "日",
}
},
data() {
return {
showDay:true,
};
},
computed: {
title() {
switch (this.period) {
case "日":
return "今日"
case "周":
return "本周"
case "月":
const year = new Date().getFullYear();
const month = new Date().getMonth() + 1;
return `${year - 1}年${month}月累计`
case "年": {
const year = new Date().getFullYear();
// return [
return `${year - 1}年累计`
// ];
}
default:
return "今日"
}
},
titleEnd() {
switch (this.period) {
// case "日":
// return "今日"
// case "周":
// return "本周"
case "月":
const year = new Date().getFullYear();
const month = new Date().getMonth() + 1;
return `${year}年${month}月目标`
case "年": {
const year = new Date().getFullYear();
// return [
return `${year}年目标`
// ];
}
}
}
},
};
</script>
<style scoped lang="scss">
.std-rate-item {
box-shadow: inset 0 0 12px 2px #fff3;
border-radius: 4px;
display: flex;
align-items: center;
gap: 8px;
padding: 12px;
}
.std-rate-item__value {
flex: 1;
margin: 6px;
display: flex;
gap: 12px;
height: 60px;
flex-direction: column;
justify-content: center;
}
</style>