แก้ 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.meaning = data.meaning;
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.achievement2 = data.achievement2;
formDetail.achievement3 = data.achievement3;
@ -331,6 +335,9 @@ function closeDialog() {
formDetail.startDate = null;
formDetail.endDate = null;
formDetail.nodeName = "";
formDetail.strategyName = "";
formFilter.isAll = false;
formFilter.keyword = "";
formFilter.node = 0;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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