แก้ kpi

This commit is contained in:
setthawutttty 2025-01-16 17:00:36 +07:00
parent 4629ec5a01
commit b71ca2ddf5
8 changed files with 100 additions and 66 deletions

View file

@ -121,6 +121,10 @@ function fetchListPlanByid(id: string) {
formDetail.weight = data.weight; formDetail.weight = data.weight;
formDetail.meaning = data.meaning; formDetail.meaning = data.meaning;
formDetail.formula = data.formula; formDetail.formula = data.formula;
formDetail.including = data.including;
formDetail.nodeName = data.nodeName;
formDetail.strategyName = data.strategyName;
formDetail.includingName = data.includingName;
formDetail.achievement1 = data.achievement1; formDetail.achievement1 = data.achievement1;
formDetail.achievement2 = data.achievement2; formDetail.achievement2 = data.achievement2;
formDetail.achievement3 = data.achievement3; formDetail.achievement3 = data.achievement3;
@ -331,6 +335,9 @@ function closeDialog() {
formDetail.startDate = null; formDetail.startDate = null;
formDetail.endDate = null; formDetail.endDate = null;
formDetail.nodeName = "";
formDetail.strategyName = "";
formFilter.isAll = false; formFilter.isAll = false;
formFilter.keyword = ""; formFilter.keyword = "";
formFilter.node = 0; formFilter.node = 0;

View file

@ -218,6 +218,13 @@ function onSubmitComment(role: string) {
function onCheckNumber(num: number) { function onCheckNumber(num: number) {
numLevel.value = num.toString(); numLevel.value = num.toString();
if (num) {
formDataAdd.topic = store.mainRowData[`achievement${num}`];
}
}
function onAdd() {
modalAdd.value = true;
} }
watch( watch(
@ -236,7 +243,9 @@ watch(
<DialogHeader <DialogHeader
:tittle=" :tittle="
type == 'capacity' || type == 'development' type == 'capacity' || type == 'development'
? 'บันทึกเหตุการณ์/พฤติกรรม' ? `บันทึกเหตุการณ์/พฤติกรรม${
store.tabMain == '3' ? `/เหตุผล` : ''
}`
: 'รายงานความก้าวหน้า' : 'รายงานความก้าวหน้า'
" "
:close="close" :close="close"
@ -253,27 +262,33 @@ watch(
<div class="q-pa-sm"> <div class="q-pa-sm">
<q-btn <q-btn
v-if=" v-if="
(type == 'capacity' || ((type == 'capacity' ||
type == 'development' || type == 'development' ||
(type != 'capacity' && (type != 'capacity' &&
type != 'development' && type != 'development' &&
store.rolePerson == 'USER')) && store.rolePerson == 'USER')) &&
store.dataEvaluation.evaluationStatus == 'APPROVE' && store.dataEvaluation.evaluationStatus == 'APPROVE' &&
store.tabMain === '2' store.tabMain === '2') ||
((type == 'capacity' ||
type == 'development' ||
(type != 'capacity' &&
type != 'development' &&
store.rolePerson == 'USER')) &&
store.rolePerson == 'EVALUATOR' &&
store.dataEvaluation.evaluationStatus == 'EVALUATING' &&
store.tabMain === '3')
" "
icon="add" icon="add"
color="teal" color="teal"
flat flat
round round
@click=" @click="onAdd"
() => {
modalAdd = true;
}
"
> >
<q-tooltip>{{ <q-tooltip>{{
type == "capacity" || type == "development" type == "capacity" || type == "development"
? "เพิ่มเหตุการณ์/พฤติกรรม" ? `เพิ่มเหตุการณ์/พฤติกรรม${
store.tabMain == "3" ? `/เหตุผล` : ""
}`
: "เพิ่มความก้าวหน้า" : "เพิ่มความก้าวหน้า"
}}</q-tooltip> }}</q-tooltip>
</q-btn> </q-btn>
@ -288,7 +303,9 @@ watch(
<div class="col-12"> <div class="col-12">
<span>{{ <span>{{
type == "capacity" || type == "development" type == "capacity" || type == "development"
? "เหตุการณ์/พฤติกรรม" ? `บันทึกเหตุการณ์/พฤติกรรม${
store.tabMain == "3" ? `/เหตุผล` : ""
}`
: "ความก้าวหน้า" : "ความก้าวหน้า"
}}</span> }}</span>
</div> </div>
@ -350,7 +367,9 @@ watch(
<div class="col-4 text-grey-6"> <div class="col-4 text-grey-6">
{{ {{
type == "capacity" || type == "development" type == "capacity" || type == "development"
? "เหตุการณ์/พฤติกรรม" ? `เหตุการณ์/พฤติกรรม${
store.tabMain == "3" ? `/เหตุผล` : ""
}`
: "หัวข้อความก้าวหน้า" : "หัวข้อความก้าวหน้า"
}} }}
</div> </div>
@ -558,7 +577,9 @@ watch(
<DialogHeader <DialogHeader
:tittle=" :tittle="
type == 'capacity' || type == 'development' type == 'capacity' || type == 'development'
? 'เพิ่มหัวข้อบันทึกเหตุการณ์/พฤติกรรม' ? `เพิ่มหัวข้อบันทึกเหตุการณ์/พฤติกรรม${
store.tabMain == '3' ? `/เหตุผล` : ''
}`
: 'เพิ่มหัวข้อความก้าวหน้า' : 'เพิ่มหัวข้อความก้าวหน้า'
" "
:close="closeAdd" :close="closeAdd"
@ -567,37 +588,6 @@ watch(
<q-card-section> <q-card-section>
<div class="row q-col-gutter-sm"> <div class="row q-col-gutter-sm">
<div class="col-12">
<q-input
v-model="formDataAdd.topic"
outlined
class="inputgreen"
:label="
type == 'capacity' || type == 'development'
? 'เหตุการณ์/พฤติกรรม'
: 'หัวข้อความก้าวหน้า'
"
dense
lazy-rules
hide-bottom-space
:rules="[(val:string) => !!val || `${type == 'capacity'||type == 'development' ? 'กรุณากรอกเหตุการณ์/พฤติกรรม':'กรุณากรอกหัวข้อความก้าวหน้า' }`,]"
/>
</div>
<!-- <div
class="col-12"
v-if="type !== 'capacity' && type !== 'development'"
>
<q-input
v-model="numLevel"
outlined
class="inputgreen"
label="คะแนน"
dense
lazy-rules
hide-bottom-space
:rules="[(val:string) => !!val || `${'กรุณากรอกคะแนน'}`,]"
/>
</div> -->
<div <div
class="col-12" class="col-12"
v-if="type !== 'capacity' && type !== 'development'" v-if="type !== 'capacity' && type !== 'development'"
@ -617,12 +607,48 @@ watch(
> >
<q-tooltip> <q-tooltip>
<div class="text-body2"> <div class="text-body2">
<span>{{ i }}</span> <span
v-html="store.mainRowData[`achievement${i}`]"
></span>
</div> </div>
</q-tooltip> </q-tooltip>
</q-btn> </q-btn>
</q-btn-group> </q-btn-group>
</div> </div>
<div class="col-12">
<q-input
v-model="formDataAdd.topic"
outlined
class="inputgreen"
:label="
type == 'capacity' || type == 'development'
? `เหตุการณ์/พฤติกรรม${
store.tabMain == '3' ? `/เหตุผล` : ''
}`
: 'หัวข้อความก้าวหน้า'
"
dense
lazy-rules
hide-bottom-space
:rules="[(val:string) => !!val || `${type == 'capacity'||type == 'development' ? `กรุณากรอกเหตุการณ์/พฤติกรรม${store.tabMain == '3' ? `/เหตุผล` : ''}`:'กรุณากรอกหัวข้อความก้าวหน้า' }`,]"
/>
</div>
<!-- <div
class="col-12"
v-if="type !== 'capacity' && type !== 'development'"
>
<q-input
v-model="numLevel"
outlined
class="inputgreen"
label="คะแนน"
dense
lazy-rules
hide-bottom-space
:rules="[(val:string) => !!val || `${'กรุณากรอกคะแนน'}`,]"
/>
</div> -->
<div class="col-12"> <div class="col-12">
<q-input <q-input
v-model="formDataAdd.reason" v-model="formDataAdd.reason"

View file

@ -160,11 +160,12 @@ const modalProgress = ref<boolean>(false);
const modalProblem = ref<boolean>(false); const modalProblem = ref<boolean>(false);
const type = ref<string>(""); const type = ref<string>("");
const idList = ref<string>(""); const idList = ref<string>("");
function openPopupProgress(id: string) { function openPopupProgress(data: any) {
store.mainRowData = data
modalProgress.value = true; modalProgress.value = true;
type.value = type.value =
numpage.value === 1 ? "plan" : numpage.value === 2 ? "role" : "special"; numpage.value === 1 ? "plan" : numpage.value === 2 ? "role" : "special";
idList.value = id; idList.value = data.id;
} }
function openPopupProblem(id: string) { function openPopupProblem(id: string) {
@ -186,12 +187,9 @@ watch(
const isEditStep1 = computed(() => { const isEditStep1 = computed(() => {
return ( return (
(store.dataEvaluation.evaluationStatus === "NEW" && store.dataEvaluation.evaluationStatus === "NEW" &&
store.rolePerson === "USER" && store.rolePerson === "USER" &&
store.tabMain === "1") || store.tabMain === "1"
(store.dataEvaluation.evaluationStatus === "NEW_EVALUATOR" &&
store.rolePerson === "EVALUATOR" &&
store.tabMain === "1")
); );
}); });
@ -332,7 +330,7 @@ const isEditStep3 = computed(() => {
icon="mdi-developer-board" icon="mdi-developer-board"
color="blue-6" color="blue-6"
dense dense
@click="openPopupProgress(props.row.id)" @click="openPopupProgress(props.row)"
> >
<q-tooltip>รายงานความกาวหน</q-tooltip> <q-tooltip>รายงานความกาวหน</q-tooltip>
</q-btn> </q-btn>
@ -343,7 +341,7 @@ const isEditStep3 = computed(() => {
color="red-5" color="red-5"
dense dense
main="problem" main="problem"
@click="openPopupProblem(props.row.id)" @click="openPopupProblem(props.row)"
> >
<q-tooltip>รายงานปญหา</q-tooltip> <q-tooltip>รายงานปญหา</q-tooltip>
</q-btn> </q-btn>

View file

@ -133,9 +133,6 @@ const isEditStep1 = computed(() => {
return ( return (
(store.dataEvaluation.evaluationStatus === "NEW" && (store.dataEvaluation.evaluationStatus === "NEW" &&
store.rolePerson === "USER" && store.rolePerson === "USER" &&
store.tabMain === "1") ||
(store.dataEvaluation.evaluationStatus === "NEW_EVALUATOR" &&
store.rolePerson === "EVALUATOR" &&
store.tabMain === "1") store.tabMain === "1")
); );
}); });
@ -466,7 +463,7 @@ onMounted(() => {
dense dense
@click="openPopupProgress(props.row.id)" @click="openPopupProgress(props.row.id)"
> >
<q-tooltip>นทกเหตการณ/พฤตกรรม</q-tooltip> <q-tooltip>{{store.tabMain == '3' ? `บันทึกเหตุการณ์/พฤติกรรม/เหตุผล` :'บันทึกเหตุการณ์/พฤติกรรม'}}</q-tooltip>
</q-btn> </q-btn>
</div> </div>

View file

@ -46,9 +46,6 @@ const isEditStep1 = computed(() => {
return ( return (
(store.dataEvaluation.evaluationStatus === "NEW" && (store.dataEvaluation.evaluationStatus === "NEW" &&
store.rolePerson === "USER" && store.rolePerson === "USER" &&
store.tabMain === "1") ||
(store.dataEvaluation.evaluationStatus === "NEW_EVALUATOR" &&
store.rolePerson === "EVALUATOR" &&
store.tabMain === "1") store.tabMain === "1")
); );
}); });
@ -344,7 +341,7 @@ onMounted(() => {
dense dense
@click="openPopupProgress(props.row.id)" @click="openPopupProgress(props.row.id)"
> >
<q-tooltip>นทกเหตการณ/พฤตกรรม</q-tooltip> <q-tooltip>{{store.tabMain == '3' ? `บันทึกเหตุการณ์/พฤติกรรม/เหตุผล` :'บันทึกเหตุการณ์/พฤติกรรม'}}</q-tooltip>
</q-btn> </q-btn>
</div> </div>

View file

@ -12,6 +12,7 @@ export const useKpiDataStore = defineStore("KPIDate", () => {
const mixin = useCounterMixin(); const mixin = useCounterMixin();
const { showLoader, hideLoader, messageError } = mixin; const { showLoader, hideLoader, messageError } = mixin;
const mainRowData = ref<any>()
const isUpdate = ref<boolean>(false); const isUpdate = ref<boolean>(false);
const tabMainevaluator = ref<string>("1"); const tabMainevaluator = ref<string>("1");
const yearRound = ref<number>(new Date().getFullYear()); const yearRound = ref<number>(new Date().getFullYear());
@ -512,7 +513,7 @@ export const useKpiDataStore = defineStore("KPIDate", () => {
selected, selected,
work, work,
isUpdate, isUpdate,
mainRowData,
resultsOptions, resultsOptions,
statusOptions, statusOptions,
}; };

View file

@ -17,5 +17,6 @@ interface ProbationFormType {
posTypeName: string; posTypeName: string;
posLevelName: string; posLevelName: string;
org: string; org: string;
isProbation: boolean;
} }
export type { ListMain,ProbationFormType }; export type { ListMain,ProbationFormType };

View file

@ -41,6 +41,7 @@ const formData = reactive<ProbationFormType>({
posExecutiveName: "", posExecutiveName: "",
posTypeName: "", posTypeName: "",
posLevelName: "", posLevelName: "",
isProbation: false,
org: "", org: "",
}); });
const sizeImg = ref<string>(""); const sizeImg = ref<string>("");
@ -119,6 +120,7 @@ function getMain() {
formData.firstName = data.firstName; formData.firstName = data.firstName;
formData.lastName = data.lastName; formData.lastName = data.lastName;
formData.position = data.position; formData.position = data.position;
formData.isProbation = data.isProbation;
formData.posTypeName = data.posTypeName; formData.posTypeName = data.posTypeName;
formData.posExecutiveName = data.posExecutiveName; formData.posExecutiveName = data.posExecutiveName;
@ -235,8 +237,13 @@ onMounted(async () => {
<div class="col-4">งก</div> <div class="col-4">งก</div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-4"> <div class="col-4 column">
{{ formData.position ? formData.position : "-" }} <span>
{{ formData.position ? formData.position : "-" }}
</span>
<span>
{{ formData.isProbation ? `(ทดลองปฏิบัติหน้าที่ราชการฯ)` : "" }}
</span>
</div> </div>
<div class="col-4"> <div class="col-4">
{{ {{