feat: 前端分離+功能api化

1. 新增資產管理CRUD、googleOAuth登入
2. 更改原記帳controller
This commit is contained in:
2026-06-25 14:19:07 +08:00
parent 7bb931c97b
commit 85972f950c
70 changed files with 4754 additions and 1520 deletions

View File

@@ -5,7 +5,8 @@ import InputError from '@/Components/InputError.vue';
import InputLabel from '@/Components/InputLabel.vue';
import PrimaryButton from '@/Components/PrimaryButton.vue';
import TextInput from '@/Components/TextInput.vue';
import { Head, Link, useForm } from '@inertiajs/vue3';
import { RouterLink, useRoute } from 'vue-router';
import { reactive } from 'vue';
defineProps({
canResetPassword: {
@@ -16,7 +17,7 @@ defineProps({
},
});
const form = useForm({
const form = reactive({
email: '',
password: '',
remember: false,
@@ -31,7 +32,7 @@ const submit = () => {
<template>
<GuestLayout>
<Head title="Log in" />
<div title="Log in"></div>
<div v-if="status" class="mb-4 text-sm font-medium text-green-600">
{{ status }}

View File

@@ -4,9 +4,10 @@ import InputError from '@/Components/InputError.vue';
import InputLabel from '@/Components/InputLabel.vue';
import PrimaryButton from '@/Components/PrimaryButton.vue';
import TextInput from '@/Components/TextInput.vue';
import { Head, Link, useForm } from '@inertiajs/vue3';
import { RouterLink, useRoute } from 'vue-router';
import { reactive } from 'vue';
const form = useForm({
const form = reactive({
name: '',
email: '',
password: '',
@@ -22,7 +23,7 @@ const submit = () => {
<template>
<GuestLayout>
<Head title="Register" />
<div title="Register"></div>
<form @submit.prevent="submit">
<div>
@@ -93,12 +94,12 @@ const submit = () => {
</div>
<div class="mt-4 flex items-center justify-end">
<Link
:href="route('login')"
<RouterLink
:to="{ name: 'login' }"
class="rounded-md text-sm text-gray-600 underline hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2"
>
Already registered?
</Link>
</RouterLink>
<PrimaryButton
class="ms-4"

View File

@@ -4,7 +4,7 @@ import InputError from '@/Components/InputError.vue';
import InputLabel from '@/Components/InputLabel.vue';
import PrimaryButton from '@/Components/PrimaryButton.vue';
import TextInput from '@/Components/TextInput.vue';
import { Head, useForm } from '@inertiajs/vue3';
import { reactive } from 'vue';
const props = defineProps({
email: {
@@ -17,7 +17,7 @@ const props = defineProps({
},
});
const form = useForm({
const form = reactive({
token: props.token,
email: props.email,
password: '',
@@ -33,7 +33,7 @@ const submit = () => {
<template>
<GuestLayout>
<Head title="Reset Password" />
<div title="Reset Password"></div>
<form @submit.prevent="submit">
<div>

View File

@@ -2,7 +2,8 @@
import { computed } from 'vue';
import GuestLayout from '@/Layouts/GuestLayout.vue';
import PrimaryButton from '@/Components/PrimaryButton.vue';
import { Head, Link, useForm } from '@inertiajs/vue3';
import { RouterLink, useRoute } from 'vue-router';
import { reactive, computed } from 'vue';
const props = defineProps({
status: {
@@ -10,7 +11,7 @@ const props = defineProps({
},
});
const form = useForm({});
const form = reactive({});
const submit = () => {
form.post(route('verification.send'));
@@ -23,7 +24,7 @@ const verificationLinkSent = computed(
<template>
<GuestLayout>
<Head title="Email Verification" />
<div title="Email Verification"></div>
<div class="mb-4 text-sm text-gray-600">
Thanks for signing up! Before getting started, could you verify your
@@ -48,12 +49,12 @@ const verificationLinkSent = computed(
Resend Verification Email
</PrimaryButton>
<Link
:href="route('logout')"
<RouterLink
:to="{ name: 'logout' }"
method="post"
as="button"
class="rounded-md text-sm text-gray-600 underline hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2"
>Log Out</Link
>Log Out</RouterLink
>
</div>
</form>