progress on player view
This commit is contained in:
parent
39d0f807d4
commit
9c9d9c9413
|
|
@ -1,8 +1,8 @@
|
||||||
import { createRouter, createWebHistory } from '@ionic/vue-router';
|
import { createRouter, createWebHistory } from '@ionic/vue-router';
|
||||||
import { useStore } from 'vuex'
|
import { useStore } from 'vuex'
|
||||||
import { RouteRecordRaw } from 'vue-router';
|
import { RouteRecordRaw, RouteLocationNormalizedGeneric } from 'vue-router';
|
||||||
import PlayerList from '../views/PlayerList.vue'
|
import PlayerList from '../views/PlayerList.vue'
|
||||||
import PlayerView from '../views/PlayerView.vue'
|
// import PlayerView from '../views/PlayerView.vue'
|
||||||
import LoginView from '../views/LoginView.vue'
|
import LoginView from '../views/LoginView.vue'
|
||||||
import HomeView from '../views/HomeView.vue'
|
import HomeView from '../views/HomeView.vue'
|
||||||
import BullpenView from "@/views/BullpenView.vue";
|
import BullpenView from "@/views/BullpenView.vue";
|
||||||
|
|
@ -19,19 +19,19 @@ const routes: Array<RouteRecordRaw> = [
|
||||||
{ path: '/home', component: HomeView },
|
{ path: '/home', component: HomeView },
|
||||||
{ path: '/profile', component: ProfileView },
|
{ path: '/profile', component: ProfileView },
|
||||||
{ path: '/players', component: PlayerList },
|
{ path: '/players', component: PlayerList },
|
||||||
{ path: '/player', component: PlayerView },
|
// { path: '/player', component: PlayerView },
|
||||||
{ path: '/bullpen', component: BullpenView },
|
{ path: '/bullpen', component: BullpenView },
|
||||||
{ path: '/stats', component: BullpenListView },
|
{ path: '/stats', component: BullpenListView },
|
||||||
{ path: '/summary', component: BullpenSummaryView },
|
{ path: '/summary', component: BullpenSummaryView },
|
||||||
// {
|
{
|
||||||
// path: '/player/:id',
|
path: '/player/:id',
|
||||||
// name: 'EditPlayer',
|
name: 'EditPlayer',
|
||||||
// component: () => import('@/views/PlayerView.vue'),
|
component: () => import('@/views/PlayerView.vue'),
|
||||||
// props: (route) => ({
|
props: (route: RouteLocationNormalizedGeneric) => ({
|
||||||
// player: route.state?.player || null, // Pass the player from the state if available
|
player: route.state?.player || null, // Pass the player from the state if available
|
||||||
// mode: route.query.mode || 'create', // Default to "create" if no query exists
|
mode: route.query.mode || 'create', // Default to "create" if no query exists
|
||||||
// }),
|
}),
|
||||||
// },
|
},
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
export default interface User {
|
export default interface User {
|
||||||
id: number,
|
id: number,
|
||||||
|
email: string,
|
||||||
firstName: string,
|
firstName: string,
|
||||||
lastName: string,
|
lastName: string,
|
||||||
dateOfBirth: Date,
|
dateOfBirth: Date,
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,25 @@ import Player from '@/types/Player';
|
||||||
const props = defineProps<{ player?: Player }>();
|
const props = defineProps<{ player?: Player }>();
|
||||||
|
|
||||||
// Todo: create default player
|
// Todo: create default player
|
||||||
|
const defaultPlayer: Player = {
|
||||||
|
id: 0,
|
||||||
|
gender: 'male',
|
||||||
|
bats: 'R',
|
||||||
|
throws: 'R',
|
||||||
|
jerseyNumber: 0,
|
||||||
|
createdAt: new Date(),
|
||||||
|
updatedAt: new Date(),
|
||||||
|
user: {
|
||||||
|
id: 0,
|
||||||
|
email: '',
|
||||||
|
firstName: '',
|
||||||
|
lastName: '',
|
||||||
|
dateOfBirth: new Date(),
|
||||||
|
roles: [],
|
||||||
|
createdAt: new Date(),
|
||||||
|
updatedAt: new Date(),
|
||||||
|
}
|
||||||
|
}
|
||||||
// ...
|
// ...
|
||||||
|
|
||||||
// Computed reactive player object: Either use the provided player or initialize with default
|
// Computed reactive player object: Either use the provided player or initialize with default
|
||||||
|
|
@ -95,10 +114,10 @@ const submit = handleSubmit((values: Player) => {
|
||||||
|
|
||||||
const isEdit = computed(() => !!player.value.id);
|
const isEdit = computed(() => !!player.value.id);
|
||||||
|
|
||||||
const [email, emailAttrs] = defineField('email');
|
const [email, emailAttrs] = defineField('user.email');
|
||||||
const [firstName, firstNameAttrs] = defineField('firstName');
|
const [firstName, firstNameAttrs] = defineField('user.firstName');
|
||||||
const [lastName, lastNameAttrs] = defineField('lastName');
|
const [lastName, lastNameAttrs] = defineField('user.lastName');
|
||||||
const [dateOfBirth, dateOfBirthAttrs] = defineField('dateOfBirth');
|
const [dateOfBirth, dateOfBirthAttrs] = defineField('user.dateOfBirth');
|
||||||
const [gender, genderAttrs] = defineField('gender');
|
const [gender, genderAttrs] = defineField('gender');
|
||||||
const [bats, batsAttrs] = defineField('bats');
|
const [bats, batsAttrs] = defineField('bats');
|
||||||
const [throws, throwsAttrs] = defineField('throws');
|
const [throws, throwsAttrs] = defineField('throws');
|
||||||
|
|
@ -132,7 +151,7 @@ const [height, heightAttrs] = defineField('height');
|
||||||
v-bind="emailAttrs"
|
v-bind="emailAttrs"
|
||||||
type="email"
|
type="email"
|
||||||
>
|
>
|
||||||
<small v-if="errors.email" class="error-message">{{ errors.email }}</small>
|
<small v-if="errors['user.email']" class="error-message">{{ errors['user.email'] }}</small>
|
||||||
</ion-input>
|
</ion-input>
|
||||||
</Field>
|
</Field>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
|
|
@ -146,7 +165,7 @@ const [height, heightAttrs] = defineField('height');
|
||||||
v-bind="firstNameAttrs"
|
v-bind="firstNameAttrs"
|
||||||
type="text"
|
type="text"
|
||||||
>
|
>
|
||||||
<small v-if="errors.firstName" class="error-message">{{ errors.firstName }}</small>
|
<small v-if="errors['user.firstName']" class="error-message">{{ errors['user.firstName'] }}</small>
|
||||||
</ion-input>
|
</ion-input>
|
||||||
</Field>
|
</Field>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
|
|
@ -160,7 +179,7 @@ const [height, heightAttrs] = defineField('height');
|
||||||
v-bind="lastNameAttrs"
|
v-bind="lastNameAttrs"
|
||||||
type="text"
|
type="text"
|
||||||
>
|
>
|
||||||
<small v-if="errors.lastName" class="error-message">{{ errors.lastName }}</small>
|
<small v-if="errors['user.lastName']" class="error-message">{{ errors['user.lastName'] }}</small>
|
||||||
</ion-input>
|
</ion-input>
|
||||||
</Field>
|
</Field>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
|
|
@ -174,7 +193,7 @@ const [height, heightAttrs] = defineField('height');
|
||||||
v-bind="dateOfBirthAttrs"
|
v-bind="dateOfBirthAttrs"
|
||||||
type="date"
|
type="date"
|
||||||
>
|
>
|
||||||
<small v-if="errors.dateOfBirth" class="error-message">{{ errors.dateOfBirth }}</small>
|
<small v-if="errors['user.dateOfBirth']" class="error-message">{{ errors['user.dateOfBirth'] }}</small>
|
||||||
</ion-input>
|
</ion-input>
|
||||||
</Field>
|
</Field>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ const User = db.User;
|
||||||
const Op = db.Sequelize.Op;
|
const Op = db.Sequelize.Op;
|
||||||
|
|
||||||
exports.insert = (req, res) => {
|
exports.insert = (req, res) => {
|
||||||
registerUser(req.body).then(user => {
|
registerUser(req.body.user).then(user => {
|
||||||
return Player.create({
|
return Player.create({
|
||||||
firstName: req.body.firstName,
|
firstName: req.body.firstName,
|
||||||
lastName: req.body.lastName,
|
lastName: req.body.lastName,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue