fix bug kpi
This commit is contained in:
parent
63611d0811
commit
1fa38897cf
7 changed files with 82 additions and 69 deletions
|
|
@ -13,7 +13,6 @@ import { useCounterMixin } from "@/stores/mixin";
|
|||
import { useKpiDataStore } from "@/modules/08_KPI/store";
|
||||
|
||||
const $q = useQuasar();
|
||||
const route = useRoute();
|
||||
const mixin = useCounterMixin();
|
||||
const store = useKpiDataStore();
|
||||
const {
|
||||
|
|
@ -294,6 +293,7 @@ function clickList(id: string, isData: boolean = false) {
|
|||
formDetail.strategy = data.strategy;
|
||||
formDetail.strategyId = data.strategyId;
|
||||
formDetail.strategyName = data.strategyName;
|
||||
formDetail.documentInfoEvidence = data.documentInfoEvidence;
|
||||
})
|
||||
.catch((err) => {
|
||||
messageError($q, err);
|
||||
|
|
@ -452,6 +452,7 @@ const title = computed(() => {
|
|||
return name;
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<q-dialog v-model="modal" persistent>
|
||||
<q-card class="col-12" style="width: 100%">
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ function onSubmitAdd() {
|
|||
config.API.kpiCommentP(
|
||||
"problem",
|
||||
type.value + sendType.value,
|
||||
"user",
|
||||
store.rolePerson.toLowerCase(),
|
||||
sendId.value ? sendId.value : idList.value
|
||||
),
|
||||
{
|
||||
|
|
@ -162,7 +162,14 @@ function closeAdd() {
|
|||
function getList() {
|
||||
showLoader();
|
||||
http
|
||||
.get(config.API.kpiCommentP("problem", type.value, "user", idList.value))
|
||||
.get(
|
||||
config.API.kpiCommentP(
|
||||
"problem",
|
||||
type.value,
|
||||
store.rolePerson.toLowerCase(),
|
||||
idList.value
|
||||
)
|
||||
)
|
||||
.then((res) => {
|
||||
const data = res.data.result;
|
||||
listTarget.value = data;
|
||||
|
|
@ -190,7 +197,12 @@ function onSubmitComment(role: string) {
|
|||
showLoader();
|
||||
http
|
||||
.put(
|
||||
config.API.kpiCommentP("problem", type.value, role, formDataView.id),
|
||||
config.API.kpiCommentP(
|
||||
"problem",
|
||||
type.value,
|
||||
store.rolePerson.toLowerCase(),
|
||||
formDataView.id
|
||||
),
|
||||
body
|
||||
)
|
||||
.then((res) => {
|
||||
|
|
@ -345,11 +357,11 @@ watch(
|
|||
<div v-else>
|
||||
<div class="row q-pa-md q-col-gutter-sm">
|
||||
<div class="row col-12 text-weight-medium">
|
||||
<div class="col-4 text-grey-6">หัวข้อความก้าวหน้า</div>
|
||||
<div class="col-4 text-grey-6">หัวข้อปัญหา</div>
|
||||
<div class="col-8">{{ formDataView.topic }}</div>
|
||||
</div>
|
||||
<div class="row col-12 text-weight-medium">
|
||||
<div class="col-4 text-grey-6">รายละเอียดความก้าวหน้า</div>
|
||||
<div class="col-4 text-grey-6">รายละเอียดปัญหา</div>
|
||||
<div class="col-8">{{ formDataView.reason }}</div>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
|
|
|
|||
|
|
@ -16,17 +16,8 @@ import { useKpiDataStore } from "@/modules/08_KPI/store";
|
|||
|
||||
const store = useKpiDataStore();
|
||||
const $q = useQuasar();
|
||||
const route = useRoute();
|
||||
const id = ref<string>(route.params.id as string);
|
||||
const mixin = useCounterMixin();
|
||||
const {
|
||||
dialogConfirm,
|
||||
showLoader,
|
||||
hideLoader,
|
||||
messageError,
|
||||
dialogMessageNotify,
|
||||
success,
|
||||
} = mixin;
|
||||
const { dialogConfirm, showLoader, hideLoader, messageError, success } = mixin;
|
||||
|
||||
const modal = defineModel<boolean>("modal", { required: true });
|
||||
const type = defineModel<string>("type", { required: true });
|
||||
|
|
@ -93,7 +84,12 @@ function onSubmitAdd() {
|
|||
showLoader();
|
||||
http
|
||||
.put(
|
||||
config.API.kpiCommentP("progress", type.value, "user", idList.value),
|
||||
config.API.kpiCommentP(
|
||||
"progress",
|
||||
type.value,
|
||||
store.rolePerson.toLocaleLowerCase(),
|
||||
idList.value
|
||||
),
|
||||
{
|
||||
reason: formDataAdd.reason,
|
||||
topic: formDataAdd.topic,
|
||||
|
|
@ -136,7 +132,14 @@ function closeAdd() {
|
|||
function getList() {
|
||||
showLoader();
|
||||
http
|
||||
.get(config.API.kpiCommentP("progress", type.value, "user", idList.value))
|
||||
.get(
|
||||
config.API.kpiCommentP(
|
||||
"progress",
|
||||
type.value,
|
||||
store.rolePerson.toLocaleLowerCase(),
|
||||
idList.value
|
||||
)
|
||||
)
|
||||
.then((res) => {
|
||||
const data = res.data.result;
|
||||
listTarget.value = data;
|
||||
|
|
@ -164,7 +167,12 @@ function onSubmitComment(role: string) {
|
|||
showLoader();
|
||||
http
|
||||
.put(
|
||||
config.API.kpiCommentP("progress", type.value, role, formDataView.id),
|
||||
config.API.kpiCommentP(
|
||||
"progress",
|
||||
type.value,
|
||||
store.rolePerson.toLocaleLowerCase(),
|
||||
formDataView.id
|
||||
),
|
||||
body
|
||||
)
|
||||
.then((res) => {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import http from "@/plugins/http";
|
|||
import type { QTableProps } from "quasar";
|
||||
|
||||
import Dialog from "@/modules/08_KPI/components/Tab/Dialog/01_FormIndicator.vue";
|
||||
import Dialog03 from "@/modules/08_KPI/components/Tab/Dialog/03_FormIndicatorSpecial.vue";
|
||||
// import Dialog03 from "@/modules/08_KPI/components/Tab/Dialog/03_FormIndicatorSpecial.vue";
|
||||
import DialogEvaluate from "@/modules/08_KPI/components/Tab/DialogEvaluate/01_Indicator.vue";
|
||||
import DialogViewInfo from "@/modules/08_KPI/components/Tab/Dialog/DialogViewInfo.vue";
|
||||
import DialogProgress from "@/modules/08_KPI/components/Tab/Dialog/DialogCommentProgress.vue";
|
||||
|
|
|
|||
|
|
@ -311,17 +311,14 @@ export const useKpiDataStore = defineStore("KPIDate", () => {
|
|||
const indicatorWeight1Total = ref<number>(0); // น้ำหนักรวมมิติที่ 1 ต้องไม่เกิน 100%
|
||||
const indicatorWeight2Total = ref<number>(0); // น้ำหนักรวมมิติที่ 2 ต้องไม่เกิน 20
|
||||
|
||||
const indicatorPercent = ref<number>(100); // รวมผลการประเมิน (ร้อยละ)
|
||||
const indicatorPercentVal = ref<number>(0); // รวมผลการประเมิน (ร้อยละ) ที่ได้จริง
|
||||
const indicatorScore = ref<number>(70); // สรุปผลการประเมินผลสัมฤทธิ์ของงาน ( คะแนนเต็ม indicatorScore คะแนน)
|
||||
const competencyScore = ref<number>(20); // ผลการประเมินสมรรถนะ (competencyScore คะแนน)
|
||||
const devScore = ref<number>(10); // ผลการประเมินการพัฒนาตนเอง (devScore คะแนน)
|
||||
const devScoreVal = ref<number>(0); // ผลการประเมินการพัฒนาตนเองที่ได้กี่คะแนน
|
||||
const competencyDevScore = ref<number>(30); // สรุปผลการประเมินพฤติกรรมการปฏิบัติราชการ (สมรรถนะ+การพัฒนาตนเอง) (คะแนนเต็ม competencyDevScore คะแนน)
|
||||
const competencyDevScoreVal = ref<number>(0); // สรุปผลการประเมินพฤติกรรมการปฏิบัติราชการ (สมรรถนะ+การพัฒนาตนเอง)ที่ได้กี่คะแนน
|
||||
const devScore = ref<number>(10); // ผลการประเมินการพัฒนาตนเอง (devScore คะแนน)
|
||||
|
||||
// SUMMARY EXCLUSIVE CASE
|
||||
const excusiveIndicatorPercent = ref<number>(100); // รวมผลการประเมิน (ร้อยละ) แต่ละมิติต้องไม่เกิน 100%
|
||||
const excusiveIndicator1PercentVal = ref<number>(0); // รวมผลการประเมิน (ร้อยละ) มิติที่ 1 ที่ได้จริง
|
||||
const excusiveIndicator1Weight = ref<number>(60); // น้ำหนักของมิติที่ 1
|
||||
const excusiveIndicator1ScoreVal = ref<number>(0); // คะแนนมิติที่ 1 ที่ได้จริง
|
||||
|
|
@ -355,7 +352,6 @@ export const useKpiDataStore = defineStore("KPIDate", () => {
|
|||
indicatorWeightTotal,
|
||||
indicatorWeight1Total,
|
||||
indicatorWeight2Total,
|
||||
indicatorPercent,
|
||||
indicatorPercentVal,
|
||||
indicatorScore,
|
||||
indicatorScoreVal,
|
||||
|
|
@ -364,9 +360,7 @@ export const useKpiDataStore = defineStore("KPIDate", () => {
|
|||
devScore,
|
||||
devScoreVal,
|
||||
competencyDevScore,
|
||||
competencyDevScoreVal,
|
||||
excusiveCompetencyScore,
|
||||
excusiveIndicatorPercent,
|
||||
excusiveIndicator1PercentVal,
|
||||
excusiveIndicator1Weight,
|
||||
excusiveIndicator1ScoreVal,
|
||||
|
|
|
|||
|
|
@ -13,21 +13,12 @@ import DialogHeader from "@/components/DialogHeader.vue";
|
|||
import type { FormProfile } from "@/modules/08_KPI/interface/request/index";
|
||||
import type { DataOptions } from "@/modules/08_KPI/interface/index/Main";
|
||||
|
||||
const scoreTotal = ref<boolean>(false);
|
||||
const modalScore = ref<boolean>(false);
|
||||
// const modalScore = ref<boolean>(false);
|
||||
const modalEdit = ref<boolean>(false);
|
||||
const route = useRoute();
|
||||
const id = ref<string>(route.params.id as string);
|
||||
const isReadonly = <boolean>(route.name === "KPIEditEvaluator" ? true : false);
|
||||
|
||||
const totalScore = computed(
|
||||
() =>
|
||||
Number(plannedPoint.value) +
|
||||
Number(rolePoint.value) +
|
||||
Number(specialPoint.value) +
|
||||
Number(capacityPoint.value)
|
||||
);
|
||||
|
||||
const plannedPoint = ref<string>("");
|
||||
const rolePoint = ref<string>("");
|
||||
const specialPoint = ref<string>("");
|
||||
|
|
@ -49,8 +40,6 @@ const commanderHighMainOp = ref<DataOptions[]>([]);
|
|||
const evaluatorId = ref<any>(null);
|
||||
const commanderId = ref<any>(null);
|
||||
const commanderHighId = ref<any>(null);
|
||||
const indicatorScore = ref<number>(0);
|
||||
const competencyScore = ref<number>(0);
|
||||
|
||||
const formProfile = reactive<FormProfile>({
|
||||
fullName: "",
|
||||
|
|
@ -114,7 +103,7 @@ async function fetchProfile(id: string) {
|
|||
config.API.fileByFile("ทะเบียนประวัติ", "โปรไฟล์", id, `profile-${id}`)
|
||||
)
|
||||
.then(async (res) => {
|
||||
store.dataProfile.avartar = res.data.downloadUrl;
|
||||
store.dataEvaluation.avartar = res.data.downloadUrl;
|
||||
})
|
||||
.catch(() => {
|
||||
// profilePicture.value = avatar;
|
||||
|
|
@ -226,30 +215,6 @@ function filterOption(val: any, update: Function, refData: string) {
|
|||
}
|
||||
}
|
||||
|
||||
watch(
|
||||
[plannedPoint, rolePoint, specialPoint, capacityPoint],
|
||||
(
|
||||
[newPlannedPoint, newRolePoint, newSpecialPoint, newCapacityPoint],
|
||||
[oldPlannedPoint, oldRolePoint, oldSpecialPoint, oldCapacityPoint]
|
||||
) => {
|
||||
if (
|
||||
newPlannedPoint !== "" &&
|
||||
newRolePoint !== "" &&
|
||||
newSpecialPoint !== "" &&
|
||||
newCapacityPoint !== ""
|
||||
) {
|
||||
if (totalScore.value == 100) {
|
||||
scoreTotal.value = false;
|
||||
} else {
|
||||
scoreTotal.value = true;
|
||||
}
|
||||
}
|
||||
// else {
|
||||
// console.log(2);
|
||||
// }
|
||||
}
|
||||
);
|
||||
|
||||
// function onSubmitScore() {
|
||||
// showLoader();
|
||||
// http
|
||||
|
|
@ -382,7 +347,7 @@ onMounted(async () => {
|
|||
style="left: 2%; top: 50%; transform: translateY(-50%)"
|
||||
>
|
||||
<q-avatar size="95px">
|
||||
<q-img :src="store.dataProfile.avartar" />
|
||||
<q-img :src="store.dataEvaluation.avartar" />
|
||||
</q-avatar>
|
||||
</div>
|
||||
<div class="row col-12">
|
||||
|
|
@ -390,7 +355,7 @@ onMounted(async () => {
|
|||
<div class="col-12" style="padding-left: 12%">
|
||||
<div class="row col-12 items-center">
|
||||
<span class="text-h6 text-weight-medium text-primary">{{
|
||||
`${store.dataProfile.prefix}${store.dataProfile.firstName} ${store.dataProfile.lastName}`
|
||||
`${store.dataEvaluation.prefix}${store.dataEvaluation.firstName} ${store.dataEvaluation.lastName}`
|
||||
}}</span>
|
||||
<q-space />
|
||||
<div class="q-gutter-x-sm">
|
||||
|
|
@ -528,7 +493,7 @@ onMounted(async () => {
|
|||
<div class="column">
|
||||
<span class="text-grey-6">ตำแหน่งในสายงาน</span>
|
||||
<span class="text-weight-medium text-dark">{{
|
||||
store.dataProfile.position
|
||||
store.dataEvaluation.position
|
||||
}}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -536,7 +501,7 @@ onMounted(async () => {
|
|||
<div class="column">
|
||||
<span class="text-grey-6">ประเภทตำแหน่ง</span>
|
||||
<span class="text-weight-medium text-dark">{{
|
||||
store.dataProfile.posTypeName
|
||||
store.dataEvaluation.posTypeName
|
||||
}}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -544,7 +509,7 @@ onMounted(async () => {
|
|||
<div class="column">
|
||||
<span class="text-grey-6">ระดับตำแหน่ง</span>
|
||||
<span class="text-weight-medium text-dark">{{
|
||||
store.dataProfile.posLevelName
|
||||
store.dataEvaluation.posLevelName
|
||||
}}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -94,6 +94,10 @@ const formRound = reactive({
|
|||
evaluatorId: "",
|
||||
commanderId: "",
|
||||
commanderHighId: "",
|
||||
position: "",
|
||||
posLevelName: "",
|
||||
posTypeName: "",
|
||||
posExecutiveName: "",
|
||||
});
|
||||
|
||||
/** pagetion*/
|
||||
|
|
@ -170,6 +174,27 @@ function changRound() {
|
|||
|
||||
function redirectViewDetail(id: string) {
|
||||
store.tabMain = "1";
|
||||
|
||||
store.indicatorWeightTotal = 0;
|
||||
store.indicatorWeight1Total = 0;
|
||||
store.indicatorWeight2Total = 0;
|
||||
store.indicatorPercentVal = 0;
|
||||
store.indicatorScore = 0;
|
||||
store.indicatorScoreVal = 0;
|
||||
store.competencyScore = 0;
|
||||
store.competencyScoreVal = 0;
|
||||
store.devScore = 0;
|
||||
store.devScoreVal = 0;
|
||||
store.competencyDevScore = 0;
|
||||
store.excusiveCompetencyScore = 0;
|
||||
store.excusiveIndicator1PercentVal = 0;
|
||||
store.excusiveIndicator1Weight = 0;
|
||||
store.excusiveIndicator1ScoreVal = 0;
|
||||
store.excusiveIndicator2Weight = 0;
|
||||
store.excusiveIndicator2PercentVal = 0;
|
||||
store.excusiveIndicator2ScoreVal = 0;
|
||||
store.excusiveIndicatorScore = 0;
|
||||
|
||||
router.push(`/KPI/${id}`);
|
||||
}
|
||||
|
||||
|
|
@ -194,6 +219,10 @@ function onSubmit() {
|
|||
prefix: formRound.prefix,
|
||||
firstName: formRound.firstName,
|
||||
lastName: formRound.lastName,
|
||||
// position: formRound.position,
|
||||
// posLevelName: formRound.posLevelName,
|
||||
// posTypeName: formRound.posTypeName,
|
||||
// posExecutiveName: formRound.posExecutiveName,
|
||||
|
||||
evaluatorId: formRound.evaluatorId,
|
||||
commanderId: formRound.commanderId == "" ? null : formRound.commanderId,
|
||||
|
|
@ -227,6 +256,10 @@ function getProfile() {
|
|||
formRound.prefix = data.prefix;
|
||||
formRound.firstName = data.firstName;
|
||||
formRound.lastName = data.lastName;
|
||||
formRound.position = data.position;
|
||||
formRound.posLevelName = data.posLevelName;
|
||||
formRound.posTypeName = data.posTypeName;
|
||||
formRound.posExecutiveName = data.posExecutiveName;
|
||||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue