Added Frontend
This commit is contained in:
14
frontend/components/columnRenderings/active.vue
Normal file
14
frontend/components/columnRenderings/active.vue
Normal file
@@ -0,0 +1,14 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.active" class="text-primary">Ja</span>
|
||||
<span v-else class="text-rose-600">Nein</span>
|
||||
</template>
|
||||
18
frontend/components/columnRenderings/address.vue
Normal file
18
frontend/components/columnRenderings/address.vue
Normal file
@@ -0,0 +1,18 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.infoData.streetNumber">{{props.row.infoData.streetNumber}},</span>
|
||||
<span v-if="props.row.infoData.street">{{props.row.infoData.street}},</span>
|
||||
<span v-if="props.row.infoData.special">{{props.row.infoData.special}},</span>
|
||||
<span v-if="props.row.infoData.zip">{{props.row.infoData.zip}},</span>
|
||||
<span v-if="props.row.infoData.city">{{props.row.infoData.city}}</span>
|
||||
|
||||
</template>
|
||||
19
frontend/components/columnRenderings/contact.vue
Normal file
19
frontend/components/columnRenderings/contact.vue
Normal file
@@ -0,0 +1,19 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
},
|
||||
inShow: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="props.row.contact">
|
||||
<nuxt-link v-if="props.inShow" :to="`/standardEntity/contacts/show/${props.row.contact.id}`">{{props.row.contact ? props.row.contact.name : ''}}</nuxt-link>
|
||||
<span v-else>{{props.row.contact ? props.row.contact.name : ''}}</span>
|
||||
</div></template>
|
||||
15
frontend/components/columnRenderings/created_at.vue
Normal file
15
frontend/components/columnRenderings/created_at.vue
Normal file
@@ -0,0 +1,15 @@
|
||||
<script setup>
|
||||
import dayjs from "dayjs";
|
||||
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.created_at">{{dayjs(props.row.created_at).format("DD.MM.YYYY HH:mm")}}</span>
|
||||
</template>
|
||||
20
frontend/components/columnRenderings/customer.vue
Normal file
20
frontend/components/columnRenderings/customer.vue
Normal file
@@ -0,0 +1,20 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
},
|
||||
inShow: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="props.row.customer">
|
||||
<nuxt-link v-if="props.inShow" :to="`/standardEntity/customers/show/${props.row.customer.id}`">{{props.row.customer ? props.row.customer.name : ''}}</nuxt-link>
|
||||
<span v-else>{{props.row.customer ? props.row.customer.name : ''}}</span>
|
||||
</div>
|
||||
</template>
|
||||
13
frontend/components/columnRenderings/description.vue
Normal file
13
frontend/components/columnRenderings/description.vue
Normal file
@@ -0,0 +1,13 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="props.row.description" v-html="props.row.description.html"/>
|
||||
</template>
|
||||
15
frontend/components/columnRenderings/driver.vue
Normal file
15
frontend/components/columnRenderings/driver.vue
Normal file
@@ -0,0 +1,15 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.driver">{{props.row.driver ? "" : props.row.driver}}</span>
|
||||
</template>
|
||||
15
frontend/components/columnRenderings/endDate.vue
Normal file
15
frontend/components/columnRenderings/endDate.vue
Normal file
@@ -0,0 +1,15 @@
|
||||
<script setup>
|
||||
import dayjs from "dayjs";
|
||||
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.endDate">{{dayjs(props.row.endDate).format("DD.MM.YYYY")}}</span>
|
||||
</template>
|
||||
15
frontend/components/columnRenderings/endDateTime.vue
Normal file
15
frontend/components/columnRenderings/endDateTime.vue
Normal file
@@ -0,0 +1,15 @@
|
||||
<script setup>
|
||||
import dayjs from "dayjs";
|
||||
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.endDate">{{dayjs(props.row.endDate).format("DD.MM.YYYY HH:mm")}}</span>
|
||||
</template>
|
||||
@@ -0,0 +1,23 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
|
||||
const supabase = useSupabaseClient()
|
||||
|
||||
|
||||
let inventoryitemgroups = await Promise.all(props.row.inventoryitemgroups.map(async (i) => {
|
||||
return (await supabase.from("inventoryitemgroups").select("id,name").eq("id",i).single()).data.name
|
||||
}))
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="props.row.inventoryitemgroups">
|
||||
{{props.row.inventoryitemgroups ? inventoryitemgroups.join(", ") : ''}}
|
||||
</div>
|
||||
</template>
|
||||
@@ -0,0 +1,23 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
|
||||
const supabase = useSupabaseClient()
|
||||
|
||||
|
||||
let inventoryitems = await Promise.all(props.row.inventoryitems.map(async (i) => {
|
||||
return (await supabase.from("inventoryitems").select("id,name").eq("id",i).single()).data.name
|
||||
}))
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="props.row.inventoryitems">
|
||||
{{props.row.inventoryitems ? inventoryitems.join(", ") : ''}}
|
||||
</div>
|
||||
</template>
|
||||
13
frontend/components/columnRenderings/isCompany.vue
Normal file
13
frontend/components/columnRenderings/isCompany.vue
Normal file
@@ -0,0 +1,13 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span>{{props.row.isCompany ? 'Unternehmen' : 'Privat'}}</span>
|
||||
</template>
|
||||
14
frontend/components/columnRenderings/phase.vue
Normal file
14
frontend/components/columnRenderings/phase.vue
Normal file
@@ -0,0 +1,14 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.phases && props.row.phases.length > 0">{{props.row.phases.find(i => i.active).label}}</span>
|
||||
</template>
|
||||
20
frontend/components/columnRenderings/plant.vue
Normal file
20
frontend/components/columnRenderings/plant.vue
Normal file
@@ -0,0 +1,20 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
},
|
||||
inShow: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="props.row.plant">
|
||||
<nuxt-link v-if="props.inShow " :to="`/standardEntity/plants/show/${props.row.plant.id}`">{{props.row.plant ? props.row.plant.name : ''}}</nuxt-link>
|
||||
<span v-else>{{props.row.plant ? props.row.plant.name : ''}}</span>
|
||||
</div>
|
||||
</template>
|
||||
16
frontend/components/columnRenderings/profile.vue
Normal file
16
frontend/components/columnRenderings/profile.vue
Normal file
@@ -0,0 +1,16 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
|
||||
const profileStore = useProfileStore()
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.profile">{{props.row.profile.id ? profileStore.getProfileById(props.row.profile.id).fullName : profileStore.getProfileById(props.row.profile).fullName}}</span>
|
||||
</template>
|
||||
27
frontend/components/columnRenderings/profiles.vue
Normal file
27
frontend/components/columnRenderings/profiles.vue
Normal file
@@ -0,0 +1,27 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
},
|
||||
inShow: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
})
|
||||
|
||||
const profileStore = useProfileStore()
|
||||
|
||||
const profiles = computed(() => props.row.profiles.map(id => profileStore.getProfileById(id).fullName).join(', '))
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="props.row.profiles">
|
||||
<div v-if="props.inShow">
|
||||
<nuxt-link v-for="(profileId, index) in props.row.profiles" :to="`/profiles/show/${profileId}`">{{profileStore.getProfileById(profileId).fullName}}{{index < props.row.profiles.length - 1 ? "," : ""}}</nuxt-link>
|
||||
</div>
|
||||
<span v-else>{{props.row.profiles ? profiles : ''}}</span>
|
||||
</div>
|
||||
</template>
|
||||
19
frontend/components/columnRenderings/project.vue
Normal file
19
frontend/components/columnRenderings/project.vue
Normal file
@@ -0,0 +1,19 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
},
|
||||
inShow: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="props.row.project">
|
||||
<nuxt-link v-if="props.inShow" :to="`/standardEntity/projects/show/${props.row.project.id}`">{{props.row.project ? props.row.project.name : ''}}</nuxt-link>
|
||||
<span v-else>{{props.row.project ? props.row.project.name : ''}}</span>
|
||||
</div></template>
|
||||
13
frontend/components/columnRenderings/projecttype.vue
Normal file
13
frontend/components/columnRenderings/projecttype.vue
Normal file
@@ -0,0 +1,13 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span>{{props.row.projecttype ? props.row.projecttype.name : ''}}</span>
|
||||
</template>
|
||||
13
frontend/components/columnRenderings/purchasePrice.vue
Normal file
13
frontend/components/columnRenderings/purchasePrice.vue
Normal file
@@ -0,0 +1,13 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span>{{props.row.purchase_price ? useCurrency(props.row.purchase_price) : ''}}</span>
|
||||
</template>
|
||||
14
frontend/components/columnRenderings/recurring.vue
Normal file
14
frontend/components/columnRenderings/recurring.vue
Normal file
@@ -0,0 +1,14 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.recurring">Ja</span>
|
||||
<span v-else>Nein</span>
|
||||
</template>
|
||||
13
frontend/components/columnRenderings/sellingPrice.vue
Normal file
13
frontend/components/columnRenderings/sellingPrice.vue
Normal file
@@ -0,0 +1,13 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span>{{props.row.selling_price ? useCurrency(props.row.selling_price) : ''}}</span>
|
||||
</template>
|
||||
@@ -0,0 +1,13 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.sellingPriceComposed">{{ useCurrency(props.row.sellingPriceComposed.material)}}</span>
|
||||
</template>
|
||||
@@ -0,0 +1,13 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.sellingPriceComposed">{{ useCurrency(props.row.sellingPriceComposed.total) }}</span>
|
||||
</template>
|
||||
@@ -0,0 +1,13 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.sellingPriceComposed">{{ useCurrency(props.row.sellingPriceComposed.worker) }}</span>
|
||||
</template>
|
||||
14
frontend/components/columnRenderings/sepa.vue
Normal file
14
frontend/components/columnRenderings/sepa.vue
Normal file
@@ -0,0 +1,14 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.hasSEPA">Ja</span>
|
||||
<span v-else>Nein</span>
|
||||
</template>
|
||||
15
frontend/components/columnRenderings/sepaDate.vue
Normal file
15
frontend/components/columnRenderings/sepaDate.vue
Normal file
@@ -0,0 +1,15 @@
|
||||
<script setup>
|
||||
import dayjs from "dayjs";
|
||||
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.sepaDate">{{dayjs(props.row.sepaDate).format("DD.MM.YYYY")}}</span>
|
||||
</template>
|
||||
21
frontend/components/columnRenderings/serviceCategories.vue
Normal file
21
frontend/components/columnRenderings/serviceCategories.vue
Normal file
@@ -0,0 +1,21 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
|
||||
const servicecategories = ref([])
|
||||
|
||||
const setup = async () => {
|
||||
servicecategories.value = await useEntities("servicecategories").select()
|
||||
}
|
||||
|
||||
setup()
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.servicecategories && servicecategories.length > 0">{{props.row.servicecategories.map(i => servicecategories.find(x => x.id === i).name).join(", ")}}</span>
|
||||
</template>
|
||||
15
frontend/components/columnRenderings/signDate.vue
Normal file
15
frontend/components/columnRenderings/signDate.vue
Normal file
@@ -0,0 +1,15 @@
|
||||
<script setup>
|
||||
import dayjs from "dayjs";
|
||||
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.signDate">{{dayjs(props.row.signDate).format("DD.MM.YYYY")}}</span>
|
||||
</template>
|
||||
14
frontend/components/columnRenderings/space.vue
Normal file
14
frontend/components/columnRenderings/space.vue
Normal file
@@ -0,0 +1,14 @@
|
||||
<script setup>
|
||||
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.currentSpace">{{props.row.currentSpace.name}}</span>
|
||||
</template>
|
||||
15
frontend/components/columnRenderings/startDate.vue
Normal file
15
frontend/components/columnRenderings/startDate.vue
Normal file
@@ -0,0 +1,15 @@
|
||||
<script setup>
|
||||
import dayjs from "dayjs";
|
||||
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.startDate">{{dayjs(props.row.startDate).format("DD.MM.YYYY")}}</span>
|
||||
</template>
|
||||
15
frontend/components/columnRenderings/startDateTime.vue
Normal file
15
frontend/components/columnRenderings/startDateTime.vue
Normal file
@@ -0,0 +1,15 @@
|
||||
<script setup>
|
||||
import dayjs from "dayjs";
|
||||
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span v-if="props.row.startDate">{{dayjs(props.row.startDate).format("DD.MM.YYYY HH:mm")}}</span>
|
||||
</template>
|
||||
13
frontend/components/columnRenderings/unit.vue
Normal file
13
frontend/components/columnRenderings/unit.vue
Normal file
@@ -0,0 +1,13 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span>{{props.row.unit ? props.row.unit.name : ''}}</span>
|
||||
</template>
|
||||
13
frontend/components/columnRenderings/usePlanning.vue
Normal file
13
frontend/components/columnRenderings/usePlanning.vue
Normal file
@@ -0,0 +1,13 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span>{{props.row.usePlanning ? 'Ja' : 'Nein'}}</span>
|
||||
</template>
|
||||
22
frontend/components/columnRenderings/vehicle.vue
Normal file
22
frontend/components/columnRenderings/vehicle.vue
Normal file
@@ -0,0 +1,22 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
},
|
||||
inShow: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="props.row.vehicle">
|
||||
<nuxt-link v-if="props.inShow" :to="`/standardEntity/vehicles/show/${props.row.vehicle.id}`">
|
||||
{{ props.row.vehicle ? props.row.vehicle.licensePlate : '' }}
|
||||
</nuxt-link>
|
||||
<span v-else>{{ props.row.vehicle ? props.row.vehicle.licensePlate : '' }}</span>
|
||||
</div>
|
||||
</template>
|
||||
23
frontend/components/columnRenderings/vehiclesWithLoad.vue
Normal file
23
frontend/components/columnRenderings/vehiclesWithLoad.vue
Normal file
@@ -0,0 +1,23 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
}
|
||||
})
|
||||
|
||||
const supabase = useSupabaseClient()
|
||||
|
||||
|
||||
let vehicles = await Promise.all(props.row.vehicles.map(async (i) => {
|
||||
return (await supabase.from("vehicles").select("id,licensePlate").eq("id",i).single()).data.licensePlate
|
||||
}))
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="props.row.vehicles">
|
||||
{{props.row.vehicles ? vehicles.join(", ") : ''}}
|
||||
</div>
|
||||
</template>
|
||||
20
frontend/components/columnRenderings/vendor.vue
Normal file
20
frontend/components/columnRenderings/vendor.vue
Normal file
@@ -0,0 +1,20 @@
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: {}
|
||||
},
|
||||
inShow: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="props.row.vendor">
|
||||
<nuxt-link v-if="props.inShow" :to="`/standardEntity/vendors/show/${props.row.vendor.id}`">{{props.row.vendor ? props.row.vendor.name : ''}}</nuxt-link>
|
||||
<span v-else>{{props.row.vendor ? props.row.vendor.name : ''}}</span>
|
||||
</div>
|
||||
</template>
|
||||
Reference in New Issue
Block a user