149 lines
6.1 KiB
Vue
149 lines
6.1 KiB
Vue
<script setup>
|
|
import { ref, onBeforeMount, computed } from 'vue';
|
|
import { useRoute } from 'vue-router';
|
|
import { useI18n } from 'vue-i18n';
|
|
import { dashIfEmpty, toDate } from 'src/filters';
|
|
import VnLv from 'src/components/ui/VnLv.vue';
|
|
import VnLinkPhone from 'src/components/ui/VnLinkPhone.vue';
|
|
import CardSummary from 'components/ui/CardSummary.vue';
|
|
import VnUserLink from 'src/components/ui/VnUserLink.vue';
|
|
import VnTitle from 'src/components/common/VnTitle.vue';
|
|
import RoleDescriptorProxy from 'src/pages/Account/Role/Card/RoleDescriptorProxy.vue';
|
|
import DepartmentDescriptorProxy from 'src/pages/Department/Card/DepartmentDescriptorProxy.vue';
|
|
import { useAdvancedSummary } from 'src/composables/useAdvancedSummary';
|
|
import WorkerDescriptorMenu from './WorkerDescriptorMenu.vue';
|
|
|
|
const route = useRoute();
|
|
const { t } = useI18n();
|
|
|
|
const $props = defineProps({
|
|
id: {
|
|
type: Number,
|
|
default: 0,
|
|
},
|
|
});
|
|
|
|
const entityId = computed(() => $props.id || route.params.id);
|
|
const basicDataUrl = ref(null);
|
|
const advancedSummary = ref();
|
|
|
|
onBeforeMount(async () => {
|
|
advancedSummary.value = await useAdvancedSummary('Workers', entityId.value);
|
|
basicDataUrl.value = `#/worker/${entityId.value}/basic-data`;
|
|
});
|
|
</script>
|
|
|
|
<template>
|
|
<CardSummary
|
|
ref="summary"
|
|
:url="`Workers/summary`"
|
|
:filter="{ where: { id: entityId } }"
|
|
data-key="Worker"
|
|
>
|
|
<template #header="{ entity }">
|
|
<div>{{ entity.id }} - {{ entity.firstName }} {{ entity.lastName }}</div>
|
|
</template>
|
|
<template #menu="{ entity }">
|
|
<WorkerDescriptorMenu :worker="entity" :is-excluded="workerExcluded" />
|
|
</template>
|
|
<template #body="{ entity: worker }">
|
|
<QCard class="vn-one">
|
|
<VnTitle :url="basicDataUrl" :text="t('globals.summary.basicData')" />
|
|
<VnLv :label="t('globals.name')" :value="worker.user?.nickname" />
|
|
<VnLv :label="t('worker.list.department')">
|
|
<template #value>
|
|
<span class="link" v-text="worker.department?.department?.name" />
|
|
<DepartmentDescriptorProxy
|
|
:id="worker.department?.department?.id"
|
|
/>
|
|
</template>
|
|
</VnLv>
|
|
<VnLv :label="t('worker.summary.boss')" link>
|
|
<template #value>
|
|
<VnUserLink
|
|
v-if="worker.boss"
|
|
:name="dashIfEmpty(worker.boss?.name)"
|
|
:worker-id="worker.bossFk"
|
|
/>
|
|
</template>
|
|
</VnLv>
|
|
<VnLv :value="worker.mobileExtension">
|
|
<template #label>
|
|
{{ t('worker.summary.phoneExtension') }}
|
|
<VnLinkPhone :phone-number="worker.mobileExtension" />
|
|
</template>
|
|
</VnLv>
|
|
<VnLv :value="worker.phone">
|
|
<template #label>
|
|
{{ t('worker.summary.entPhone') }}
|
|
<VnLinkPhone :phone-number="worker.phone" />
|
|
</template>
|
|
</VnLv>
|
|
<VnLv :value="advancedSummary?.client?.phone">
|
|
<template #label>
|
|
{{ t('worker.summary.personalPhone') }}
|
|
<VnLinkPhone :phone-number="advancedSummary?.client?.phone" />
|
|
</template>
|
|
</VnLv>
|
|
</QCard>
|
|
<QCard class="vn-one" v-if="advancedSummary">
|
|
<VnTitle :url="basicDataUrl" :text="t('globals.summary.basicData')" />
|
|
<VnLv
|
|
:label="t('worker.summary.fiDueDate')"
|
|
:value="toDate(advancedSummary.fiDueDate)"
|
|
/>
|
|
<VnLv :label="t('worker.summary.sex')" :value="worker.sex" />
|
|
<VnLv
|
|
:label="t('worker.summary.seniority')"
|
|
:value="toDate(advancedSummary.seniority)"
|
|
/>
|
|
<VnLv :label="t('worker.summary.fi')" :value="advancedSummary.fi" />
|
|
<VnLv
|
|
:label="t('worker.summary.birth')"
|
|
:value="toDate(advancedSummary.birth)"
|
|
/>
|
|
<VnLv
|
|
:label="t('worker.summary.isFreelance')"
|
|
:value="advancedSummary.isFreelance"
|
|
/>
|
|
<VnLv
|
|
:label="t('worker.summary.isSsDiscounted')"
|
|
:value="advancedSummary.isSsDiscounted"
|
|
/>
|
|
<VnLv
|
|
:label="t('worker.summary.hasMachineryAuthorized')"
|
|
:value="advancedSummary.hasMachineryAuthorized"
|
|
/>
|
|
<VnLv
|
|
:label="t('worker.summary.isDisable')"
|
|
:value="advancedSummary.isDisable"
|
|
/>
|
|
</QCard>
|
|
<QCard class="vn-one">
|
|
<VnTitle :text="t('worker.summary.userData')" />
|
|
<VnLv :label="t('globals.name')" :value="worker?.user?.nickname" />
|
|
<VnLv
|
|
:label="t('globals.params.email')"
|
|
:value="worker.user?.emailUser?.email"
|
|
copy
|
|
/>
|
|
<VnLv :label="t('worker.summary.role')">
|
|
<template #value>
|
|
<span class="link">
|
|
{{ worker?.user?.role?.name }}
|
|
<RoleDescriptorProxy :id="worker?.user?.role?.id" />
|
|
</span>
|
|
</template>
|
|
</VnLv>
|
|
<VnLv :value="worker?.sip?.extension">
|
|
<template #label>
|
|
{{ t('worker.summary.sipExtension') }}
|
|
<VnLinkPhone :phone-number="worker?.sip?.extension" />
|
|
</template>
|
|
</VnLv>
|
|
<VnLv :label="t('queue')" :value="worker.sip?.queueMember?.queue" />
|
|
</QCard>
|
|
</template>
|
|
</CardSummary>
|
|
</template>
|