hrms-user/src/modules/08_KPI/views/form.vue

206 lines
6.6 KiB
Vue
Raw Normal View History

2024-04-04 14:14:25 +07:00
<script setup lang="ts">
2024-04-09 15:22:23 +07:00
import { ref, onMounted, reactive } from "vue";
import { useRoute, useRouter } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import TabMain from "@/modules/08_KPI/views/TabMain.vue";
import { useQuasar } from "quasar";
2024-04-09 15:22:23 +07:00
import { useCounterMixin } from "@/stores/mixin";
import { useKpiDataStore } from "@/modules/08_KPI/store";
2024-04-09 15:22:23 +07:00
import type { FormProfile } from "@/modules/08_KPI/interface/request/index";
2024-04-10 10:07:41 +07:00
const route = useRoute();
const id = ref<string>(route.params.id as string);
const store = useKpiDataStore();
2024-04-09 15:22:23 +07:00
const $q = useQuasar();
const mixin = useCounterMixin();
const { showLoader, hideLoader, messageError } = mixin;
const formProfile = reactive<FormProfile>({
fullName: "นางสาวกัณฐิมา กาฬสินธุ์",
prefix: "นางสาว",
firstName: "กัณฐิมา",
lastName: "กาฬสินธุ์",
position: "หัวหน้าสำนักงาน",
type: "บริหาร",
level: "ชำนาญการพิเศษ",
status: "จัดเตรียมข้อมูล",
score: "100",
avartar: "https://cdn.quasar.dev/img/boy-avatar.png",
2024-04-09 15:22:23 +07:00
});
2024-04-04 14:14:25 +07:00
const router = useRouter();
2024-04-09 15:22:23 +07:00
function fetchEvaluation() {
showLoader();
http
.get(config.API.kpiEvaluation + `/${id.value}`)
.then((res) => {
const data = res.data.result;
store.dataEvaluation = data;
console.log(data);
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
hideLoader();
});
}
2024-04-09 15:22:23 +07:00
function getProfile() {
showLoader();
http
.get(config.API.profilePosition())
2024-04-09 15:22:23 +07:00
.then((res) => {
const data = res.data.result;
store.dataProfile = data;
console.log(data);
formProfile.fullName = `${data.prefix}${data.firstName} ${data.lastName}`;
2024-04-09 15:22:23 +07:00
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
hideLoader();
});
}
2024-04-09 16:30:20 +07:00
/** save */
2024-04-10 10:07:41 +07:00
function onSave() {}
2024-04-09 16:30:20 +07:00
2024-04-09 15:22:23 +07:00
onMounted(() => {
fetchEvaluation();
2024-04-09 15:22:23 +07:00
getProfile();
});
2024-04-04 14:14:25 +07:00
</script>
<template>
<div class="col-12 row justify-center">
<div class="col-xs-12 col-sm-12 col-md-11">
<div class="toptitle text-white col-12 row items-center">
<q-btn
icon="mdi-arrow-left"
unelevated
round
dense
flat
color="primary"
class="q-mr-sm"
@click="router.push(`/KPI`)"
/>
2024-04-10 10:07:41 +07:00
{{ id ? `แก้ไขแบบประเมิน` : `เพิ่มแบบประเมิน` }}
<q-space />
<q-btn label="บันทึก" color="secondary" unelevated @click="onSave"
><q-tooltip>นท</q-tooltip></q-btn
>
2024-04-04 14:14:25 +07:00
</div>
<div class="col-12">
<q-card bordered flat class="relative-position">
2024-04-19 15:30:39 +07:00
<div
class="absolute"
style="left: 2%; top: 50%; transform: translateY(-50%)"
>
<q-avatar size="95px">
<q-img :src="formProfile.avartar" />
</q-avatar>
</div>
2024-04-19 15:30:39 +07:00
<div class="row col-12">
<div class="row items-center col-12 q-pa-sm">
<div class="col-12" style="padding-left: 12%">
2024-04-19 15:30:39 +07:00
<div class="row col-12 items-center">
<span class="text-h6 text-weight-medium text-primary">{{
2024-04-09 15:22:23 +07:00
formProfile.fullName ? formProfile.fullName : "-"
}}</span>
<q-space />
<div class="q-gutter-x-sm">
<q-btn
unelevated
round
icon="mdi-file-eye-outline"
color="grey-2"
text-color="primary"
2024-04-19 15:30:39 +07:00
size="md"
2024-04-09 15:22:23 +07:00
>
<q-tooltip>อมลการชวยราชการ</q-tooltip>
</q-btn>
2024-04-10 10:07:41 +07:00
<q-btn
unelevated
round
color="grey-2"
text-color="blue-5"
icon="mdi-file-eye-outline"
2024-04-19 15:30:39 +07:00
size="md"
2024-04-10 10:07:41 +07:00
>
2024-04-09 15:22:23 +07:00
<q-tooltip>อมลการทดลองงาน</q-tooltip>
</q-btn>
</div>
2024-04-19 15:30:39 +07:00
</div>
2024-04-09 15:22:23 +07:00
</div>
</div>
2024-04-19 15:30:39 +07:00
<div class="row items-center bg-toolbar col-12 q-pa-sm">
<div class="col-12 q-py-xs" style="padding-left: 12%">
2024-04-19 15:30:39 +07:00
<div class="row no-wrap">
2024-04-09 15:22:23 +07:00
<div class="col-2">
<div class="column">
<span class="text-grey-6">ตำแหนงในสายงาน</span>
2024-04-19 15:30:39 +07:00
<span class="text-weight-medium text-dark">{{
2024-04-10 10:07:41 +07:00
formProfile.position
}}</span>
2024-04-09 15:22:23 +07:00
</div>
</div>
<div class="col-2">
<div class="column">
<span class="text-grey-6">ประเภท</span>
2024-04-19 15:30:39 +07:00
<span class="text-weight-medium text-dark">{{
2024-04-10 10:07:41 +07:00
formProfile.type
}}</span>
2024-04-09 15:22:23 +07:00
</div>
</div>
<div class="col-2">
<div class="column">
<span class="text-grey-6">ระดบชนงาน</span>
2024-04-19 15:30:39 +07:00
<span class="text-weight-medium text-dark">{{
2024-04-10 10:07:41 +07:00
formProfile.level
}}</span>
2024-04-09 15:22:23 +07:00
</div>
</div>
<div class="col-2">
<div class="column">
<span class="text-grey-6">สถานะการประเม</span>
2024-04-19 15:30:39 +07:00
<span class="text-weight-medium text-dark">{{
2024-04-10 10:07:41 +07:00
formProfile.status
}}</span>
2024-04-09 15:22:23 +07:00
</div>
</div>
<div class="col-2">
<div class="column">
<span class="text-grey-6">คะแนนประเม</span>
2024-04-19 15:30:39 +07:00
<span class="text-weight-medium text-primary">{{
2024-04-10 10:07:41 +07:00
formProfile.score
}}</span>
2024-04-09 15:22:23 +07:00
</div>
</div>
</div>
</div>
</div>
</div>
</q-card>
<q-card class="q-mt-md rounded">
<TabMain />
</q-card>
2024-04-04 14:14:25 +07:00
</div>
</div>
</div>
</template>
2024-04-19 15:30:39 +07:00
<style>
.bg-toolbar {
background-color: #f2fbfa;
2024-04-19 15:30:39 +07:00
}
</style>