refactor: 💡 dashboard
set in a new dashboard component, the data of the simulation
This commit is contained in:
22
.vscode/settings.json
vendored
22
.vscode/settings.json
vendored
@@ -1,3 +1,23 @@
|
|||||||
{
|
{
|
||||||
"typescript.tsdk": "node_modules/typescript/lib"
|
"typescript.tsdk": "node_modules/typescript/lib",
|
||||||
|
"workbench.colorCustomizations": {
|
||||||
|
"activityBar.activeBackground": "#0037c5",
|
||||||
|
"activityBar.background": "#0037c5",
|
||||||
|
"activityBar.foreground": "#e7e7e7",
|
||||||
|
"activityBar.inactiveForeground": "#e7e7e799",
|
||||||
|
"activityBarBadge.background": "#200009",
|
||||||
|
"activityBarBadge.foreground": "#e7e7e7",
|
||||||
|
"commandCenter.border": "#e7e7e799",
|
||||||
|
"sash.hoverBorder": "#0037c5",
|
||||||
|
"statusBar.background": "#002992",
|
||||||
|
"statusBar.foreground": "#e7e7e7",
|
||||||
|
"statusBarItem.hoverBackground": "#0037c5",
|
||||||
|
"statusBarItem.remoteBackground": "#002992",
|
||||||
|
"statusBarItem.remoteForeground": "#e7e7e7",
|
||||||
|
"titleBar.activeBackground": "#002992",
|
||||||
|
"titleBar.activeForeground": "#e7e7e7",
|
||||||
|
"titleBar.inactiveBackground": "#00299299",
|
||||||
|
"titleBar.inactiveForeground": "#e7e7e799"
|
||||||
|
},
|
||||||
|
"peacock.color": "#002992"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ ul {
|
|||||||
margin-top: 1rem;
|
margin-top: 1rem;
|
||||||
border: 3px solid var(--primary-color);
|
border: 3px solid var(--primary-color);
|
||||||
color: var(--primary-color);
|
color: var(--primary-color);
|
||||||
background-color: white;
|
background-color: var(--color);
|
||||||
min-height: var(--feature-item-height);
|
min-height: var(--feature-item-height);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@@ -48,7 +48,7 @@ ul {
|
|||||||
|
|
||||||
.blue-bin {
|
.blue-bin {
|
||||||
background-color: var(--primary-color);
|
background-color: var(--primary-color);
|
||||||
color: white;
|
color: var(--color);
|
||||||
font-size: 18pt;
|
font-size: 18pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
40
src/modules/feature/FeatureControls.vue
Normal file
40
src/modules/feature/FeatureControls.vue
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { useFeatureStore } from '@/modules/feature/feature-store'
|
||||||
|
|
||||||
|
defineProps<{
|
||||||
|
featuresToDeliver: number
|
||||||
|
}>()
|
||||||
|
const featureStore = useFeatureStore()
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="feature-controls">
|
||||||
|
<div>
|
||||||
|
{{ featureStore.features.length }} / {{ featuresToDeliver }} features in
|
||||||
|
the board | mean complexity : {{ featureStore.meanComplexity }} | mean
|
||||||
|
lead time : {{ featureStore.meanLeadTime }} days | Total days:
|
||||||
|
{{ featureStore.meta.totalDays }} | Team work experience:
|
||||||
|
{{ featureStore.meta.teamWorkExperience.toFixed(2) }}
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
New feature live every {{ featureStore.taktTime }} days. Finishing in
|
||||||
|
{{ featureStore.eat }} days.
|
||||||
|
</div>
|
||||||
|
<template v-if="!featureStore.isProjectFinished">
|
||||||
|
<div class="row">Strategy of the day:</div>
|
||||||
|
<div class="row">
|
||||||
|
<button @click="featureStore.nextDay('push')">push system</button>
|
||||||
|
<button @click="featureStore.nextDay('pull')">pull system</button>
|
||||||
|
<button @click="featureStore.nextDay('problem-solving')">
|
||||||
|
problem solving
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.feature-controls {
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -116,7 +116,7 @@ const isLive = computed(
|
|||||||
background-color: var(--primary-color);
|
background-color: var(--primary-color);
|
||||||
padding: 0.35rem;
|
padding: 0.35rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: white;
|
color: var(--color);
|
||||||
}
|
}
|
||||||
|
|
||||||
li {
|
li {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import FeatureControls from '@/modules/feature/FeatureControls.vue'
|
||||||
import FeatureStep from '@/modules/feature/FeatureStep.vue'
|
import FeatureStep from '@/modules/feature/FeatureStep.vue'
|
||||||
import { featureSteps } from '@/modules/feature/feature-steps'
|
import { featureSteps } from '@/modules/feature/feature-steps'
|
||||||
import { useFeatureStore } from '@/modules/feature/feature-store'
|
import { useFeatureStore } from '@/modules/feature/feature-store'
|
||||||
@@ -12,29 +13,7 @@ onMounted(() => featureStore.initBoard(NUMBER_OF_FEATURES))
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="dashboard">
|
<FeatureControls :features-to-deliver="NUMBER_OF_FEATURES" />
|
||||||
<div>
|
|
||||||
{{ featureStore.features.length }} / {{ NUMBER_OF_FEATURES }} features in
|
|
||||||
the board | mean complexity : {{ featureStore.meanComplexity }} | mean
|
|
||||||
lead time : {{ featureStore.meanLeadTime }} days | Total days:
|
|
||||||
{{ featureStore.meta.totalDays }} | Team work experience:
|
|
||||||
{{ featureStore.meta.teamWorkExperience.toFixed(2) }}
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
New feature live every {{ featureStore.taktTime }} days. Finishing in
|
|
||||||
{{ featureStore.eat }} days.
|
|
||||||
</div>
|
|
||||||
<template v-if="!featureStore.isProjectFinished">
|
|
||||||
<div class="row">Strategy of the day:</div>
|
|
||||||
<div class="row">
|
|
||||||
<button @click="featureStore.nextDay('push')">push system</button>
|
|
||||||
<button @click="featureStore.nextDay('pull')">pull system</button>
|
|
||||||
<button @click="featureStore.nextDay('problem-solving')">
|
|
||||||
problem solving
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</div>
|
|
||||||
<ul class="features-steps">
|
<ul class="features-steps">
|
||||||
<FeatureStep
|
<FeatureStep
|
||||||
v-for="step in featureSteps"
|
v-for="step in featureSteps"
|
||||||
@@ -46,11 +25,6 @@ onMounted(() => featureStore.initBoard(NUMBER_OF_FEATURES))
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.dashboard,
|
|
||||||
pre {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.features-steps {
|
.features-steps {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ const strategies: Strategy[] = ['push', 'pull', 'push-dps', 'pull-dps']
|
|||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th></th>
|
||||||
<th class="numeric">push</th>
|
<th class="numeric">push</th>
|
||||||
<th class="numeric">pull</th>
|
<th class="numeric">pull</th>
|
||||||
<th class="numeric">push and DPS</th>
|
<th class="numeric">push and DPS</th>
|
||||||
|
|||||||
Reference in New Issue
Block a user