diff --git a/src/api/product.js b/src/api/product.js new file mode 100644 index 00000000..e32f27fc --- /dev/null +++ b/src/api/product.js @@ -0,0 +1,34 @@ +import axios from 'axios' + +const ProductEndpointUrl = 'https://metadata.service.development.therig.onlinefuelslabs.io' + +export function fetchList(query) { + return axios.get(`${ProductEndpointUrl}/fuels`, { params: query }) +} + +export function fetchProduct(id) { + return axios.get(`${ProductEndpointUrl}/fuels/${id}?platform=OLFDE`) +} + +export function createProduct(data) { + const dto = __dataToDTO(data) + return axios.post(`${ProductEndpointUrl}/fuels`, dto) +} + +export function updateProduct(data) { + const dto = __dataToDTO(data) + return axios.put(`${ProductEndpointUrl}/fuels/${data._id}`, dto) +} + +function __dataToDTO(data) { + return { + 'name': data.name, + 'description': data.description, + 'lpt': Number(data.lpt), + 'duty': Number(data.duty), + 'type': 'SPOT', + 'platform': data.platform || 'OLFDE', + 'meta': data.meta, + 'status': data.status + } +} diff --git a/src/router/index.js b/src/router/index.js index 75ca0f2a..aaa655d6 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -230,6 +230,37 @@ export const asyncRoutes = [ } ] }, + { + path: '/products', + component: Layout, + redirect: '/products/list', + name: 'Products', + meta: { + title: 'Products', + icon: 'example' + }, + children: [ + { + path: 'create', + component: () => import('@/views/products/create'), + name: 'CreateProduct', + meta: { title: 'Create Products', icon: 'edit' } + }, + { + path: 'edit/:id', + component: () => import('@/views/products/edit'), + name: 'EditProducts', + meta: { title: 'Edit Product', noCache: true, activeMenu: '/products/list' }, + hidden: true + }, + { + path: 'list', + component: () => import('@/views/products/list'), + name: 'ProductssList', + meta: { title: 'Products List', icon: 'list' } + } + ] + }, { path: '/permission', component: Layout, diff --git a/src/views/products/components/ProductDetail.vue b/src/views/products/components/ProductDetail.vue new file mode 100644 index 00000000..80788c3a --- /dev/null +++ b/src/views/products/components/ProductDetail.vue @@ -0,0 +1,282 @@ + + + + + diff --git a/src/views/products/create.vue b/src/views/products/create.vue new file mode 100644 index 00000000..9e133533 --- /dev/null +++ b/src/views/products/create.vue @@ -0,0 +1,13 @@ + + + + diff --git a/src/views/products/edit.vue b/src/views/products/edit.vue new file mode 100644 index 00000000..5f29d155 --- /dev/null +++ b/src/views/products/edit.vue @@ -0,0 +1,13 @@ + + + + diff --git a/src/views/products/list.vue b/src/views/products/list.vue new file mode 100644 index 00000000..16b3830b --- /dev/null +++ b/src/views/products/list.vue @@ -0,0 +1,81 @@ + + + + +