hrms-user/src/modules/08_KPI/components/Tab/TabMain.vue

121 lines
4 KiB
Vue
Raw Normal View History

2024-04-09 15:22:23 +07:00
<script setup lang="ts">
import { ref } from "vue";
import { useKpiDataStore } from "@/modules/08_KPI/store";
import { useRoute } from "vue-router";
2024-04-09 15:22:23 +07:00
import Assessment from "@/modules/08_KPI/components/Tab/01_Assessment.vue";
import Evaluator from "@/modules/08_KPI/components/Tab/02_Evaluator.vue";
import CommanderAbove from "@/modules/08_KPI/components/Tab/03_CommanderAbove.vue";
import CommanderAboveOneStep from "@/modules/08_KPI/components/Tab/04_CommanderAboveOneStep.vue";
import File from "@/modules/08_KPI/components/Tab/05_File.vue";
2024-04-09 15:22:23 +07:00
const store = useKpiDataStore();
const route = useRoute();
2024-05-08 08:06:53 +07:00
const isReadonly = ref<boolean>(route.name === "KPIEditEvaluator" ? true : false);
const step = ref<number>(1); // 1 = จัดทำข้อตกลง, 2 = รายงานความก้าวหน้า, 3 = รายงานผลสำเร็จของงาน
2024-05-02 16:13:34 +07:00
const indicatorScore = defineModel("indicatorScore", {
type: Number,
default: 0,
});
const competencyScore = defineModel("competencyScore", {
type: Number,
default: 0,
});
2024-04-09 15:22:23 +07:00
const itemsTab = ref<any>([
{
name: "1",
2024-05-08 08:06:53 +07:00
label: "จัดทำแบบฟอร์มการประเมิน",
2024-04-09 15:22:23 +07:00
},
{
name: "2",
2024-05-08 08:06:53 +07:00
label: "รายงานความก้าวหน้า",
2024-04-09 15:22:23 +07:00
},
{
name: "3",
2024-05-08 08:06:53 +07:00
label: "รายงานผลสำเร็จของงาน",
},
2024-05-08 08:06:53 +07:00
// {
// name: "3",
// label: "ผู้บังคับบัญชาเหนือขึ้นไป",
// },
// {
// name: "4",
// label: "ผู้บังคับบัญชาเหนือขึ้นไปอีกชั้นหนึ่ง",
// },
{
name: "5",
2024-04-09 15:22:23 +07:00
label: "ไฟล์เอกสาร",
},
]);
2024-04-19 15:30:39 +07:00
const splitterModel = ref<number>(12);
2024-04-09 15:22:23 +07:00
</script>
2024-04-09 15:22:23 +07:00
<template>
<q-splitter v-model="splitterModel" disable>
<template v-slot:before>
<q-tabs
v-model="store.tabMain"
vertical
class="text-grey-7 text-weight-light"
active-class="bg-blue-1 text-blue-8 text-weight-bold"
>
2024-04-19 15:30:39 +07:00
<!-- <q-tab
2024-04-09 15:22:23 +07:00
class="hover-tab"
v-for="(tab, index) in itemsTab"
:key="index"
:name="tab.name"
:icon="tab.icon"
:label="tab.label"
2024-04-19 15:30:39 +07:00
/> -->
2024-05-08 08:06:53 +07:00
<q-tab name="1" label="จัดทำข้อตกลง" />
<q-tab name="2" label="รายงานความก้าวหน้า" :disable="step < 2" />
<q-tab name="3" label="รายงานผลสำเร็จของงาน" :disable="step < 3" />
<!-- <q-tab name="3" label="ผู้บังคับบัญชา">
<div class="text-caption">เหนอขนไป</div>
2024-04-19 15:30:39 +07:00
</q-tab>
<q-tab name="4" label="ผู้บังคับบัญชา">
<div class="text-caption">เหนอขนไปอกชนหน</div>
2024-05-08 08:06:53 +07:00
</q-tab> -->
<q-tab name="5" label="ไฟล์เอกสาร" />
2024-04-09 15:22:23 +07:00
</q-tabs>
</template>
<template v-slot:after>
<q-tab-panels
v-model="store.tabMain"
animated
swipeable
vertical
transition-prev="jump-up"
transition-next="jump-up"
>
<q-tab-panel
v-for="(tab, index) in itemsTab"
:key="index"
:name="tab.name"
2024-04-19 15:30:39 +07:00
class="q-pa-none"
2024-04-09 15:22:23 +07:00
>
2024-05-02 16:13:34 +07:00
<Assessment
v-if="store.tabMain === '1'"
v-model:indicatorScore="indicatorScore"
v-model:competencyScore="competencyScore"
/>
<Evaluator v-if="store.tabMain === '2'" :type="'evaluator'" />
<Evaluator v-if="store.tabMain === '3'" :type="'commander'" />
<Evaluator v-if="store.tabMain === '4'" :type="'commanderHigh'" />
<File v-if="store.tabMain === '5'" />
2024-04-09 15:22:23 +07:00
</q-tab-panel>
</q-tab-panels>
</template>
</q-splitter>
</template>
2024-04-09 15:22:23 +07:00
<style scoped>
.hover-tab:hover {
background-color: #0793f1;
color: white !important;
opacity: 1 !important;
}
</style>