feature/#97-member-extend-data #105
4 changed files with 20 additions and 4 deletions
|
@ -80,6 +80,10 @@
|
||||||
|
|
||||||
<input type="text" id="internalId" />
|
<input type="text" id="internalId" />
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<label for="note">Notiz (optional)</label>
|
||||||
|
<textarea type="text" id="note" />
|
||||||
|
</div>
|
||||||
<div class="flex flex-row gap-2">
|
<div class="flex flex-row gap-2">
|
||||||
<button primary type="submit" :disabled="status == 'loading' || status?.status == 'success'">erstellen</button>
|
<button primary type="submit" :disabled="status == 'loading' || status?.status == 'success'">erstellen</button>
|
||||||
<Spinner v-if="status == 'loading'" class="my-auto" />
|
<Spinner v-if="status == 'loading'" class="my-auto" />
|
||||||
|
@ -154,6 +158,7 @@ export default defineComponent({
|
||||||
nameaffix: formData.nameaffix.value,
|
nameaffix: formData.nameaffix.value,
|
||||||
birthdate: formData.birthdate.value,
|
birthdate: formData.birthdate.value,
|
||||||
internalId: formData.internalId.value,
|
internalId: formData.internalId.value,
|
||||||
|
note: formData.note.value,
|
||||||
};
|
};
|
||||||
this.status = "loading";
|
this.status = "loading";
|
||||||
this.createMember(createMember)
|
this.createMember(createMember)
|
||||||
|
|
|
@ -15,6 +15,7 @@ export interface MemberViewModel {
|
||||||
sendNewsletter?: CommunicationViewModel;
|
sendNewsletter?: CommunicationViewModel;
|
||||||
smsAlarming?: Array<CommunicationViewModel>;
|
smsAlarming?: Array<CommunicationViewModel>;
|
||||||
preferredCommunication?: Array<CommunicationViewModel>;
|
preferredCommunication?: Array<CommunicationViewModel>;
|
||||||
|
note?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MemberStatisticsViewModel {
|
export interface MemberStatisticsViewModel {
|
||||||
|
@ -36,6 +37,7 @@ export interface CreateMemberViewModel {
|
||||||
nameaffix: string;
|
nameaffix: string;
|
||||||
birthdate: Date;
|
birthdate: Date;
|
||||||
internalId?: string;
|
internalId?: string;
|
||||||
|
note?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface UpdateMemberViewModel {
|
export interface UpdateMemberViewModel {
|
||||||
|
@ -46,4 +48,5 @@ export interface UpdateMemberViewModel {
|
||||||
nameaffix: string;
|
nameaffix: string;
|
||||||
birthdate: Date;
|
birthdate: Date;
|
||||||
internalId?: string;
|
internalId?: string;
|
||||||
|
note?: string;
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,6 +75,10 @@
|
||||||
<label for="internalId">Interne ID (optional)</label>
|
<label for="internalId">Interne ID (optional)</label>
|
||||||
<input type="text" id="internalId" v-model="member.internalId" />
|
<input type="text" id="internalId" v-model="member.internalId" />
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<label for="note">Notiz (optional)</label>
|
||||||
|
<textarea type="text" id="note" v-model="member.note" />
|
||||||
|
</div>
|
||||||
<div class="flex flex-row justify-end gap-2">
|
<div class="flex flex-row justify-end gap-2">
|
||||||
<button primary-outline type="reset" class="w-fit!" :disabled="canSaveOrReset" @click="resetForm">
|
<button primary-outline type="reset" class="w-fit!" :disabled="canSaveOrReset" @click="resetForm">
|
||||||
verwerfen
|
verwerfen
|
||||||
|
@ -93,7 +97,6 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { defineComponent } from "vue";
|
import { defineComponent } from "vue";
|
||||||
import { mapActions, mapState } from "pinia";
|
import { mapActions, mapState } from "pinia";
|
||||||
import MainTemplate from "@/templates/Main.vue";
|
|
||||||
import { useMemberStore } from "@/stores/admin/club/member/member";
|
import { useMemberStore } from "@/stores/admin/club/member/member";
|
||||||
import type { MemberViewModel, UpdateMemberViewModel } from "@/viewmodels/admin/club/member/member.models";
|
import type { MemberViewModel, UpdateMemberViewModel } from "@/viewmodels/admin/club/member/member.models";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
|
@ -163,6 +166,7 @@ export default defineComponent({
|
||||||
nameaffix: formData.nameaffix.value,
|
nameaffix: formData.nameaffix.value,
|
||||||
birthdate: formData.birthdate.value,
|
birthdate: formData.birthdate.value,
|
||||||
internalId: formData.internalId.value,
|
internalId: formData.internalId.value,
|
||||||
|
note: formData.note.value,
|
||||||
};
|
};
|
||||||
this.status = "loading";
|
this.status = "loading";
|
||||||
this.updateActiveMember(updateMember)
|
this.updateActiveMember(updateMember)
|
||||||
|
|
|
@ -25,13 +25,17 @@
|
||||||
<label for="birthdate">Geburtsdatum</label>
|
<label for="birthdate">Geburtsdatum</label>
|
||||||
<input type="date" id="birthdate" :value="activeMemberObj.birthdate" readonly />
|
<input type="date" id="birthdate" :value="activeMemberObj.birthdate" readonly />
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<label for="note">Notiz</label>
|
||||||
|
<textarea type="text" id="note" v-model="activeMemberObj.note" readonly />
|
||||||
|
</div>
|
||||||
<div v-if="membershipStatistics.length != 0 || totalMembershipStatistics != undefined">
|
<div v-if="membershipStatistics.length != 0 || totalMembershipStatistics != undefined">
|
||||||
<p>Statistiken zur Mitgliedschaft</p>
|
<p>Statistiken zur Mitgliedschaft</p>
|
||||||
<div class="flex flex-col h-fit w-full rounded-md overflow-hidden">
|
<div class="flex flex-col h-fit w-full rounded-md overflow-hidden divide-y divide-white">
|
||||||
<div class="bg-primary p-2 text-white flex flex-row justify-between items-center">
|
<div class="bg-primary p-2 text-white flex flex-row justify-between items-center">
|
||||||
<p>
|
<p>
|
||||||
gesamt {{ totalMembershipStatistics.durationInDays }} Tage
|
gesamt {{ totalMembershipStatistics?.durationInDays }} Tage
|
||||||
<span class="whitespace-nowrap"> ~> {{ totalMembershipStatistics.exactDuration }}</span>
|
<span class="whitespace-nowrap"> ~> {{ totalMembershipStatistics?.exactDuration }}</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
|
Loading…
Add table
Reference in a new issue