From 3f9ddcac6df8f5fc984022a9fc3720a5adca9b2c Mon Sep 17 00:00:00 2001 From: Jonathan Chevalier Date: Tue, 27 Sep 2022 15:29:02 +0200 Subject: [PATCH] WIP MMCM --- package-lock.json | 56 ++ package.json | 3 + src/main.js | 8 + src/router/index.js | 21 +- src/stores/mmcm.js | 12 +- src/views/address-check.vue | 2 +- src/views/delivery-option-step-1.vue | 592 ++++++++++++++++++ src/views/delivery-option-step-2.vue | 37 ++ src/views/delivery-option-step-3.vue | 54 ++ ...option.vue => delivery-option-summary.vue} | 23 +- 10 files changed, 790 insertions(+), 18 deletions(-) create mode 100644 src/views/delivery-option-step-1.vue create mode 100644 src/views/delivery-option-step-2.vue create mode 100644 src/views/delivery-option-step-3.vue rename src/views/{delivery-option.vue => delivery-option-summary.vue} (55%) diff --git a/package-lock.json b/package-lock.json index aea4a9c..5948eb7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,9 @@ "name": "mmcm", "version": "0.0.0", "dependencies": { + "@fortawesome/fontawesome-free": "^6.2.0", + "@vuepic/vue-datepicker": "^3.4.8", + "date-fns": "^2.29.3", "pinia": "^2.0.22", "vue": "^3.2.37", "vue-router": "^4.1.5" @@ -66,6 +69,15 @@ "node": ">=12" } }, + "node_modules/@fortawesome/fontawesome-free": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.2.0.tgz", + "integrity": "sha512-CNR7qRIfCwWHNN7FnKUniva94edPdyQzil/zCwk3v6k4R6rR2Fr8i4s3PM7n/lyfPA6Zfko9z5WDzFxG9SW1uQ==", + "hasInstallScript": true, + "engines": { + "node": ">=6" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -221,6 +233,20 @@ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.39.tgz", "integrity": "sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw==" }, + "node_modules/@vuepic/vue-datepicker": { + "version": "3.4.8", + "resolved": "https://registry.npmjs.org/@vuepic/vue-datepicker/-/vue-datepicker-3.4.8.tgz", + "integrity": "sha512-nbuMA7IgjtT99LqcjSTSUcl7omTZSB+7vYSWQ9gQm31Frm/1wn54fT1Q0HaRD9nHXX982AACbqeND4K80SKONw==", + "dependencies": { + "date-fns": "^2.29.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "vue": ">=3.2.0" + } + }, "node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -441,6 +467,18 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" }, + "node_modules/date-fns": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, "node_modules/defined": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", @@ -1670,6 +1708,11 @@ "dev": true, "optional": true }, + "@fortawesome/fontawesome-free": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.2.0.tgz", + "integrity": "sha512-CNR7qRIfCwWHNN7FnKUniva94edPdyQzil/zCwk3v6k4R6rR2Fr8i4s3PM7n/lyfPA6Zfko9z5WDzFxG9SW1uQ==" + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1807,6 +1850,14 @@ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.39.tgz", "integrity": "sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw==" }, + "@vuepic/vue-datepicker": { + "version": "3.4.8", + "resolved": "https://registry.npmjs.org/@vuepic/vue-datepicker/-/vue-datepicker-3.4.8.tgz", + "integrity": "sha512-nbuMA7IgjtT99LqcjSTSUcl7omTZSB+7vYSWQ9gQm31Frm/1wn54fT1Q0HaRD9nHXX982AACbqeND4K80SKONw==", + "requires": { + "date-fns": "^2.29.2" + } + }, "acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -1943,6 +1994,11 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" }, + "date-fns": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==" + }, "defined": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", diff --git a/package.json b/package.json index 9388ae1..7a77032 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,9 @@ "preview": "vite preview" }, "dependencies": { + "@fortawesome/fontawesome-free": "^6.2.0", + "@vuepic/vue-datepicker": "^3.4.8", + "date-fns": "^2.29.3", "pinia": "^2.0.22", "vue": "^3.2.37", "vue-router": "^4.1.5" diff --git a/src/main.js b/src/main.js index 386f6df..4cebc21 100644 --- a/src/main.js +++ b/src/main.js @@ -2,13 +2,21 @@ import { createApp } from 'vue' import './style.css' import './assets/common_css.css' import './assets/bootstrap-para.css' +import fontawesome from '@fortawesome/fontawesome-free/css/fontawesome.css' +import brands from '@fortawesome/fontawesome-free/css/brands.css' +import solid from '@fortawesome/fontawesome-free/css/solid.css' + import App from './App.vue' import router from "./router/index" import { createPinia } from 'pinia' +import Datepicker from '@vuepic/vue-datepicker'; +import '@vuepic/vue-datepicker/dist/main.css' + const pinia = createPinia() const app = createApp(App) app.use(router); app.use(pinia) +app.component('Datepicker', Datepicker); app.mount("#app"); diff --git a/src/router/index.js b/src/router/index.js index 1fe4446..e2fc364 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -12,9 +12,24 @@ const routes = [ component: () => import('/src/views/address-check.vue'), }, { - path: '/delivery-option', - name: 'delivery-option', - component: () => import('/src/views/delivery-option.vue'), + path: '/delivery-option-step-1', + name: 'delivery-option-step-1', + component: () => import('/src/views/delivery-option-step-1.vue'), + }, + { + path: '/delivery-option-step-2', + name: 'delivery-option-step-2', + component: () => import('/src/views/delivery-option-step-2.vue'), + }, + { + path: '/delivery-option-step-3', + name: 'delivery-option-step-3', + component: () => import('/src/views/delivery-option-step-3.vue'), + }, + { + path: '/delivery-option-summary', + name: 'delivery-option-summary', + component: () => import('/src/views/delivery-option-summary.vue'), }, ] diff --git a/src/stores/mmcm.js b/src/stores/mmcm.js index a00ca34..a963a6e 100644 --- a/src/stores/mmcm.js +++ b/src/stores/mmcm.js @@ -1,9 +1,9 @@ import {defineStore} from 'pinia' export const useMMCMStore = defineStore('counter', { - state: () => ({count: 0, name: 'Eduardo', street: '', zipCode: '', city: '', productList : []}), + state: () => ({street: '', zipCode: '', city: '', productList: [], withPrescription: null, idProduct: null, dateDelivery:null}), getters: { - fullAddress: (state) => state.street + ' ' + state.zipCode + '' + state.city + fullAddress: (state) => state.street + ' ' + state.zipCode + '' + state.city, }, actions: { setStreet(street) { @@ -15,8 +15,14 @@ export const useMMCMStore = defineStore('counter', { setCity(city) { this.city = city }, - setProductList(array){ + setProductList(array) { this.productList = array + }, + setPrescription(bool) { + this.withPrescription = bool + }, + setIdProduct(id) { + this.idProduct = id } }, }) diff --git a/src/views/address-check.vue b/src/views/address-check.vue index 10b0854..b1f8e1c 100644 --- a/src/views/address-check.vue +++ b/src/views/address-check.vue @@ -71,7 +71,7 @@ export default { console.log(productList); this.store.setProductList(productList); - this.$router.push({path: '/delivery-option'}); + this.$router.push({path: '/delivery-option-step-1'}); } } diff --git a/src/views/delivery-option-step-1.vue b/src/views/delivery-option-step-1.vue new file mode 100644 index 0000000..9cbe322 --- /dev/null +++ b/src/views/delivery-option-step-1.vue @@ -0,0 +1,592 @@ + + + + + diff --git a/src/views/delivery-option-step-2.vue b/src/views/delivery-option-step-2.vue new file mode 100644 index 0000000..99a95e4 --- /dev/null +++ b/src/views/delivery-option-step-2.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/src/views/delivery-option-step-3.vue b/src/views/delivery-option-step-3.vue new file mode 100644 index 0000000..4654dfa --- /dev/null +++ b/src/views/delivery-option-step-3.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/src/views/delivery-option.vue b/src/views/delivery-option-summary.vue similarity index 55% rename from src/views/delivery-option.vue rename to src/views/delivery-option-summary.vue index 13c3824..13b0720 100644 --- a/src/views/delivery-option.vue +++ b/src/views/delivery-option-summary.vue @@ -1,17 +1,22 @@