mirror of
https://github.com/crater-invoice/crater.git
synced 2026-02-09 12:22:40 -05:00
init crater
This commit is contained in:
101
resources/assets/js/store/modules/expense/actions.js
Normal file
101
resources/assets/js/store/modules/expense/actions.js
Normal file
@@ -0,0 +1,101 @@
|
||||
import * as types from './mutation-types'
|
||||
|
||||
export const fetchExpenses = ({ commit, dispatch, state }, params) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
window.axios.get(`/api/expenses`, {params}).then((response) => {
|
||||
commit(types.SET_EXPENSES, response.data.expenses.data)
|
||||
commit(types.SET_TOTAL_EXPENSES, response.data.expenses.total)
|
||||
resolve(response)
|
||||
}).catch((err) => {
|
||||
reject(err)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export const fetchCreateExpense = ({ commit, dispatch, state }) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
window.axios.get(`/api/expenses/create`).then((response) => {
|
||||
resolve(response)
|
||||
}).catch((err) => {
|
||||
reject(err)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export const fetchExpense = ({ commit, dispatch, state }, id) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
window.axios.get(`/api/expenses/${id}/edit`).then((response) => {
|
||||
resolve(response)
|
||||
}).catch((err) => {
|
||||
reject(err)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export const addExpense = ({ commit, dispatch, state }, data) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
window.axios.post('/api/expenses', data).then((response) => {
|
||||
// commit(types.ADD_EXPENSE, response.data)
|
||||
resolve(response)
|
||||
}).catch((err) => {
|
||||
reject(err)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export const updateExpense = ({ commit, dispatch, state }, data) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
window.axios.post(`/api/expenses/${data.id}`, data.editData).then((response) => {
|
||||
commit(types.UPDATE_EXPENSE, response.data)
|
||||
resolve(response)
|
||||
}).catch((err) => {
|
||||
reject(err)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export const deleteExpense = ({ commit, dispatch, state }, id) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
window.axios.delete(`/api/expenses/${id}`).then((response) => {
|
||||
commit(types.DELETE_EXPENSE, id)
|
||||
resolve(response)
|
||||
}).catch((err) => {
|
||||
reject(err)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export const deleteMultipleExpenses = ({ commit, dispatch, state }, id) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
window.axios.post(`/api/expenses/delete`, {'id': state.selectedExpenses}).then((response) => {
|
||||
commit(types.DELETE_MULTIPLE_EXPENSES, state.selectedExpenses)
|
||||
resolve(response)
|
||||
}).catch((err) => {
|
||||
reject(err)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export const setSelectAllState = ({ commit, dispatch, state }, data) => {
|
||||
commit(types.SET_SELECT_ALL_STATE, data)
|
||||
}
|
||||
|
||||
export const selectAllExpenses = ({ commit, dispatch, state }) => {
|
||||
if (state.selectedExpenses.length === state.expenses.length) {
|
||||
commit(types.SET_SELECTED_EXPENSES, [])
|
||||
commit(types.SET_SELECT_ALL_STATE, false)
|
||||
} else {
|
||||
let allExpenseIds = state.expenses.map(cust => cust.id)
|
||||
commit(types.SET_SELECTED_EXPENSES, allExpenseIds)
|
||||
commit(types.SET_SELECT_ALL_STATE, true)
|
||||
}
|
||||
}
|
||||
|
||||
export const selectExpense = ({ commit, dispatch, state }, data) => {
|
||||
commit(types.SET_SELECTED_EXPENSES, data)
|
||||
if (state.selectedExpenses.length === state.expenses.length) {
|
||||
commit(types.SET_SELECT_ALL_STATE, true)
|
||||
} else {
|
||||
commit(types.SET_SELECT_ALL_STATE, false)
|
||||
}
|
||||
}
|
||||
4
resources/assets/js/store/modules/expense/getters.js
Normal file
4
resources/assets/js/store/modules/expense/getters.js
Normal file
@@ -0,0 +1,4 @@
|
||||
export const expenses = (state) => state.expenses
|
||||
export const selectAllField = (state) => state.selectAllField
|
||||
export const selectedExpenses = (state) => state.selectedExpenses
|
||||
export const totalExpenses = (state) => state.totalExpenses
|
||||
22
resources/assets/js/store/modules/expense/index.js
Normal file
22
resources/assets/js/store/modules/expense/index.js
Normal file
@@ -0,0 +1,22 @@
|
||||
import mutations from './mutations'
|
||||
import * as actions from './actions'
|
||||
import * as getters from './getters'
|
||||
|
||||
const initialState = {
|
||||
expenses: [],
|
||||
totalExpenses: 0,
|
||||
selectAllField: false,
|
||||
selectedExpenses: []
|
||||
}
|
||||
|
||||
export default {
|
||||
namespaced: true,
|
||||
|
||||
state: initialState,
|
||||
|
||||
getters: getters,
|
||||
|
||||
actions: actions,
|
||||
|
||||
mutations: mutations
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
export const SET_EXPENSES = 'SET_EXPENSES'
|
||||
export const ADD_EXPENSE = 'ADD_EXPENSE'
|
||||
export const UPDATE_EXPENSE = 'UPDATE_EXPENSE'
|
||||
export const SET_SELECT_ALL = 'SET_SELECT_ALL'
|
||||
export const DELETE_EXPENSE = 'DELETE_EXPENSE'
|
||||
export const DELETE_MULTIPLE_EXPENSES = 'DELETE_MULTIPLE_EXPENSES'
|
||||
export const SET_SELECTED_EXPENSES = 'SET_SELECTED_EXPENSES'
|
||||
export const SET_TOTAL_EXPENSES = 'SET_TOTAL_EXPENSES'
|
||||
export const SET_SELECT_ALL_STATE = 'SET_SELECT_ALL_STATE'
|
||||
58
resources/assets/js/store/modules/expense/mutations.js
Normal file
58
resources/assets/js/store/modules/expense/mutations.js
Normal file
@@ -0,0 +1,58 @@
|
||||
import * as types from './mutation-types'
|
||||
|
||||
export default {
|
||||
[types.SET_EXPENSES] (state, expenses) {
|
||||
state.expenses = expenses
|
||||
},
|
||||
|
||||
[types.ADD_EXPENSE] (state, expense) {
|
||||
state.expenses.push(expense)
|
||||
},
|
||||
|
||||
[types.UPDATE_EXPENSE] (state, data) {
|
||||
let pos = state.expenses.findIndex(expense => expense.id === data.expense.id)
|
||||
|
||||
state.expenses[pos] = data.expense
|
||||
},
|
||||
|
||||
[types.DELETE_EXPENSE] (state, id) {
|
||||
let index = state.expenses.findIndex(expense => expense.id === id)
|
||||
state.expenses.splice(index, 1)
|
||||
},
|
||||
|
||||
[types.SET_SELECT_ALL] (state, selectAll) {
|
||||
if (selectAll) {
|
||||
state.expenses.filter(expense => {
|
||||
state.selectedRow.push(expense.id)
|
||||
})
|
||||
} else {
|
||||
state.selectedRow = []
|
||||
}
|
||||
},
|
||||
|
||||
[types.SET_TOTAL_EXPENSES] (state, totalExpenses) {
|
||||
state.totalExpenses = totalExpenses
|
||||
},
|
||||
|
||||
[types.DELETE_EXPENSE] (state, id) {
|
||||
let index = state.expenses.findIndex(expense => expense.id === id)
|
||||
state.expenses.splice(index, 1)
|
||||
},
|
||||
|
||||
[types.DELETE_MULTIPLE_EXPENSES] (state, selectedExpenses) {
|
||||
selectedExpenses.forEach((expense) => {
|
||||
let index = state.expenses.findIndex(_exp => _exp.id === expense.id)
|
||||
state.expenses.splice(index, 1)
|
||||
})
|
||||
|
||||
state.selectedExpenses = []
|
||||
},
|
||||
|
||||
[types.SET_SELECTED_EXPENSES] (state, data) {
|
||||
state.selectedExpenses = data
|
||||
},
|
||||
|
||||
[types.SET_SELECT_ALL_STATE] (state, data) {
|
||||
state.selectAllField = data
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user