diff --git a/components/ProductCardDetails.vue b/components/ProductCardDetails.vue new file mode 100644 index 0000000..8956f92 --- /dev/null +++ b/components/ProductCardDetails.vue @@ -0,0 +1,445 @@ + + + + + + + + + {{ product?.name }} + + {{ + `${product?.price}€` + }} + Precio a consultar + | {{ `Gastos de envío ${product?.shipping_cost}€` }} + | Sin gastos de envío + + | {{ `Stock ${product?.stock}€` }} + + {{ product?.shipping_terms }} + + + + + {{ n }} + + + + Comparte: + + + + + + + + + + + + + + + + + + + {{ company?.company_name }} + + {{ company?.description }} + {{ company?.web_link }} + + + + + + + + + {{ `Descuento ${product?.discount}%` }} + + + + + Productos relacionados + Otros productos + + + + + + + + + diff --git a/components/ProductModal.vue b/components/ProductModal.vue new file mode 100644 index 0000000..04011c2 --- /dev/null +++ b/components/ProductModal.vue @@ -0,0 +1,310 @@ + + + + + + + Interesado en comprar el producto + + + + + + + + + + + + + + + + + + Login + + + + + + + {{ product?.company?.company_name }} + {{ product?.company?.address }} + + + + + + + + + + + {{ product?.name }} + {{ product?.price }} € + + {{ product?.shipping_cost || 'Sin gastos de envío' }} + + + + + + + + + + + Enviar + + + + + + + + + + + + + diff --git a/components/ProductsRelated.vue b/components/ProductsRelated.vue new file mode 100644 index 0000000..bf4e84c --- /dev/null +++ b/components/ProductsRelated.vue @@ -0,0 +1,86 @@ + + + + + + {{ product.name }} + {{ `${product.price}€` }} + + + + + + + diff --git a/package-lock.json b/package-lock.json index 1914c5e..48d8e98 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@nuxt/eslint": "^1.8.0", "@nuxtjs/sitemap": "^7.4.3", "@pinia/nuxt": "^0.11.2", + "dompurify": "^3.2.6", "eslint": "^9.32.0", "nuxt": "^3.17.7", "pinia": "^3.0.3", @@ -4321,6 +4322,13 @@ "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", "license": "MIT" }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, "node_modules/@types/yauzl": { "version": "2.10.3", "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", @@ -7027,6 +7035,15 @@ "url": "https://github.com/fb55/domhandler?sponsor=1" } }, + "node_modules/dompurify": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz", + "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, "node_modules/domutils": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", diff --git a/package.json b/package.json index b0adf2a..a2471ca 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "@nuxt/eslint": "^1.8.0", "@nuxtjs/sitemap": "^7.4.3", "@pinia/nuxt": "^0.11.2", + "dompurify": "^3.2.6", "eslint": "^9.32.0", "nuxt": "^3.17.7", "pinia": "^3.0.3", diff --git a/pages/editar/perfil/contrasena.vue b/pages/editar/perfil/contrasena.vue index bc50380..30a5f0e 100644 --- a/pages/editar/perfil/contrasena.vue +++ b/pages/editar/perfil/contrasena.vue @@ -31,7 +31,6 @@ - {{ form }} diff --git a/pages/productos/[id].vue b/pages/productos/[id].vue index 24fee24..29afb45 100644 --- a/pages/productos/[id].vue +++ b/pages/productos/[id].vue @@ -1,15 +1,92 @@ - - Producto 1 + + Detalles del producto + \ No newline at end of file +.title { + margin-bottom: 40px; + font-size: $xl; + color: $color-navy; +} +
Comparte:
{{ company?.description }}
{{ product?.company?.address }}
{{ product?.price }} €
+ {{ product?.shipping_cost || 'Sin gastos de envío' }} +