K356/k356/items/templates/components/ItemView/vue.js

58 lines
1.7 KiB
JavaScript

ItemView = {
template: "#ItemView",
router_path: "/ItemView",
delimiters: ["[[", "]]"],
props: [],
computed: {
...Vuex.mapState({
items: state => state.items.items,
items_headers: state => state.items.headers,
types: state => state.types.items,
types_headers: state => state.types.headers,
}),
},
methods: {
item_edition (method, item) {
return this.object_edit("items:edit", "items:create", 'items', method, item)
},
type_edition (method, item) {
return this.object_edit("items:type.edit", "items:type.create", 'types', method, item)
},
async createItem (item) {
const new_item = await this.item_edition("post", item)
this.$store.commit("items/addItem", new_item)
},
async editItem (item) {
const new_item = await this.item_edition("post", item)
this.$store.commit("items/editItem", new_item)
},
async deleteItem (item) {
await this.item_edition("delete", item)
this.$store.commit("items/removeItem", item.id)
},
async createType (type) {
const new_type = await this.type_edition("post", type)
this.$store.commit("types/addItem", new_type)
},
async editType (type) {
const new_type = await this.type_edition("post", type)
this.$store.commit("types/editItem", new_type)
},
async deleteType (type) {
await this.type_edition("delete", type)
this.$store.commit("types/removeItem", type.id)
},
},
}