5858 <th >Budgeted</th >
5959 <th >Spent</th >
6060 <th >Remaining</th >
61+ <th ></th >
6162 </tr >
6263 </thead >
6364 <tbody >
64- <tr v-for =" bc in selectedBudget.budgetCategories" >
65- <td ><span class =" subtitle is-5" >{{ getCategoryById(bc.category).name }}</span ></td >
66- <td ><span class =" subtitle is-5" >${{ bc.budgeted }}</span ></td >
67- <td ><span class =" subtitle is-5" >${{ bc.spent }}</span ></td >
68- <td ><span class =" subtitle is-5" >${{ bc.budgeted - bc.spent }}</span ></td >
69- </tr >
65+ <template
66+ v-for =" value , key in selectedBudget .budgetCategories "
67+ >
68+ <component
69+ :is =" budgetCategoryComponent(value)"
70+ v-model =" value"
71+ v-on:update-budget-category =" saveBudgetCategory"
72+ v-on:edit-budget-category =" activeBudgetCategory = value"
73+ ></component >
74+ </template >
7075 <CreateUpdateBudgetCategory v-on:add-budget-category =" addBudgetCategory" ></CreateUpdateBudgetCategory >
7176 </tbody >
7277 <tfoot >
7580 <td >${{ selectedBudget.budgeted }}</td >
7681 <td >${{ selectedBudget.spent }}</td >
7782 <td >${{ selectedBudget.budgeted - selectedBudget.spent }}</td >
83+ <td ></td >
7884 </tr >
7985 </tfoot >
8086 </table >
@@ -90,19 +96,22 @@ import { mapActions, mapGetters } from 'vuex';
9096import Datepicker from ' vuejs-datepicker' ;
9197
9298import CreateUpdateBudgetCategory from ' ./CreateUpdateBudgetCategory' ;
99+ import BudgetCategory from ' ./BudgetCategory' ;
93100
94101export default {
95102 name: ' budget-create-edit-view' ,
96103
97104 components: {
98105 Datepicker,
99- CreateUpdateBudgetCategory
106+ CreateUpdateBudgetCategory,
107+ BudgetCategory
100108 },
101109
102110 data : () => {
103111 return {
104112 selectedBudget: {},
105- editing: false
113+ editing: false ,
114+ activeBudgetCategory: null
106115 };
107116 },
108117
@@ -123,7 +132,8 @@ export default {
123132 ' createBudget' ,
124133 ' updateBudget' ,
125134 ' loadBudgets' ,
126- ' createBudgetCategory'
135+ ' createBudgetCategory' ,
136+ ' updateBudgetCategory'
127137 ]),
128138
129139 resetAndGo () {
@@ -164,6 +174,21 @@ export default {
164174 }).then (() => {
165175 this .selectedBudget = Object .assign ({}, this .getBudgetById (this .$route .params .budgetId ));
166176 });
177+ },
178+
179+ saveBudgetCategory (budgetCategory ) {
180+ // format it how our action expects
181+ budgetCategory .category = budgetCategory .category .id ;
182+ this .updateBudgetCategory ({
183+ budget: this .selectedBudget ,
184+ budgetCategory: budgetCategory
185+ }).then (() => {
186+ this .selectedBudget = Object .assign ({}, this .getBudgetById (this .$route .params .budgetId ));
187+ });
188+ },
189+
190+ budgetCategoryComponent (budgetCategory ) {
191+ return this .activeBudgetCategory && this .activeBudgetCategory === budgetCategory ? ' create-update-budget-category' : ' budget-category' ;
167192 }
168193 },
169194
0 commit comments