feat: scaffold Vue 3 + Vuetify + Pinia frontend
This commit is contained in:
parent
4a4c9515f6
commit
8e7fe78b8b
1
src/AccountTracking.Web/dist/assets/DashboardView-C3LqhZPP.js
vendored
Normal file
1
src/AccountTracking.Web/dist/assets/DashboardView-C3LqhZPP.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import{_ as e,c,o}from"./index-BQDVIWAB.js";const r={};function a(n,s){return o(),c("div",null,"Dashboard")}const _=e(r,[["render",a]]);export{_ as default};
|
||||
1
src/AccountTracking.Web/dist/assets/LoginView-D99laBRt.js
vendored
Normal file
1
src/AccountTracking.Web/dist/assets/LoginView-D99laBRt.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import{_ as e,c,o as n}from"./index-BQDVIWAB.js";const o={};function r(t,s){return n(),c("div",null,"Login")}const a=e(o,[["render",r]]);export{a as default};
|
||||
1
src/AccountTracking.Web/dist/assets/TransactionsView-D0SorozP.js
vendored
Normal file
1
src/AccountTracking.Web/dist/assets/TransactionsView-D0SorozP.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import{_ as c,c as e,o as n}from"./index-BQDVIWAB.js";const o={};function r(s,t){return n(),e("div",null,"Transactions")}const _=c(o,[["render",r]]);export{_ as default};
|
||||
964
src/AccountTracking.Web/dist/assets/apexcharts.ssr.esm-fe46cd2d-CEIEYvuU.js
vendored
Normal file
964
src/AccountTracking.Web/dist/assets/apexcharts.ssr.esm-fe46cd2d-CEIEYvuU.js
vendored
Normal file
File diff suppressed because one or more lines are too long
852
src/AccountTracking.Web/dist/assets/index-BQDVIWAB.js
vendored
Normal file
852
src/AccountTracking.Web/dist/assets/index-BQDVIWAB.js
vendored
Normal file
File diff suppressed because one or more lines are too long
5
src/AccountTracking.Web/dist/assets/index-D22zsSwR.css
vendored
Normal file
5
src/AccountTracking.Web/dist/assets/index-D22zsSwR.css
vendored
Normal file
File diff suppressed because one or more lines are too long
BIN
src/AccountTracking.Web/dist/assets/materialdesignicons-webfont-B7mPwVP_.ttf
vendored
Normal file
BIN
src/AccountTracking.Web/dist/assets/materialdesignicons-webfont-B7mPwVP_.ttf
vendored
Normal file
Binary file not shown.
BIN
src/AccountTracking.Web/dist/assets/materialdesignicons-webfont-CSr8KVlo.eot
vendored
Normal file
BIN
src/AccountTracking.Web/dist/assets/materialdesignicons-webfont-CSr8KVlo.eot
vendored
Normal file
Binary file not shown.
BIN
src/AccountTracking.Web/dist/assets/materialdesignicons-webfont-Dp5v-WZN.woff2
vendored
Normal file
BIN
src/AccountTracking.Web/dist/assets/materialdesignicons-webfont-Dp5v-WZN.woff2
vendored
Normal file
Binary file not shown.
BIN
src/AccountTracking.Web/dist/assets/materialdesignicons-webfont-PXm3-2wK.woff
vendored
Normal file
BIN
src/AccountTracking.Web/dist/assets/materialdesignicons-webfont-PXm3-2wK.woff
vendored
Normal file
Binary file not shown.
14
src/AccountTracking.Web/dist/index.html
vendored
Normal file
14
src/AccountTracking.Web/dist/index.html
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="cs">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" href="/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Finance Tracker</title>
|
||||
<script type="module" crossorigin src="/assets/index-BQDVIWAB.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-D22zsSwR.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
</body>
|
||||
</html>
|
||||
1
src/AccountTracking.Web/env.d.ts
vendored
Normal file
1
src/AccountTracking.Web/env.d.ts
vendored
Normal file
@ -0,0 +1 @@
|
||||
/// <reference types="vite/client" />
|
||||
13
src/AccountTracking.Web/index.html
Normal file
13
src/AccountTracking.Web/index.html
Normal file
@ -0,0 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="cs">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" href="/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Finance Tracker</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script type="module" src="/src/main.ts"></script>
|
||||
</body>
|
||||
</html>
|
||||
1848
src/AccountTracking.Web/package-lock.json
generated
Normal file
1848
src/AccountTracking.Web/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
30
src/AccountTracking.Web/package.json
Normal file
30
src/AccountTracking.Web/package.json
Normal file
@ -0,0 +1,30 @@
|
||||
{
|
||||
"name": "accounttracking-web",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vue-tsc -b && vite build",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"@mdi/font": "^7.4.47",
|
||||
"apexcharts": "^3.54.0",
|
||||
"pinia": "^2.3.1",
|
||||
"vue": "^3.5.13",
|
||||
"vue-router": "^4.5.0",
|
||||
"vue3-apexcharts": "^1.8.0",
|
||||
"vuetify": "^3.6.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tsconfig/node22": "^22.0.5",
|
||||
"@vitejs/plugin-vue": "^5.2.1",
|
||||
"@vue/tsconfig": "^0.9.0",
|
||||
"nswag": "^14.1.0",
|
||||
"typescript": "~5.8.0",
|
||||
"vite": "^6.2.2",
|
||||
"vite-plugin-vuetify": "^2.0.4",
|
||||
"vue-tsc": "^2.2.8"
|
||||
}
|
||||
}
|
||||
5
src/AccountTracking.Web/src/App.vue
Normal file
5
src/AccountTracking.Web/src/App.vue
Normal file
@ -0,0 +1,5 @@
|
||||
<template>
|
||||
<v-app>
|
||||
<router-view />
|
||||
</v-app>
|
||||
</template>
|
||||
28
src/AccountTracking.Web/src/main.ts
Normal file
28
src/AccountTracking.Web/src/main.ts
Normal file
@ -0,0 +1,28 @@
|
||||
import { createApp } from 'vue'
|
||||
import { createPinia } from 'pinia'
|
||||
import { createVuetify } from 'vuetify'
|
||||
import { aliases, mdi } from 'vuetify/iconsets/mdi'
|
||||
import * as components from 'vuetify/components'
|
||||
import * as directives from 'vuetify/directives'
|
||||
import VueApexCharts from 'vue3-apexcharts'
|
||||
import router from './router'
|
||||
import App from './App.vue'
|
||||
|
||||
import 'vuetify/styles'
|
||||
import '@mdi/font/css/materialdesignicons.css'
|
||||
|
||||
const vuetify = createVuetify({
|
||||
components,
|
||||
directives,
|
||||
icons: { defaultSet: 'mdi', aliases, sets: { mdi } },
|
||||
theme: {
|
||||
defaultTheme: 'dark',
|
||||
},
|
||||
})
|
||||
|
||||
createApp(App)
|
||||
.use(createPinia())
|
||||
.use(router)
|
||||
.use(vuetify)
|
||||
.use(VueApexCharts)
|
||||
.mount('#app')
|
||||
12
src/AccountTracking.Web/src/router/index.ts
Normal file
12
src/AccountTracking.Web/src/router/index.ts
Normal file
@ -0,0 +1,12 @@
|
||||
import { createRouter, createWebHistory } from 'vue-router'
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHistory(),
|
||||
routes: [
|
||||
{ path: '/login', component: () => import('../views/LoginView.vue'), meta: { public: true } },
|
||||
{ path: '/', component: () => import('../views/DashboardView.vue') },
|
||||
{ path: '/transactions', component: () => import('../views/TransactionsView.vue') },
|
||||
],
|
||||
})
|
||||
|
||||
export default router
|
||||
1
src/AccountTracking.Web/src/views/DashboardView.vue
Normal file
1
src/AccountTracking.Web/src/views/DashboardView.vue
Normal file
@ -0,0 +1 @@
|
||||
<template><div>Dashboard</div></template>
|
||||
1
src/AccountTracking.Web/src/views/LoginView.vue
Normal file
1
src/AccountTracking.Web/src/views/LoginView.vue
Normal file
@ -0,0 +1 @@
|
||||
<template><div>Login</div></template>
|
||||
1
src/AccountTracking.Web/src/views/TransactionsView.vue
Normal file
1
src/AccountTracking.Web/src/views/TransactionsView.vue
Normal file
@ -0,0 +1 @@
|
||||
<template><div>Transactions</div></template>
|
||||
11
src/AccountTracking.Web/tsconfig.app.json
Normal file
11
src/AccountTracking.Web/tsconfig.app.json
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"extends": "@vue/tsconfig/tsconfig.dom.json",
|
||||
"compilerOptions": {
|
||||
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
||||
"paths": {
|
||||
"@/*": ["./src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
|
||||
"exclude": ["src/**/__tests__/*"]
|
||||
}
|
||||
7
src/AccountTracking.Web/tsconfig.json
Normal file
7
src/AccountTracking.Web/tsconfig.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"files": [],
|
||||
"references": [
|
||||
{ "path": "./tsconfig.node.json" },
|
||||
{ "path": "./tsconfig.app.json" }
|
||||
]
|
||||
}
|
||||
7
src/AccountTracking.Web/tsconfig.node.json
Normal file
7
src/AccountTracking.Web/tsconfig.node.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"extends": "@tsconfig/node22/tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo"
|
||||
},
|
||||
"include": ["vite.config.*"]
|
||||
}
|
||||
17
src/AccountTracking.Web/vite.config.js
Normal file
17
src/AccountTracking.Web/vite.config.js
Normal file
@ -0,0 +1,17 @@
|
||||
import { defineConfig } from 'vite';
|
||||
import vue from '@vitejs/plugin-vue';
|
||||
import vuetify from 'vite-plugin-vuetify';
|
||||
export default defineConfig({
|
||||
plugins: [
|
||||
vue(),
|
||||
vuetify({ autoImport: true }),
|
||||
],
|
||||
server: {
|
||||
proxy: {
|
||||
'/api': {
|
||||
target: 'http://localhost:5000',
|
||||
changeOrigin: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
18
src/AccountTracking.Web/vite.config.ts
Normal file
18
src/AccountTracking.Web/vite.config.ts
Normal file
@ -0,0 +1,18 @@
|
||||
import { defineConfig } from 'vite'
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
import vuetify from 'vite-plugin-vuetify'
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [
|
||||
vue(),
|
||||
vuetify({ autoImport: true }),
|
||||
],
|
||||
server: {
|
||||
proxy: {
|
||||
'/api': {
|
||||
target: 'http://localhost:5000',
|
||||
changeOrigin: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
Loading…
Reference in New Issue
Block a user