แบบประเมิน => API ผลสัมฤทธิ์ของงาน

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-04-24 15:00:53 +07:00
parent 5b52f9998f
commit a050534d1a
6 changed files with 245 additions and 77 deletions

View file

@ -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>