Added Bankimport, BankAccounts, BankStatements Some Visual Changes Added Contacts Changes in VendorInvoices Added layouts with default an one for Login PAge Added Input Group Component
90 lines
1.8 KiB
Vue
90 lines
1.8 KiB
Vue
<template>
|
|
<div id="main">
|
|
<!-- TODO: Kontakte erstellen und dem Kunden zuweisen -->
|
|
|
|
<InputGroup>
|
|
<UButton @click="router.push(`/contacts/create/`)">+ Kontakt</UButton>
|
|
|
|
<UInput
|
|
v-model="searchString"
|
|
placeholder="Suche..."
|
|
/>
|
|
</InputGroup>
|
|
|
|
|
|
|
|
<UTable
|
|
:rows="filteredRows"
|
|
:columns="itemColumns"
|
|
@select="selectItem"
|
|
:empty-state="{ icon: 'i-heroicons-circle-stack-20-solid', label: 'Noch keine Einträge' }"
|
|
>
|
|
<template #customer-data="{row}">
|
|
{{customers.find(customer => customer.id === row.customer) ? customers.find(customer => customer.id === row.customer).name : ''}}
|
|
</template>
|
|
<template #vendor-data="{row}">
|
|
{{vendors.find(vendor => vendor.id === row.vendor) ? vendors.find(vendor => vendor.id === row.vendor).name : ''}}
|
|
</template>
|
|
</UTable>
|
|
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
|
|
definePageMeta({
|
|
middleware: "auth"
|
|
})
|
|
|
|
|
|
const router = useRouter()
|
|
const {contacts,customers,vendors} = storeToRefs(useDataStore())
|
|
const mode = ref("show")
|
|
|
|
const itemColumns = [
|
|
|
|
{
|
|
key: "fullName",
|
|
label: "Name",
|
|
sortable: true
|
|
},
|
|
{
|
|
key: "customer",
|
|
label: "Kunde",
|
|
sortable: true
|
|
},
|
|
{
|
|
key: "vendor",
|
|
label: "Lieferant",
|
|
sortable: true
|
|
},
|
|
{
|
|
key: "role",
|
|
label: "Rolle",
|
|
}
|
|
]
|
|
|
|
|
|
const selectItem = (item) => {
|
|
router.push(`/contacts/show/${item.id} `)
|
|
}
|
|
|
|
|
|
const searchString = ref('')
|
|
|
|
const filteredRows = computed(() => {
|
|
if(!searchString.value) {
|
|
return contacts.value
|
|
}
|
|
|
|
return contacts.value.filter(item => {
|
|
return Object.values(item).some((value) => {
|
|
return String(value).toLowerCase().includes(searchString.value.toLowerCase())
|
|
})
|
|
})
|
|
})
|
|
</script>
|
|
|
|
<style scoped>
|
|
|
|
</style> |