แบบประเมิน => API ผลสัมฤทธิ์ของงาน
This commit is contained in:
parent
5b52f9998f
commit
a050534d1a
6 changed files with 245 additions and 77 deletions
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { ref, reactive } from "vue";
|
||||
import { ref, reactive, watch } from "vue";
|
||||
import { useQuasar } from "quasar";
|
||||
import config from "@/app.config";
|
||||
import http from "@/plugins/http";
|
||||
|
|
@ -8,8 +8,12 @@ import type { FormDataAssigned } from "@/modules/08_KPI/interface/request/index"
|
|||
|
||||
import DialogHeader from "@/components/DialogHeader.vue";
|
||||
|
||||
import { useKpiDataStore } from "@/modules/08_KPI/store";
|
||||
import { useCounterMixin } from "@/stores/mixin";
|
||||
|
||||
const $q = useQuasar();
|
||||
const store = useKpiDataStore();
|
||||
|
||||
const {
|
||||
showLoader,
|
||||
hideLoader,
|
||||
|
|
@ -27,54 +31,98 @@ const kpiUserPlannedId = defineModel<string>("kpiUserPlannedId", {
|
|||
|
||||
const formData = reactive<FormDataAssigned>({
|
||||
including: "", //รหัสตัวชี้วัด
|
||||
indicator: "", //ชื่อตัวชี้วัด
|
||||
includingName: "", //ชื่อตัวชี้วัด
|
||||
target: "", //ค่าเป้าหมาย
|
||||
unit: "", //หน่วยนับ
|
||||
weigth: "", //น้ำหนัก (ร้อยละ)
|
||||
definition: "", //นิยามหรือความหมายของตัวชี้วัด
|
||||
unit: null, //หน่วยนับ
|
||||
weight: null, //น้ำหนัก (ร้อยละ)
|
||||
meaning: "", //นิยามหรือความหมายของตัวชี้วัด
|
||||
formula: "", //สูตรคำนวณ
|
||||
achievement1: "", // ผลสำเร็จของงาน1
|
||||
achievement2: "", // ผลสำเร็จของงาน2
|
||||
achievement3: "", // ผลสำเร็จของงาน3
|
||||
achievement4: "", // ผลสำเร็จของงาน4
|
||||
achievement5: "", // ผลสำเร็จของงาน5
|
||||
kpiUserEvaluationId: "",
|
||||
});
|
||||
|
||||
function fetchspecialByid(id: string) {
|
||||
showLoader();
|
||||
http
|
||||
.get(config.API.kpiAchievement("special") + `/${id}`)
|
||||
.then((res) => {
|
||||
const data = res.data.result;
|
||||
console.log(data);
|
||||
|
||||
formData.including = data.including;
|
||||
formData.includingName = data.includingName;
|
||||
formData.target = data.target;
|
||||
formData.unit = data.unit;
|
||||
formData.achievement1 = data.achievement1;
|
||||
formData.achievement2 = data.achievement2;
|
||||
formData.achievement3 = data.achievement3;
|
||||
formData.achievement4 = data.achievement4;
|
||||
formData.achievement5 = data.achievement5;
|
||||
formData.weight = data.weight;
|
||||
formData.formula = data.formula;
|
||||
formData.meaning = data.meaning;
|
||||
})
|
||||
.catch((err) => {
|
||||
messageError($q, err);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
}
|
||||
|
||||
/** ปิด dialog */
|
||||
function closeDialog() {
|
||||
modal.value = false;
|
||||
formData.including = "";
|
||||
formData.indicator = "";
|
||||
formData.includingName = "";
|
||||
formData.target = "";
|
||||
formData.unit = "";
|
||||
formData.unit = null;
|
||||
formData.achievement1 = "";
|
||||
formData.achievement2 = "";
|
||||
formData.achievement3 = "";
|
||||
formData.achievement4 = "";
|
||||
formData.achievement5 = "";
|
||||
formData.weigth = "";
|
||||
formData.definition = "";
|
||||
formData.weight = null;
|
||||
formData.meaning = "";
|
||||
formData.formula = "";
|
||||
}
|
||||
|
||||
function onSubmit() {
|
||||
dialogConfirm($q, async () => {
|
||||
console.log(formData);
|
||||
showLoader();
|
||||
formData.weight = Number(formData.weight);
|
||||
formData.unit = Number(formData.unit);
|
||||
formData.kpiUserEvaluationId = store.dataEvaluation.id;
|
||||
|
||||
// try {
|
||||
// const url = isStatusEdit.value
|
||||
// ? config.API.kpiAchievement("planned") + `/${kpiUserPlannedId.value}`
|
||||
// : config.API.kpiAchievement("planned");
|
||||
try {
|
||||
const url = isStatusEdit.value
|
||||
? config.API.kpiAchievement("special") + `/${kpiUserPlannedId.value}`
|
||||
: config.API.kpiAchievement("special");
|
||||
|
||||
// const method = isStatusEdit.value ? "put" : "post";
|
||||
// await http[method](url, formData);
|
||||
// success($q, "บันทึกข้อมูลสำเร็จ");
|
||||
// } catch (err) {
|
||||
// messageError($q, err);
|
||||
// } finally {
|
||||
// hideLoader();
|
||||
closeDialog();
|
||||
// }
|
||||
const method = isStatusEdit.value ? "put" : "post";
|
||||
await http[method](url, formData);
|
||||
success($q, "บันทึกข้อมูลสำเร็จ");
|
||||
} catch (err) {
|
||||
messageError($q, err);
|
||||
} finally {
|
||||
hideLoader();
|
||||
closeDialog();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
watch(
|
||||
() => modal.value,
|
||||
() => {
|
||||
if (modal.value) {
|
||||
isStatusEdit.value && fetchspecialByid(kpiUserPlannedId.value);
|
||||
}
|
||||
}
|
||||
);
|
||||
</script>
|
||||
<template>
|
||||
<q-dialog v-model="modal" persistent>
|
||||
|
|
@ -98,17 +146,19 @@ function onSubmit() {
|
|||
class="inputgreen"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอกรหัสตัวชี้วัด'}`]"
|
||||
hide-bottom-space
|
||||
lazy-rules
|
||||
/>
|
||||
</div>
|
||||
<div class="col-10">
|
||||
<q-input
|
||||
v-model="formData.indicator"
|
||||
v-model="formData.includingName"
|
||||
label="ชื่อตัวชี้วัด"
|
||||
outlined
|
||||
dense
|
||||
:rules="[(val:string) => !!val || `${'กรุณากรอกชื่อตัวชี้วัด'}`,]"
|
||||
hide-bottom-space
|
||||
class="inputgreen"
|
||||
lazy-rules
|
||||
/>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
|
|
@ -120,6 +170,7 @@ function onSubmit() {
|
|||
:rules="[(val:string) => !!val || `${'กรุณากรอกค่าเป้าหมาย'}`,]"
|
||||
hide-bottom-space
|
||||
class="inputgreen"
|
||||
lazy-rules
|
||||
/>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
|
|
@ -133,11 +184,12 @@ function onSubmit() {
|
|||
class="inputgreen"
|
||||
mask="#"
|
||||
reverse-fill-mask
|
||||
lazy-rules
|
||||
/>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<q-input
|
||||
v-model="formData.weigth"
|
||||
v-model="formData.weight"
|
||||
label="น้ำหนัก (ร้อยละ)"
|
||||
outlined
|
||||
dense
|
||||
|
|
@ -146,6 +198,7 @@ function onSubmit() {
|
|||
class="inputgreen"
|
||||
mask="#"
|
||||
reverse-fill-mask
|
||||
lazy-rules
|
||||
/>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
|
|
@ -174,6 +227,7 @@ function onSubmit() {
|
|||
(val) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`,
|
||||
]"
|
||||
hide-bottom-space
|
||||
lazy-rules
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -193,6 +247,7 @@ function onSubmit() {
|
|||
(val) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`,
|
||||
]"
|
||||
hide-bottom-space
|
||||
lazy-rules
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -212,6 +267,7 @@ function onSubmit() {
|
|||
(val) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`,
|
||||
]"
|
||||
hide-bottom-space
|
||||
lazy-rules
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -231,6 +287,7 @@ function onSubmit() {
|
|||
(val) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`,
|
||||
]"
|
||||
hide-bottom-space
|
||||
lazy-rules
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -250,6 +307,7 @@ function onSubmit() {
|
|||
(val) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`,
|
||||
]"
|
||||
hide-bottom-space
|
||||
lazy-rules
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -257,7 +315,7 @@ function onSubmit() {
|
|||
</div>
|
||||
<div class="col-12">
|
||||
<q-input
|
||||
v-model="formData.definition"
|
||||
v-model="formData.meaning"
|
||||
label="นิยามหรือความหมายของตัวชี้วัด"
|
||||
outlined
|
||||
dense
|
||||
|
|
@ -265,6 +323,7 @@ function onSubmit() {
|
|||
:rules="[(val:string) => !!val || `${'กรุณากรอกนิยามหรือความหมายของตัวชี้วัด'}`,]"
|
||||
hide-bottom-space
|
||||
class="inputgreen"
|
||||
lazy-rules
|
||||
/>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
|
|
@ -278,6 +337,7 @@ function onSubmit() {
|
|||
class="inputgreen"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอกสูตรคำนวณ'}`]"
|
||||
hide-bottom-space
|
||||
lazy-rules
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue