diff --git a/app/assets/styles/general.css b/app/assets/styles/general.css index 50e8dc6..9a68aee 100755 --- a/app/assets/styles/general.css +++ b/app/assets/styles/general.css @@ -58,6 +58,7 @@ body { height: 100%; overflow-x: hidden; font-family: sans-serif; + color: var(--color-darkest); } .dot { diff --git a/app/assets/styles/header.css b/app/assets/styles/header.css index a59130e..568236a 100755 --- a/app/assets/styles/header.css +++ b/app/assets/styles/header.css @@ -52,6 +52,17 @@ align-items: center; & li { list-style: none; + + & a { + color: var(--color-black); + text-decoration: none; + transition: var(--transition-default); + + &.active { + color: var(--color-main); + font-weight: bold; + } + } } } } \ No newline at end of file diff --git a/app/components/Pp/Header.vue b/app/components/Pp/Header.vue index 63018c4..d2bd73a 100755 --- a/app/components/Pp/Header.vue +++ b/app/components/Pp/Header.vue @@ -6,26 +6,51 @@ - - + + - Home - Übersicht + + + {{ navPoint.label }} + + \ No newline at end of file diff --git a/app/pages/overview.vue b/app/pages/overview.vue new file mode 100755 index 0000000..8d13646 --- /dev/null +++ b/app/pages/overview.vue @@ -0,0 +1,81 @@ + + + + + + {{ product.name }} - {{ product.price }} + + + + + + diff --git a/nuxt.config.ts b/nuxt.config.ts index 68c0d99..6a630f1 100755 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -22,7 +22,12 @@ export default defineNuxtConfig({ '/privacy': { prerender: true }, }, - modules: ['@nuxt/icon', '@vueuse/nuxt', '@nuxtjs/device'], + modules: [ + '@nuxt/icon', + '@vueuse/nuxt', + '@nuxtjs/device', + 'nuxt-mongoose', + ], css : [ './app/assets/styles/general.css', @@ -33,5 +38,12 @@ export default defineNuxtConfig({ './app/assets/styles/priceCard.css', './app/assets/styles/formInput.css', './app/assets/styles/toolbar.css', - ] + ], + + mongoose: { + uri: `${process.env.MONGODB_URI}`, + modelsDir: 'models', + devtools: true, + }, + }) \ No newline at end of file diff --git a/package.json b/package.json index c56f122..cfb4300 100755 --- a/package.json +++ b/package.json @@ -3,12 +3,12 @@ "private": true, "type": "module", "scripts": { + "prepare": "nuxt prepare", "build": "nuxt build", "dev": "nuxt dev", "dev:expose": "nuxt dev --host", "generate": "nuxt generate", "preview": "nuxt preview", - "prepare": "nuxt prepare", "postinstall": "nuxt prepare" }, "dependencies": { @@ -18,6 +18,7 @@ "@nuxtjs/device": "^3.2.4", "@vueuse/nuxt": "^13.1.0", "nuxt": "^3.16.2", + "nuxt-mongoose": "^1.0.6", "vue": "latest", "vue-router": "latest" } diff --git a/server/api/products/index.get.ts b/server/api/products/index.get.ts new file mode 100644 index 0000000..df0bb19 --- /dev/null +++ b/server/api/products/index.get.ts @@ -0,0 +1,9 @@ +export default defineEventHandler(async () => { + try { + return await ProductSchema.find() + } catch (error) { + console.error(error) + return [] + } + +}) \ No newline at end of file diff --git a/server/models/product.schema.ts b/server/models/product.schema.ts new file mode 100644 index 0000000..53d91ba --- /dev/null +++ b/server/models/product.schema.ts @@ -0,0 +1,49 @@ +import { defineMongooseModel } from '#nuxt/mongoose' + +export const ProductSchema = defineMongooseModel({ + name: 'products', + schema: { + name: { + type: String, + required: true, + }, + brand: { + type: String, + required: true, + }, + image: { + type: String, + required: true, + unique: true, + }, + market: { + type: String, + required: true, + }, + category: { + type: String, + required: true, + }, + sku: { + type: String, + required: true, + unique: true, + }, + price: { + type: Number, + required: true, + }, + pieces: { + type: Number, + required: true, + }, + sheets: { + type: Number, + required: true, + }, + layers: { + type: Number, + required: true, + }, + } +}) \ No newline at end of file diff --git a/shared/db/Product.ts b/shared/db/Product.ts new file mode 100644 index 0000000..ef2a203 --- /dev/null +++ b/shared/db/Product.ts @@ -0,0 +1,12 @@ +export type Product = { + name: string + brand: string + image: string + market: string + category: string + sku: string + price: number + pieces: number + sheets: number + layers: number +} \ No newline at end of file
+ {{ product.name }} - {{ product.price }} +