add frontend
This commit is contained in:
parent
a7029b67ed
commit
7da9374578
11 changed files with 3085 additions and 0 deletions
30
src/frontend/.gitignore
vendored
Normal file
30
src/frontend/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
lerna-debug.log*
|
||||
|
||||
node_modules
|
||||
.DS_Store
|
||||
dist
|
||||
dist-ssr
|
||||
coverage
|
||||
*.local
|
||||
|
||||
/cypress/videos/
|
||||
/cypress/screenshots/
|
||||
|
||||
# Editor directories and files
|
||||
.vscode/*
|
||||
!.vscode/extensions.json
|
||||
.idea
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
||||
|
||||
*.tsbuildinfo
|
||||
29
src/frontend/README.md
Normal file
29
src/frontend/README.md
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# frontend
|
||||
|
||||
This template should help get you started developing with Vue 3 in Vite.
|
||||
|
||||
## Recommended IDE Setup
|
||||
|
||||
[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur).
|
||||
|
||||
## Customize configuration
|
||||
|
||||
See [Vite Configuration Reference](https://vite.dev/config/).
|
||||
|
||||
## Project Setup
|
||||
|
||||
```sh
|
||||
npm install
|
||||
```
|
||||
|
||||
### Compile and Hot-Reload for Development
|
||||
|
||||
```sh
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### Compile and Minify for Production
|
||||
|
||||
```sh
|
||||
npm run build
|
||||
```
|
||||
13
src/frontend/index.html
Normal file
13
src/frontend/index.html
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>LCC</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script type="module" src="/src/main.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
8
src/frontend/jsconfig.json
Normal file
8
src/frontend/jsconfig.json
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"@/*": ["./src/*"]
|
||||
}
|
||||
},
|
||||
"exclude": ["node_modules", "dist"]
|
||||
}
|
||||
2841
src/frontend/package-lock.json
generated
Normal file
2841
src/frontend/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
24
src/frontend/package.json
Normal file
24
src/frontend/package.json
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"name": "frontend",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"engines": {
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"@phosphor-icons/vue": "^2.2.1",
|
||||
"vue": "^3.5.18",
|
||||
"vue-router": "^4.5.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vitejs/plugin-vue": "^6.0.1",
|
||||
"vite": "^7.0.6",
|
||||
"vite-plugin-vue-devtools": "^8.0.0"
|
||||
}
|
||||
}
|
||||
BIN
src/frontend/public/favicon.ico
Normal file
BIN
src/frontend/public/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
67
src/frontend/src/App.vue
Normal file
67
src/frontend/src/App.vue
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
<template>
|
||||
<the-header></the-header>
|
||||
<router-view v-slot="slotProps">
|
||||
<transition name="route" mode="out-in">
|
||||
<component :is="slotProps.Component"></component>
|
||||
</transition>
|
||||
</router-view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
import TheHeader from "@/components/layout/TheHeader.vue";
|
||||
|
||||
export default {
|
||||
components: {TheHeader}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
@import url('https://fonts.googleapis.com/css2?family=Cal+Sans&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: 'Poppins', sans-serif;
|
||||
}
|
||||
|
||||
.page-header {
|
||||
font-weight: normal;
|
||||
margin-bottom: 30px;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 20px;
|
||||
font-family: 'Poppins', sans-serif;
|
||||
background-color: #ffffff;
|
||||
color: #002F54;
|
||||
}
|
||||
|
||||
.route-enter-from {
|
||||
opacity: 0;
|
||||
transform: translateX(-30px);
|
||||
}
|
||||
|
||||
.route-leave-to {
|
||||
opacity: 0;
|
||||
transform: translateX(30px);
|
||||
}
|
||||
|
||||
.route-enter-active {
|
||||
transition: all 0.2s ease-out;
|
||||
}
|
||||
|
||||
.route-leave-active {
|
||||
transition: all 0.2s ease-out;
|
||||
}
|
||||
|
||||
.route-enter-to,
|
||||
.route-leave-from {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
</style>
|
||||
18
src/frontend/src/assets/logo.svg
Normal file
18
src/frontend/src/assets/logo.svg
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="300px" height="114px" viewBox="0 0 300 114" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>KION_Group_logo</title>
|
||||
<g id="KION_Group_logo" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="KION_Group_WEB_RGB_3color_positive_illu4_v_v_2-Copy-2" fill-rule="nonzero">
|
||||
<path d="M75.3865,107.8552 C75.3865,112.168 77.8124,113.4189 81.8852,113.4189 L87.0952,113.4189 C92.1872,113.4189 94.3852,112.8882 94.3852,108.7502 L94.3852,104.3489 L84.6982,104.3489 L84.6982,107.4045 L89.866,107.4045 L89.866,108.4932 C89.866,109.9126 88.6804,109.9863 87.5032,109.9863 L82.9,109.9863 C80.6193,109.9863 80.0318,109.5504 80.0318,107.0191 L80.0318,104.6206 C80.0318,102.0977 80.6193,101.6597 82.9,101.6597 L93.5348,101.6597 L93.5348,98.2271 L81.8848,98.2271 C77.812,98.2271 75.3861,99.4801 75.3861,103.7908 L75.3865,107.8552 Z" id="Path" fill="#AE0055"></path>
|
||||
<path d="M121.2961,101.7987 L121.2961,105.2692 L128.9993,105.2692 C130.2228,105.2692 130.6672,104.8922 130.6672,103.8351 L130.6672,103.2307 C130.6672,101.9335 130.0186,101.7987 128.5908,101.7987 L121.2961,101.7987 Z M129.987,113.1051 L127.0619,108.7059 L121.2961,108.7059 L121.2961,113.1051 L116.7748,113.1051 L116.7748,98.36 L130.6461,98.36 C134.1334,98.36 135.0684,100.5143 135.0684,103.3383 C135.0684,105.5242 134.4072,107.5983 132.1202,108.1965 L135.875,113.1053 L129.987,113.1051 Z" id="Shape" fill="#AE0055"></path>
|
||||
<path d="M157.0013,107.7528 C157.0013,112.072 159.4272,113.4176 163.4979,113.4176 L170.8642,113.4176 C174.9412,113.4176 177.365,112.072 177.365,107.7528 L177.365,103.718 C177.365,99.3989 174.9412,98.0469 170.8642,98.0469 L163.4979,98.0469 C159.4272,98.0469 157.0013,99.3989 157.0013,103.718 L157.0013,107.7528 Z M161.6488,104.5308 C161.6488,102.6966 162.0933,101.7722 164.4789,101.7722 L169.8889,101.7722 C172.2706,101.7722 172.7213,102.6966 172.7213,104.5308 L172.7213,106.94 C172.7213,109.0774 172.2706,109.6986 170.1313,109.6986 L164.2306,109.6986 C162.0932,109.6986 161.6488,109.0774 161.6488,106.94 L161.6488,104.5308 Z" id="Shape" fill="#AE0055"></path>
|
||||
<path d="M200.5083,107.7737 C200.5083,111.44 202.3994,113.4174 206.5563,113.4174 L213.1563,113.4174 C217.3133,113.4174 219.2107,111.44 219.2107,107.7737 L219.2107,98.51 L214.742,98.51 L214.742,107.2493 C214.742,109.1256 214.0703,109.7448 212.2213,109.7448 L207.7337,109.7448 C205.8826,109.7448 205.2109,109.1256 205.2109,107.2493 L205.2109,98.51 L200.5085,98.51 L200.5083,107.7737 Z" id="Path" fill="#AE0055"></path>
|
||||
<path d="M241.6548,113.1051 L246.1761,113.1051 L246.1761,109.3988 L255.1576,109.3988 C258.3585,109.3988 259.3125,106.6488 259.3125,104.45 L259.3125,103.635 C259.3125,100.75 258.2701,98.3598 253.9805,98.3598 L241.6548,98.3598 L241.6548,113.1051 Z M246.1761,101.7987 L252.8138,101.7987 C254.1805,101.7987 254.6712,102.2557 254.6712,103.2581 L254.6712,104.5089 C254.724827,104.910633 254.587236,105.314297 254.299414,105.599645 C254.011592,105.884993 253.606755,106.019094 253.2055,105.962 L246.1761,105.962 L246.1761,101.7987 Z" id="Shape" fill="#AE0055"></path>
|
||||
<rect id="Rectangle" fill="#000000" x="258.2133" y="0" width="41.7867" height="14.3262"></rect>
|
||||
<rect id="Rectangle" fill="#000000" x="75.8114" y="28.5282" width="16.0678" height="50.9157"></rect>
|
||||
<polygon id="Path" fill="#000000" points="39.108 28.532 18.919 47.23 15.845 47.23 15.845 28.532 0 28.532 0 79.448 15.845 79.448 15.845 59.899 19.079 59.899 40.369 79.448 64.949 79.448 33.713 51.975 60.805 28.532"></polygon>
|
||||
<polygon id="Path" fill="#000000" points="242.537 28.534 242.537 63.443 214.726 28.534 192.118 28.534 192.118 79.449 207.809 79.449 207.809 44.536 235.617 79.449 258.215 79.449 258.215 28.534"></polygon>
|
||||
<path d="M123.038,49.8789 C123.038,43.5445 124.588,40.3667 132.8114,40.3667 L151.5514,40.3667 C159.7853,40.3667 161.3247,43.5445 161.3247,49.8789 L161.3247,58.09 C161.3247,65.4774 159.7853,67.6022 152.3979,67.6022 L131.9774,67.6022 C124.588,67.6022 123.038,65.4774 123.038,58.09 L123.038,49.8789 Z M107.008,60.8905 C107.008,75.8127 115.3746,80.4498 129.4355,80.4498 L154.927,80.4498 C168.9984,80.4498 177.3629,75.8127 177.3629,60.8905 L177.3629,47.0634 C177.3629,32.156 168.9984,27.5167 154.927,27.5167 L129.4357,27.5167 C115.3748,27.5167 107.008,32.156 107.008,47.0634 L107.008,60.8905 Z" id="Shape" fill="#000000"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
37
src/frontend/src/main.js
Normal file
37
src/frontend/src/main.js
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
|
||||
import router from './router.js';
|
||||
//import store from './store/index.js';
|
||||
import { createApp } from 'vue'
|
||||
import App from './App.vue'
|
||||
|
||||
import {PhTrain, PhTruckTrailer, PhBoat, PhPencilSimple, PhLock,PhLockOpen,PhWarning ,PhMagnifyingGlass, PhPlus, PhUpload, PhDownload, PhTrash, PhArchive, PhFloppyDisk, PhArrowBendUpLeft, PhCheck} from "@phosphor-icons/vue";
|
||||
|
||||
const app = createApp(App);
|
||||
|
||||
app.component('PhPlus', PhPlus);
|
||||
app.component('PhDownload', PhDownload);
|
||||
app.component('PhUpload', PhUpload);
|
||||
app.component('PhMagnifyingGlass', PhMagnifyingGlass);
|
||||
app.component('PhTrash', PhTrash);
|
||||
app.component('PhArchive', PhArchive);
|
||||
app.component('PhFloppyDisk', PhFloppyDisk);
|
||||
app.component('PhArrowBendUpLeft', PhArrowBendUpLeft);
|
||||
app.component('PhCheck', PhCheck);
|
||||
app.component('PhWarning', PhWarning);
|
||||
app.component('PhLock', PhLock);
|
||||
app.component('PhLockOpen', PhLockOpen);
|
||||
app.component('PhTruckTrailer', PhTruckTrailer);
|
||||
app.component('PhBoat', PhBoat);
|
||||
app.component('PhTrain', PhTrain);
|
||||
app.component('PhPencilSimple', PhPencilSimple);
|
||||
|
||||
|
||||
|
||||
app.use(router);
|
||||
//app.use(store);
|
||||
|
||||
//app.component('base-button', () => import('./components/UI/BasicButton.vue'));
|
||||
//app.component('base-badge', () => import('./components/UI/BasicBadge.vue'));
|
||||
|
||||
|
||||
app.mount('#app');
|
||||
18
src/frontend/vite.config.js
Normal file
18
src/frontend/vite.config.js
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
import { fileURLToPath, URL } from 'node:url'
|
||||
|
||||
import { defineConfig } from 'vite'
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
import vueDevTools from 'vite-plugin-vue-devtools'
|
||||
|
||||
// https://vite.dev/config/
|
||||
export default defineConfig({
|
||||
plugins: [
|
||||
vue(),
|
||||
vueDevTools(),
|
||||
],
|
||||
resolve: {
|
||||
alias: {
|
||||
'@': fileURLToPath(new URL('./src', import.meta.url))
|
||||
},
|
||||
},
|
||||
})
|
||||
Loading…
Add table
Reference in a new issue