From 1715ac99b9739496c802505004bb241ffeb249ef Mon Sep 17 00:00:00 2001 From: Andrew Croce Date: Mon, 17 Sep 2018 15:06:38 -0400 Subject: [PATCH] SpendTable Vue component --- js/components/tables/spend_table.js | 45 +++++++++++++++++++++++++++++ js/index.js | 4 ++- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 js/components/tables/spend_table.js diff --git a/js/components/tables/spend_table.js b/js/components/tables/spend_table.js new file mode 100644 index 00000000..be1b2be7 --- /dev/null +++ b/js/components/tables/spend_table.js @@ -0,0 +1,45 @@ +import { set } from 'vue/dist/vue' +import { formatDollars } from '../../lib/dollars' + +export default { + name: 'spend-table', + + props: { + projects: Object, + workspace: Object, + environments: Object, + currentMonthIndex: String, + prevMonthIndex: String, + twoMonthsAgoIndex: String + }, + + data: function () { + return { + projectsState: this.projects + } + }, + + created: function () { + Object.keys(this.projects).forEach(project => { + set(this.projectsState[project], 'isVisible', false) + }) + }, + + methods: { + toggle: function (e, projectName) { + this.projectsState = Object.assign(this.projectsState, { + [projectName]: { + isVisible: !this.projectsState[projectName].isVisible + } + }) + }, + + formatDollars: function (value) { + return formatDollars(value, false) + }, + + round: function (value) { + return Math.round(value) + } + } +} diff --git a/js/index.js b/js/index.js index f5e9613d..375a90f2 100644 --- a/js/index.js +++ b/js/index.js @@ -16,6 +16,7 @@ import NewProject from './components/forms/new_project' import Modal from './mixins/modal' import selector from './components/selector' import BudgetChart from './components/charts/budget_chart' +import SpendTable from './components/tables/spend_table' Vue.use(VTooltip) @@ -33,7 +34,8 @@ const app = new Vue({ financial, NewProject, selector, - BudgetChart + BudgetChart, + SpendTable }, mounted: function() { const modalOpen = document.querySelector("#modalOpen")