Browse Source

[ADD] fetch products from server

Gogs 7 years ago
parent
commit
275d056102
2 changed files with 25 additions and 9 deletions
  1. 13 4
      src/components/ProductsGrid.vue
  2. 12 5
      src/store/modules/products.js

+ 13 - 4
src/components/ProductsGrid.vue

@@ -1,17 +1,26 @@
 <template lang="pug">
     .products-grid
-        <product-card />
-        <product-card />
-        <product-card />
-        <product-card />
+        template(v-for="product in products")
+            product-card(:data="product")
 </template>
 
 <script>
     import ProductCard from '@/components/ProductCard'
+    import { mapGetters, mapActions } from 'vuex'
 
     export default {
         components: {
             'product-card': ProductCard
+        },
+        computed: mapGetters({
+            products: 'getProducts'
+        }),
+        methods: mapActions([
+            'fetchProducts',
+            'selectProduct'
+        ]),
+        mounted() {
+            this.fetchProducts()
         }
     }
 </script>

+ 12 - 5
src/store/modules/products.js

@@ -13,8 +13,8 @@ const getters = {
 }
 
 const mutations = {
-    fetchProducts (state) {
-
+    pushProducts(state, payload) {
+        state.products = payload.products
     },
     selectProducts (state, payload) {
         state.selectedProducts = []
@@ -27,10 +27,17 @@ const mutations = {
 
 const actions = {
     fetchProducts ({ commit }) {
-
+        let product = new openerp.web.Model('product.product')
+        product.query(['name', 'display_name', 'list_price', 'qty_available', 'image_medium']).all().then(response => {
+            commit('pushProducts', {
+                products: response
+            })
+        }).fail(error => {
+            console.log(error)
+        })
     },
-    selectProducts({ commit }, payload) {
-        commit('selectProducts', payload)
+    selectProduct({ commit }) {
+
     }
 }