This commit is contained in:
2024-04-01 17:36:31 +02:00
parent c0e0345faa
commit 88bca67745
15 changed files with 87 additions and 62 deletions

View File

@@ -28,7 +28,7 @@ useHead({
})
useSeoMeta({
ogSiteName: 'spaces.software',
ogSiteName: 'FEDEO',
twitterCard: 'summary_large_image'
})

View File

@@ -187,7 +187,7 @@ const updateDocumentAssignment = async () => {
v-if="!documentData.tags.includes('Bild')"
/>
<img
class="h-full w-full"
class=" w-full"
:src="documentData.url"
alt=""
v-else

View File

@@ -33,7 +33,7 @@ const uploadFiles = async () => {
let fileData = fileUploadFormData.value
fileData[type] = elementId
await dataStore.uploadFiles(fileData, document.getElementById("fileUploadInput").files,true)
await dataStore.uploadF632iles(fileData, document.getElementById("fileUploadInput").files,true)
uploadModalOpen.value = false;
uploadInProgress.value = false;

View File

@@ -156,7 +156,7 @@ const renderText = (text) => {
<div class="flex items-center gap-3">
<UAvatar
v-if="!item.user"
:src="colorMode.value === 'light' ? '/spaces_hell.svg' : '/spaces.svg' "
:src="colorMode.value === 'light' ? '/Logo.png' : '/Logo_Dark.png' "
/>
<UAvatar
:alt="dataStore.profiles.find(profile => profile.id === item.user).fullName"

View File

@@ -13,10 +13,6 @@ const items = computed(() => [
label: '',
disabled: true
}], [{
label: 'Einstellungen',
icon: 'i-heroicons-cog-8-tooth',
to: '/settings'
}, {
label: 'Suche',
icon: 'i-heroicons-command-line',
shortcuts: [metaSymbol.value, 'K'],
@@ -31,7 +27,7 @@ const items = computed(() => [
}], [{
label: 'Webseite',
icon: 'i-heroicons-book-open',
to: 'https://spaces.software',
to: 'https://fedeo.de',
target: '_blank'
},/* {
label: 'GitHub repository',

View File

@@ -8,10 +8,8 @@ const _useDashboard = () => {
defineShortcuts({
'g-h': () => router.push('/'),
'g-i': () => router.push('/inbox'),
'g-u': () => router.push('/profiles'),
'g-s': () => router.push('/settings'),
'?': () => isHelpSlideoverOpen.value = true,
'g-a': () => router.push('/tasks'),
'?': () => isHelpSlideoverOpen.value = !isHelpSlideoverOpen.value,
n: () => isNotificationsSlideoverOpen.value = !isNotificationsSlideoverOpen.value
})

View File

@@ -174,7 +174,7 @@ const navLinks = [
},
]
//const activeFeatures = dataStore.tenants.find(dataStore.currentTenant).features
let links = [
{
@@ -305,7 +305,8 @@ let links = [
label: "Belege",
to: "/receipts",
icon: "i-heroicons-document-text"
},{
},
{
label: "Bank",
to: "/banking",
icon: "i-heroicons-document-text"
@@ -482,14 +483,15 @@ const footerLinks = [/*{
</UDashboardLayout>
<div
v-else
class="flex-col mx-auto my-auto mt-10 w-3/4"
class="flex flex-col"
>
<img
:src="!isLight ? '/spaces.svg' : '/spaces_hell.svg'"
alt="Logo"
class="w-1/3 mx-auto"
<UColorModeImage
light="/Logo.png"
dark="/Logo_Dark.png"
class="w-1/2 mx-auto my-10"
/>
<UProgress animation="carousel"/>
<UProgress animation="carousel" class="w-3/4 mx-auto mt-10" />
</div>
</template>

View File

@@ -46,13 +46,13 @@ export default defineNuxtConfig({
icons: ['heroicons','mdi']
},
colorMode: {
preference: 'dark'
preference: 'system'
},
pwa: {
manifest: {
name: "spaces.software",
short_name: "spaces",
description: "spaces.software",
name: "FEDEO",
short_name: "FEDEO",
description: "FEDEO",
icons: [
{
src: "/icon.png",

View File

@@ -91,6 +91,15 @@
<p>Konto: {{selectedStatement.account}}</p>
<p class="text-wrap">Beschreibung: <br>{{selectedStatement.text}}</p>
</div>
<UFormGroup>
<USelectMenu
:options="dataStore.createddocuments"
/>
</UFormGroup>
</UCard>
</USlideover>

View File

@@ -86,8 +86,8 @@ const onSubmit = async (data) => {
<UCard class="max-w-sm w-full mx-auto mt-5">
<UColorModeImage
light="/spaces_hell.svg"
dark="/spaces.svg"
light="/Logo.png"
dark="/Logo_Dark.png"
/>
<!-- <img

View File

@@ -80,7 +80,7 @@ const mode = ref(route.params.mode || "show")
const itemInfo = ref({
name: "",
customer: 0,
users: [user.value.id]
users: [dataStore.activeProfile.id]
})
const tags = dataStore.getDocumentTags
@@ -370,7 +370,9 @@ setupPage()
</UTable>
<DocumentList :documents="dataStore.getDocumentsByProjectId(currentItem.id)"/>
<!--
{{dataStore.getDocumentsByProjectId(currentItem.id)}}
-->
</div>

View File

@@ -93,6 +93,7 @@
</template>
<template #date-data="{row}">
<span v-if="row.date">{{row.date ? dayjs(row.date).format("DD.MM.YY") : ''}}</span>
<span v-if="row.documentDate">{{row.documentDate ? dayjs(row.documentDate).format("DD.MM.YY") : ''}}</span>
</template>
<template #dueDate-data="{row}">
<span :class="dayjs(row.dueDate).diff(dayjs()) <= 0 ? ['text-rose-500'] : '' ">{{row.dueDate ? dayjs(row.dueDate).format("DD.MM.YY") : ''}}</span>
@@ -108,6 +109,9 @@
>
{{getRowAmount(row) === 0 ? '' : `${String(getRowAmount(row).toFixed(2)).replace('.',',')}`}}
</div>
<div v-else class="text-right">
{{calculateDocSum(row.rows)}}
</div>
</template>
</UTable>
@@ -141,6 +145,11 @@ const templateColumns = [
label: "Status.",
sortable: true
},
{
key: "amount",
label: "Betrag",
sortable: true
},
{
key: 'partner',
label: "Kunde / Lieferant",
@@ -166,11 +175,6 @@ const templateColumns = [
label: "Fällig:",
sortable: true
},
{
key: "amount",
label: "Betrag",
sortable: true
},
]
const selectedColumns = ref(templateColumns)
const columns = computed(() => templateColumns.filter((column) => selectedColumns.value.includes(column)))
@@ -233,6 +237,18 @@ const filteredRows = computed(() => {
})
})
})
const calculateDocSum = (rows) => {
let sum = 0
rows.forEach(row => {
if(row.mode !== "pagebreak") {
sum += row.price * row.quantity * ( row.taxPercent + 100)/100
}
})
return sum.toFixed(2)
}
</script>
<style scoped>

View File

@@ -103,8 +103,8 @@ const configTimeMode = ref("create")
const startTime = async () => {
console.log("started")
timeInfo.value = {
profile: dataStore.getOwnProfile.id,
start: dayjs().format("HH:mm:ssZ"),
profile: dataStore.activeProfile.id,
start: dayjs().format("HH:mm:ss"),
date: dayjs().format("YYYY-MM-DD"),
tenant: dataStore.currentTenant,
state: "Im Web gestartet"
@@ -120,7 +120,7 @@ const startTime = async () => {
} else if(data) {
//timeInfo.value = data[0]
await dataStore.fetchWorkingTimes()
runningTimeInfo.value = dataStore.times.find(time => time.profile === dataStore.getOwnProfile.id && !time.end)
runningTimeInfo.value = dataStore.times.find(time => time.profile === dataStore.activeProfile.id && !time.end)
}
}
@@ -250,30 +250,35 @@ const setState = async (newState) => {
</USelectMenu>
</template>
</UDashboardToolbar>
<UCard v-if="runningTimeInfo.id" class="m-3">
<template #header>
Gestartete Zeit:
</template>
<p>Start: {{dayjs(runningTimeInfo.start, "HH:mm:ssZ").format("HH:mm")}}</p>
<p>Dauer: {{dayjs().diff(dayjs(runningTimeInfo.start, "HH:mm:ssZ"),'minutes') > 59 ? `${Math.floor(dayjs().diff(dayjs(runningTimeInfo.start, "HH:mm:ssZ"),'minutes') / 60)}:${dayjs().diff(dayjs(runningTimeInfo.start, "HH:mm:ssZ"),'minutes') % 60} h` : dayjs().diff(dayjs(runningTimeInfo.start, "HH:mm:ssZ"),'minutes') + ' min' }}</p>
<UFormGroup
class="mt-2"
label="Notizen:"
<div class="mx-3">
<UAlert
v-if="runningTimeInfo.id"
class="my-3"
title="Laufende Zeit:"
>
<UTextarea
v-model="runningTimeInfo.notes"
/>
</UFormGroup>
<template #footer>
<UButton
@click="stopStartedTime"
:disabled="!runningTimeInfo.id"
>
Stop
</UButton>
</template>
</UCard>
<template #description>
<p>Start: {{dayjs(runningTimeInfo.start, "HH:mm:ss").format("HH:mm")}}</p>
<p>Dauer: {{dayjs().diff(dayjs(runningTimeInfo.start, "HH:mm:ss"),'minutes') > 59 ? `${Math.floor(dayjs().diff(dayjs(runningTimeInfo.start, "HH:mm:ss"),'minutes') / 60)}:${dayjs().diff(dayjs(runningTimeInfo.start, "HH:mm:ss"),'minutes') % 60} h` : dayjs().diff(dayjs(runningTimeInfo.start, "HH:mm:ss"),'minutes') + ' min' }}</p>
<UFormGroup
class="mt-2"
label="Notizen:"
>
<UTextarea
v-model="runningTimeInfo.notes"
/>
</UFormGroup>
<UButton
class="mt-3"
@click="stopStartedTime"
:disabled="!runningTimeInfo.id"
>
Stop
</UButton>
</template>
</UAlert>
</div>
<UModal
v-model="showConfigTimeModal"
@@ -319,9 +324,6 @@ const setState = async (newState) => {
/>
</template>
</UPopover>
<UInput
/>
</UFormGroup>
<!-- <UFormGroup
label="Start:"

BIN
spaces/public/Logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
spaces/public/Logo_Dark.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB