updated
This commit is contained in:
parent
f453b95f32
commit
c3cc2e0aeb
7 changed files with 484 additions and 168 deletions
|
|
@ -218,6 +218,41 @@ onMounted(() => {
|
||||||
:fetchList="fetchListPlanned"
|
:fetchList="fetchListPlanned"
|
||||||
:total="totalResults1"
|
:total="totalResults1"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<q-table
|
||||||
|
flat
|
||||||
|
dense
|
||||||
|
bordered
|
||||||
|
:rows="[
|
||||||
|
{
|
||||||
|
name: 'รวมผลการประเมิน (ร้อยละ)',
|
||||||
|
value: store.excusiveIndicator1PercentVal,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'ผลการประเมินมิติที่ 1 (คะแนน)',
|
||||||
|
value: store.excusiveIndicator1ScoreVal,
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
:columns="[
|
||||||
|
{
|
||||||
|
name: 'name',
|
||||||
|
field: 'name',
|
||||||
|
label: 'name',
|
||||||
|
style: 'font-size: 14px',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'value',
|
||||||
|
field: 'value',
|
||||||
|
label: 'value',
|
||||||
|
style: 'font-size: 14px; font-weight: bold',
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
row-key="name"
|
||||||
|
hide-header
|
||||||
|
hide-bottom
|
||||||
|
class="q-mt-xs q-mb-md"
|
||||||
|
/>
|
||||||
|
|
||||||
<Work
|
<Work
|
||||||
v-model:data="rows_03"
|
v-model:data="rows_03"
|
||||||
:title="`มิติที่ 2 วาระเร่งด่วนที่ได้รับมอบหมายพิเศษ (ถ้ามี)`"
|
:title="`มิติที่ 2 วาระเร่งด่วนที่ได้รับมอบหมายพิเศษ (ถ้ามี)`"
|
||||||
|
|
@ -225,6 +260,54 @@ onMounted(() => {
|
||||||
:fetchList="fetchAssigned"
|
:fetchList="fetchAssigned"
|
||||||
:total="totalResults3"
|
:total="totalResults3"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<q-table
|
||||||
|
flat
|
||||||
|
dense
|
||||||
|
bordered
|
||||||
|
:rows="[
|
||||||
|
{
|
||||||
|
name: 'รวมผลการประเมิน (ร้อยละ)',
|
||||||
|
value: store.excusiveIndicator2PercentVal,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'ผลการประเมินมิติที่ 2 (คะแนน)',
|
||||||
|
value: store.excusiveIndicator2ScoreVal,
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
:columns="[
|
||||||
|
{
|
||||||
|
name: 'name',
|
||||||
|
field: 'name',
|
||||||
|
label: 'name',
|
||||||
|
style: 'font-size: 14px',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'value',
|
||||||
|
field: 'value',
|
||||||
|
label: 'value',
|
||||||
|
style: 'font-size: 14px; font-weight: bold',
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
row-key="name"
|
||||||
|
hide-header
|
||||||
|
hide-bottom
|
||||||
|
class="q-mt-xs q-mb-md"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<div class="row text-body2 text-weight-bold">
|
||||||
|
<div class="col-12 text-center row justify-center">
|
||||||
|
<span
|
||||||
|
>สรุปผลการประเมินผลสัมฤทธิ์ของงาน (มิติที่ 1 + มิติที่ 2)
|
||||||
|
(คะแนนเต็ม
|
||||||
|
{{ store.excusiveIndicatorScore }}
|
||||||
|
คะแนน)</span
|
||||||
|
>
|
||||||
|
<div class="text-primary q-pl-md">
|
||||||
|
{{ store.indicatorScoreVal }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-else>
|
<div v-else>
|
||||||
|
|
@ -249,25 +332,48 @@ onMounted(() => {
|
||||||
:fetchList="fetchAssigned"
|
:fetchList="fetchAssigned"
|
||||||
:total="totalResults3"
|
:total="totalResults3"
|
||||||
/>
|
/>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row text-body2 text-weight-bold">
|
<q-table
|
||||||
<!-- <div class="col-6 text-center row justify-center">
|
flat
|
||||||
<span>รวมผลการประเมิน (ร้อยละ) 100</span>
|
dense
|
||||||
<div class="text-primary q-pl-md">{{ total }}</div>
|
bordered
|
||||||
</div> -->
|
:rows="[
|
||||||
|
{
|
||||||
|
name: 'รวมผลการประเมิน (ร้อยละ)',
|
||||||
|
value: store.indicatorPercentVal,
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
:columns="[
|
||||||
|
{
|
||||||
|
name: 'name',
|
||||||
|
field: 'name',
|
||||||
|
label: 'name',
|
||||||
|
style: 'font-size: 14px',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'value',
|
||||||
|
field: 'value',
|
||||||
|
label: 'value',
|
||||||
|
style: 'font-size: 14px; font-weight: bold',
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
row-key="name"
|
||||||
|
hide-header
|
||||||
|
hide-bottom
|
||||||
|
class="q-mt-xs q-mb-md"
|
||||||
|
/>
|
||||||
|
|
||||||
<div class="col-12 text-center row justify-center">
|
<div class="row text-body2 text-weight-bold">
|
||||||
<span
|
<div class="col-12 text-center row justify-center">
|
||||||
>สรุปผลการประเมินผลสัมฤทธิ์ของงาน (คะแนนเต็ม
|
<span
|
||||||
{{
|
>สรุปผลการประเมินผลสัมฤทธิ์ของงาน (คะแนนเต็ม
|
||||||
store.dataEvaluation.plannedPoint +
|
{{ store.indicatorScore }}
|
||||||
store.dataEvaluation.rolePoint +
|
คะแนน)</span
|
||||||
store.dataEvaluation.specialPoint
|
>
|
||||||
}}
|
<div class="text-primary q-pl-md">
|
||||||
คะแนน)</span
|
{{ store.indicatorScoreVal }}
|
||||||
>
|
</div>
|
||||||
<div class="text-primary q-pl-md">{{ resultWork }}</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -291,14 +397,98 @@ onMounted(() => {
|
||||||
|
|
||||||
<Competency v-model:dataListCriteria="dataListCriteria" />
|
<Competency v-model:dataListCriteria="dataListCriteria" />
|
||||||
|
|
||||||
<Develop />
|
<q-table
|
||||||
|
flat
|
||||||
|
dense
|
||||||
|
bordered
|
||||||
|
:rows="[
|
||||||
|
{
|
||||||
|
name: `สรุปผลการประเมินสมรรถนะ (คะแนนเต็ม ${
|
||||||
|
!store.dataProfile.posExecutiveName
|
||||||
|
? store.competencyScore
|
||||||
|
: store.excusiveCompetencyScore
|
||||||
|
} คะแนน)`,
|
||||||
|
value: store.competencyScoreVal,
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
:columns="[
|
||||||
|
{
|
||||||
|
name: 'name',
|
||||||
|
field: 'name',
|
||||||
|
label: 'name',
|
||||||
|
style: 'font-size: 14px',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'value',
|
||||||
|
field: 'value',
|
||||||
|
label: 'value',
|
||||||
|
style: 'font-size: 14px; font-weight: bold',
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
row-key="name"
|
||||||
|
hide-header
|
||||||
|
hide-bottom
|
||||||
|
class="q-mt-xs q-mb-md"
|
||||||
|
/>
|
||||||
|
|
||||||
<div class="row text-body2 text-weight-bold justify-center">
|
<div v-if="!store.dataProfile.posExecutiveName">
|
||||||
<span
|
<Develop />
|
||||||
>สรุปผลการประเมินสมรรถนะ (คะแนนเต็ม
|
|
||||||
{{ store.competencyScore }} คะแนน)</span
|
<q-table
|
||||||
>
|
flat
|
||||||
<div class="text-primary q-pl-md">{{ store.competencyScoreVal }}</div>
|
dense
|
||||||
|
bordered
|
||||||
|
:rows="[
|
||||||
|
{
|
||||||
|
name: `ผลการประเมินการพัฒนาตนเอง (คะแนนเต็ม ${store.devScore} คะแนน)`,
|
||||||
|
value: store.devScoreVal,
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
:columns="[
|
||||||
|
{
|
||||||
|
name: 'name',
|
||||||
|
field: 'name',
|
||||||
|
label: 'name',
|
||||||
|
style: 'font-size: 14px',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'value',
|
||||||
|
field: 'value',
|
||||||
|
label: 'value',
|
||||||
|
style: 'font-size: 14px; font-weight: bold',
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
row-key="name"
|
||||||
|
hide-header
|
||||||
|
hide-bottom
|
||||||
|
class="q-mt-xs q-mb-md"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
v-if="!store.dataProfile.posExecutiveName"
|
||||||
|
class="row text-body2 text-weight-bold"
|
||||||
|
>
|
||||||
|
<div class="col-12 text-center row justify-center">
|
||||||
|
<span
|
||||||
|
>สรุปผลการประเมินพฤติกรรมการปฏิบัติราชการ (สมรรถนะ+การพัฒนาตนเอง)
|
||||||
|
(คะแนนเต็ม {{ store.competencyDevScore }} คะแนน)</span
|
||||||
|
>
|
||||||
|
<div class="text-primary q-pl-md">
|
||||||
|
{{ store.competencyDevScoreVal }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else class="row text-body2 text-weight-bold">
|
||||||
|
<div class="col-12 text-center row justify-center">
|
||||||
|
<span
|
||||||
|
>สรุปผลการประเมินพฤติกรรมการปฏิบัติราชการ (สมรรถนะ) (คะแนนเต็ม
|
||||||
|
{{ store.competencyScore }} คะแนน)</span
|
||||||
|
>
|
||||||
|
<div class="text-primary q-pl-md">
|
||||||
|
{{ store.competencyScoreVal }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</q-scroll-area>
|
</q-scroll-area>
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@ 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 DialogEvaluate from "@/modules/08_KPI/components/Tab/DialogEvaluate/01_Indicator.vue";
|
||||||
import DialogViewInfo from "@/modules/08_KPI/components/Tab/Dialog/DialogViewInfo.vue";
|
import DialogViewInfo from "@/modules/08_KPI/components/Tab/Dialog/DialogViewInfo.vue";
|
||||||
|
import DialogProgress from "@/modules/08_KPI/components/Tab/Dialog/DialogCommentProgress.vue";
|
||||||
|
import DialogProblem from "@/modules/08_KPI/components/Tab/Dialog/DialogCommentProblem.vue";
|
||||||
|
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
import { useKpiDataStore } from "@/modules/08_KPI/store";
|
import { useKpiDataStore } from "@/modules/08_KPI/store";
|
||||||
|
|
@ -171,14 +173,20 @@ function onDelete(id: string) {
|
||||||
const modalProgress = ref<boolean>(false);
|
const modalProgress = ref<boolean>(false);
|
||||||
const modalProblem = ref<boolean>(false);
|
const modalProblem = ref<boolean>(false);
|
||||||
const type = ref<string>("");
|
const type = ref<string>("");
|
||||||
function openPopupProgress() {
|
const idList = ref<string>("");
|
||||||
|
function openPopupProgress(id: string) {
|
||||||
modalProgress.value = true;
|
modalProgress.value = true;
|
||||||
type.value = rows.value ? "plan" : rows.value ? "role" : "special";
|
type.value =
|
||||||
|
numpage.value === 1 ? "plan" : numpage.value === 2 ? "role" : "special";
|
||||||
|
idList.value = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
function openPopupProblem() {
|
function openPopupProblem(id: string) {
|
||||||
modalProblem.value = true;
|
modalProblem.value = true;
|
||||||
type.value = rows.value ? "plan" : rows.value ? "role" : "special";
|
|
||||||
|
type.value =
|
||||||
|
numpage.value === 1 ? "plan" : numpage.value === 2 ? "role" : "special";
|
||||||
|
idList.value = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
|
@ -349,14 +357,15 @@ watch(
|
||||||
</div>
|
</div>
|
||||||
</q-td>
|
</q-td>
|
||||||
<td>
|
<td>
|
||||||
|
<!-- <div v-if="store.dataEvaluation.evaluationStatus == 'APPROVE'"> -->
|
||||||
<q-btn
|
<q-btn
|
||||||
flat
|
flat
|
||||||
round
|
round
|
||||||
icon="note"
|
icon="mdi-developer-board"
|
||||||
color="blue-5"
|
color="blue-6"
|
||||||
size="12px"
|
size="12px"
|
||||||
dense
|
dense
|
||||||
@click="openPopupProgress()"
|
@click="openPopupProgress(props.row.id)"
|
||||||
>
|
>
|
||||||
<q-tooltip>รายงานความก้าวหน้า</q-tooltip>
|
<q-tooltip>รายงานความก้าวหน้า</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
|
|
@ -367,44 +376,47 @@ watch(
|
||||||
color="red-5"
|
color="red-5"
|
||||||
size="12px"
|
size="12px"
|
||||||
dense
|
dense
|
||||||
:type="data ? 'plan' : data ? 'role' : 'special'"
|
|
||||||
main="problem"
|
main="problem"
|
||||||
@click="openPopupProblem()"
|
@click="openPopupProblem(props.row.id)"
|
||||||
>
|
>
|
||||||
<q-tooltip>รายงานปัญหา</q-tooltip>
|
<q-tooltip>รายงานปัญหา</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
|
<!-- </div> -->
|
||||||
|
|
||||||
<q-btn
|
<div
|
||||||
v-if="
|
v-if="
|
||||||
store.dataEvaluation.evaluationStatus === 'NEW' &&
|
store.dataEvaluation.evaluationStatus === 'NEW' &&
|
||||||
store.rolePerson === 'USER'
|
store.rolePerson === 'USER'
|
||||||
"
|
"
|
||||||
flat
|
|
||||||
round
|
|
||||||
icon="edit"
|
|
||||||
color="edit"
|
|
||||||
size="12px"
|
|
||||||
dense
|
|
||||||
@click="onAdd(true, props.row.id)"
|
|
||||||
>
|
>
|
||||||
<q-tooltip>แก้ไขข้อมูล</q-tooltip>
|
<q-btn
|
||||||
</q-btn>
|
flat
|
||||||
|
round
|
||||||
|
icon="edit"
|
||||||
|
color="edit"
|
||||||
|
size="12px"
|
||||||
|
dense
|
||||||
|
@click="onAdd(true, props.row.id)"
|
||||||
|
>
|
||||||
|
<q-tooltip>แก้ไขข้อมูล</q-tooltip>
|
||||||
|
</q-btn>
|
||||||
|
|
||||||
<q-btn
|
<q-btn
|
||||||
v-if="
|
v-if="
|
||||||
store.dataEvaluation.evaluationStatus === 'NEW' &&
|
store.dataEvaluation.evaluationStatus === 'NEW' &&
|
||||||
store.rolePerson === 'USER'
|
store.rolePerson === 'USER'
|
||||||
"
|
"
|
||||||
flat
|
flat
|
||||||
round
|
round
|
||||||
icon="delete"
|
icon="delete"
|
||||||
color="red"
|
color="red"
|
||||||
size="12px"
|
size="12px"
|
||||||
dense
|
dense
|
||||||
@click="onDelete(props.row.id)"
|
@click="onDelete(props.row.id)"
|
||||||
>
|
>
|
||||||
<q-tooltip>ลบข้อมูล</q-tooltip>
|
<q-tooltip>ลบข้อมูล</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</q-tr>
|
</q-tr>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -438,7 +450,19 @@ watch(
|
||||||
:isStatusEdit="isStatusEdit"
|
:isStatusEdit="isStatusEdit"
|
||||||
:kpiUserPlannedId="kpiUserPlannedId"
|
:kpiUserPlannedId="kpiUserPlannedId"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<DialogProgress
|
||||||
|
v-model:modal="modalProgress"
|
||||||
|
v-model:type="type"
|
||||||
|
:idList="idList"
|
||||||
|
/>
|
||||||
|
<DialogProblem
|
||||||
|
v-model:modal="modalProblem"
|
||||||
|
v-model:type="type"
|
||||||
|
:idList="idList"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.custom-table2 {
|
.custom-table2 {
|
||||||
max-height: 64vh;
|
max-height: 64vh;
|
||||||
|
|
|
||||||
|
|
@ -197,6 +197,19 @@ function onEvaluate(type: string) {
|
||||||
modalEvaluate.value = true;
|
modalEvaluate.value = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const modalProgress = ref<boolean>(false);
|
||||||
|
const modalProblem = ref<boolean>(false);
|
||||||
|
const type = ref<string>("");
|
||||||
|
function openPopupProgress() {
|
||||||
|
modalProgress.value = true;
|
||||||
|
type.value = rows.value ? "plan" : rows.value ? "role" : "special";
|
||||||
|
}
|
||||||
|
|
||||||
|
function openPopupProblem() {
|
||||||
|
modalProblem.value = true;
|
||||||
|
type.value = rows.value ? "plan" : rows.value ? "role" : "special";
|
||||||
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => store.dataEvaluation.capacityPoint,
|
() => store.dataEvaluation.capacityPoint,
|
||||||
(newValue, oldValue) => {
|
(newValue, oldValue) => {
|
||||||
|
|
@ -345,30 +358,62 @@ onMounted(() => {
|
||||||
{{ col.value }}
|
{{ col.value }}
|
||||||
</div>
|
</div>
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td
|
<q-td>
|
||||||
v-if="
|
<div v-if="store.dataEvaluation.evaluationStatus == 'APPROVE'">
|
||||||
store.dataEvaluation.evaluationStatus === 'NEW' &&
|
<q-btn
|
||||||
store.rolePerson === 'USER'
|
flat
|
||||||
"
|
round
|
||||||
>
|
icon="mdi-developer-board"
|
||||||
<q-btn
|
color="blue-6"
|
||||||
flat
|
size="12px"
|
||||||
round
|
dense
|
||||||
icon="edit"
|
@click="openPopupProgress()"
|
||||||
color="edit"
|
>
|
||||||
@click.stop.pervent="onEdit(props.row, item.id)"
|
<q-tooltip>รายงานความก้าวหน้า</q-tooltip>
|
||||||
|
</q-btn>
|
||||||
|
<q-btn
|
||||||
|
flat
|
||||||
|
round
|
||||||
|
icon="warning"
|
||||||
|
color="red-5"
|
||||||
|
size="12px"
|
||||||
|
dense
|
||||||
|
main="problem"
|
||||||
|
@click="openPopupProblem()"
|
||||||
|
>
|
||||||
|
<q-tooltip>รายงานปัญหา</q-tooltip>
|
||||||
|
</q-btn>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
v-if="
|
||||||
|
store.dataEvaluation.evaluationStatus === 'NEW' &&
|
||||||
|
store.rolePerson === 'USER'
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<q-tooltip>แก้ไข </q-tooltip>
|
<q-btn
|
||||||
</q-btn>
|
flat
|
||||||
<q-btn
|
round
|
||||||
flat
|
icon="edit"
|
||||||
round
|
color="edit"
|
||||||
icon="delete"
|
@click.stop.pervent="onEdit(props.row, item.id)"
|
||||||
color="red"
|
>
|
||||||
@click.stop.pervent="onDelete(props.row.id, item.id)"
|
<q-tooltip>แก้ไข </q-tooltip>
|
||||||
>
|
</q-btn>
|
||||||
<q-tooltip>ลบข้อมูล </q-tooltip>
|
<q-btn
|
||||||
</q-btn>
|
v-if="
|
||||||
|
store.dataEvaluation.evaluationStatus === 'NEW' &&
|
||||||
|
store.rolePerson === 'USER'
|
||||||
|
"
|
||||||
|
flat
|
||||||
|
round
|
||||||
|
icon="delete"
|
||||||
|
color="red"
|
||||||
|
@click.stop.pervent="onDelete(props.row.id, item.id)"
|
||||||
|
>
|
||||||
|
<q-tooltip>ลบข้อมูล </q-tooltip>
|
||||||
|
</q-btn>
|
||||||
|
</div>
|
||||||
</q-td>
|
</q-td>
|
||||||
</q-tr>
|
</q-tr>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -139,6 +139,19 @@ function onDelete(id: string) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const modalProgress = ref<boolean>(false);
|
||||||
|
const modalProblem = ref<boolean>(false);
|
||||||
|
const type = ref<string>("");
|
||||||
|
function openPopupProgress() {
|
||||||
|
modalProgress.value = true;
|
||||||
|
type.value = rows.value ? "plan" : rows.value ? "role" : "special";
|
||||||
|
}
|
||||||
|
|
||||||
|
function openPopupProblem() {
|
||||||
|
modalProblem.value = true;
|
||||||
|
type.value = rows.value ? "plan" : rows.value ? "role" : "special";
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getDevelop();
|
getDevelop();
|
||||||
});
|
});
|
||||||
|
|
@ -273,30 +286,58 @@ onMounted(() => {
|
||||||
{{ col.value ? col.value : "-" }}
|
{{ col.value ? col.value : "-" }}
|
||||||
</div>
|
</div>
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td
|
<q-td>
|
||||||
v-if="
|
<div v-if="store.dataEvaluation.evaluationStatus == 'APPROVE'">
|
||||||
store.dataEvaluation.evaluationStatus === 'NEW' &&
|
<q-btn
|
||||||
store.rolePerson === 'USER'
|
flat
|
||||||
"
|
round
|
||||||
>
|
icon="mdi-developer-board"
|
||||||
<q-btn
|
color="blue-6"
|
||||||
flat
|
size="12px"
|
||||||
round
|
dense
|
||||||
icon="edit"
|
@click="openPopupProgress()"
|
||||||
color="edit"
|
>
|
||||||
@click.stop.pervent="onEdit(props.row.id)"
|
<q-tooltip>รายงานความก้าวหน้า</q-tooltip>
|
||||||
|
</q-btn>
|
||||||
|
<q-btn
|
||||||
|
flat
|
||||||
|
round
|
||||||
|
icon="warning"
|
||||||
|
color="red-5"
|
||||||
|
size="12px"
|
||||||
|
dense
|
||||||
|
main="problem"
|
||||||
|
@click="openPopupProblem()"
|
||||||
|
>
|
||||||
|
<q-tooltip>รายงานปัญหา</q-tooltip>
|
||||||
|
</q-btn>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
v-if="
|
||||||
|
store.dataEvaluation.evaluationStatus === 'NEW' &&
|
||||||
|
store.rolePerson === 'USER'
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<q-tooltip>แก้ไข </q-tooltip>
|
<q-btn
|
||||||
</q-btn>
|
flat
|
||||||
<q-btn
|
round
|
||||||
flat
|
icon="edit"
|
||||||
round
|
color="edit"
|
||||||
icon="delete"
|
@click.stop.pervent="onEdit(props.row.id)"
|
||||||
color="red"
|
>
|
||||||
@click.stop.pervent="onDelete(props.row.id)"
|
<q-tooltip>แก้ไข </q-tooltip>
|
||||||
>
|
</q-btn>
|
||||||
<q-tooltip>ลบข้อมูล </q-tooltip>
|
<q-btn
|
||||||
</q-btn>
|
flat
|
||||||
|
round
|
||||||
|
icon="delete"
|
||||||
|
color="red"
|
||||||
|
@click.stop.pervent="onDelete(props.row.id)"
|
||||||
|
>
|
||||||
|
<q-tooltip>ลบข้อมูล </q-tooltip>
|
||||||
|
</q-btn>
|
||||||
|
</div>
|
||||||
</q-td>
|
</q-td>
|
||||||
</q-tr>
|
</q-tr>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -48,8 +48,8 @@ export const useKpiDataStore = defineStore("KPIDate", () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
const dataEvaluation = ref<any>({
|
const dataEvaluation = ref<any>({
|
||||||
evaluationReqEdit: "NEW",
|
evaluationReqEdit: null,
|
||||||
evaluationStatus: "NEW",
|
evaluationStatus: null,
|
||||||
profileId: null,
|
profileId: null,
|
||||||
evaluatorId: null,
|
evaluatorId: null,
|
||||||
commanderId: null,
|
commanderId: null,
|
||||||
|
|
@ -133,6 +133,7 @@ export const useKpiDataStore = defineStore("KPIDate", () => {
|
||||||
const position = dataProfile.value.position;
|
const position = dataProfile.value.position;
|
||||||
const posTypeName = dataProfile.value.posTypeName;
|
const posTypeName = dataProfile.value.posTypeName;
|
||||||
const posLevelName = dataProfile.value.posLevelName;
|
const posLevelName = dataProfile.value.posLevelName;
|
||||||
|
const executiveName = dataProfile.value.posExecutiveName;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
position == "ผู้ตรวจราชการกรุงเทพมหานคร" ||
|
position == "ผู้ตรวจราชการกรุงเทพมหานคร" ||
|
||||||
|
|
@ -146,33 +147,42 @@ export const useKpiDataStore = defineStore("KPIDate", () => {
|
||||||
(x: DataOptions) => x.id == "HEAD" || x.id == "DIRECTOR"
|
(x: DataOptions) => x.id == "HEAD" || x.id == "DIRECTOR"
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
switch (posTypeName + " " + posLevelName) {
|
if (executiveName == null) {
|
||||||
// case "ทั่วไป ปฏิบัติงาน":
|
competencyType.value = competencyType.value.filter(
|
||||||
// case "ทั่วไป ชำนาญงาน":
|
(x: DataOptions) => x.id == "HEAD" || x.id == "GROUP"
|
||||||
// case "ทั่วไป อาวุโส":
|
);
|
||||||
// case "วิชาการ ปฏิบัติการ":
|
} else {
|
||||||
// case "วิชาการ ชำนาญการ":
|
competencyType.value = competencyType.value.filter(
|
||||||
// case "วิชาการ ชำนาญการพิเศษ":
|
(x: DataOptions) => x.id == "HEAD" || x.id == "EXECUTIVE"
|
||||||
// case "วิชาการ เชี่ยวชาญ":
|
);
|
||||||
// case "วิชาการ ทรงคุณวุฒิ":
|
|
||||||
// competencyType.value = competencyType.value.filter(
|
|
||||||
// (x: DataOptions) => x.id == "HEAD" || x.id == "GROUP"
|
|
||||||
// );
|
|
||||||
// break;
|
|
||||||
case "อำนวยการ ต้น":
|
|
||||||
case "อำนวยการ สูง":
|
|
||||||
case "บริหาร ต้น":
|
|
||||||
case "บริหาร สูง":
|
|
||||||
competencyType.value = competencyType.value.filter(
|
|
||||||
(x: DataOptions) => x.id == "HEAD" || x.id == "EXECUTIVE"
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
competencyType.value = competencyType.value.filter(
|
|
||||||
(x: DataOptions) => x.id == "HEAD" || x.id == "GROUP"
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
// switch (posTypeName + " " + posLevelName) {
|
||||||
|
// // case "ทั่วไป ปฏิบัติงาน":
|
||||||
|
// // case "ทั่วไป ชำนาญงาน":
|
||||||
|
// // case "ทั่วไป อาวุโส":
|
||||||
|
// // case "วิชาการ ปฏิบัติการ":
|
||||||
|
// // case "วิชาการ ชำนาญการ":
|
||||||
|
// // case "วิชาการ ชำนาญการพิเศษ":
|
||||||
|
// // case "วิชาการ เชี่ยวชาญ":
|
||||||
|
// // case "วิชาการ ทรงคุณวุฒิ":
|
||||||
|
// // competencyType.value = competencyType.value.filter(
|
||||||
|
// // (x: DataOptions) => x.id == "HEAD" || x.id == "GROUP"
|
||||||
|
// // );
|
||||||
|
// // break;
|
||||||
|
// case "อำนวยการ ต้น":
|
||||||
|
// case "อำนวยการ สูง":
|
||||||
|
// case "บริหาร ต้น":
|
||||||
|
// case "บริหาร สูง":
|
||||||
|
// competencyType.value = competencyType.value.filter(
|
||||||
|
// (x: DataOptions) => x.id == "HEAD" || x.id == "EXECUTIVE"
|
||||||
|
// );
|
||||||
|
// break;
|
||||||
|
// default:
|
||||||
|
// competencyType.value = competencyType.value.filter(
|
||||||
|
// (x: DataOptions) => x.id == "HEAD" || x.id == "GROUP"
|
||||||
|
// );
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import { useKpiDataStore } from "@/modules/08_KPI/store";
|
||||||
import DialogHeader from "@/components/DialogHeader.vue";
|
import DialogHeader from "@/components/DialogHeader.vue";
|
||||||
import type { FormProfile } from "@/modules/08_KPI/interface/request/index";
|
import type { FormProfile } from "@/modules/08_KPI/interface/request/index";
|
||||||
import type { DataOptions } from "@/modules/08_KPI/interface/index/Main";
|
import type { DataOptions } from "@/modules/08_KPI/interface/index/Main";
|
||||||
|
import { aW } from "@fullcalendar/core/internal-common";
|
||||||
|
|
||||||
const scoreTotal = ref<boolean>(false);
|
const scoreTotal = ref<boolean>(false);
|
||||||
const modalScore = ref<boolean>(false);
|
const modalScore = ref<boolean>(false);
|
||||||
|
|
@ -65,8 +66,8 @@ const formProfile = reactive<FormProfile>({
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
function fetchEvaluation() {
|
async function fetchEvaluation() {
|
||||||
http
|
await http
|
||||||
.get(config.API.kpiEvaluation + `/${id.value}`)
|
.get(config.API.kpiEvaluation + `/${id.value}`)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
|
|
@ -93,13 +94,12 @@ function fetchEvaluation() {
|
||||||
function getProfile() {
|
function getProfile() {
|
||||||
http
|
http
|
||||||
.get(config.API.profilePosition())
|
.get(config.API.profilePosition())
|
||||||
.then((res) => {
|
.then(async (res) => {
|
||||||
const data = res.data.result;
|
const data = await res.data.result;
|
||||||
|
store.dataProfile = await data;
|
||||||
|
|
||||||
store.dataProfile = data;
|
await store.checkCompetency();
|
||||||
store.checkCompetency();
|
await store.checkCompetencyDefaultCompetencyLevel();
|
||||||
store.checkCompetencyDefaultCompetencyLevel();
|
|
||||||
store.checkStep();
|
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
messageError($q, e);
|
messageError($q, e);
|
||||||
|
|
@ -251,27 +251,27 @@ watch(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
function onSubmitScore() {
|
// function onSubmitScore() {
|
||||||
showLoader();
|
// showLoader();
|
||||||
http
|
// http
|
||||||
.put(config.API.kpiScoreTotal() + `/${id.value}`, {
|
// .put(config.API.kpiScoreTotal() + `/${id.value}`, {
|
||||||
plannedPoint: plannedPoint.value,
|
// plannedPoint: plannedPoint.value,
|
||||||
rolePoint: rolePoint.value,
|
// rolePoint: rolePoint.value,
|
||||||
specialPoint: specialPoint.value,
|
// specialPoint: specialPoint.value,
|
||||||
capacityPoint: capacityPoint.value,
|
// capacityPoint: capacityPoint.value,
|
||||||
})
|
// })
|
||||||
.then(async (res) => {
|
// .then(async (res) => {
|
||||||
await fetchEvaluation();
|
// await fetchEvaluation();
|
||||||
success($q, "บันทึกสำเร็จ");
|
// success($q, "บันทึกสำเร็จ");
|
||||||
modalScore.value = false;
|
// modalScore.value = false;
|
||||||
})
|
// })
|
||||||
.catch((e) => {
|
// .catch((e) => {
|
||||||
messageError($q, e);
|
// messageError($q, e);
|
||||||
})
|
// })
|
||||||
.finally(() => {
|
// .finally(() => {
|
||||||
hideLoader();
|
// hideLoader();
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
|
|
||||||
// async function clearScore() {
|
// async function clearScore() {
|
||||||
// modalScore.value = false;
|
// modalScore.value = false;
|
||||||
|
|
@ -283,8 +283,11 @@ function onSubmitScore() {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
async function getAll() {
|
async function getAll() {
|
||||||
|
await getProfile();
|
||||||
await fetchEvaluation();
|
await fetchEvaluation();
|
||||||
await (store.dataProfile.profileId === null ? getProfile() : ""); // await getProfile();
|
|
||||||
|
await store.checkStep();
|
||||||
|
|
||||||
await getOrgOp();
|
await getOrgOp();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -397,7 +400,9 @@ onMounted(async () => {
|
||||||
<div class="q-gutter-x-sm">
|
<div class="q-gutter-x-sm">
|
||||||
<span
|
<span
|
||||||
v-if="
|
v-if="
|
||||||
indicatorWeightTotal > 0 && indicatorWeightTotal != 100
|
store.dataProfile.posExecutiveName == null &&
|
||||||
|
indicatorWeightTotal > 0 &&
|
||||||
|
indicatorWeightTotal != 100
|
||||||
"
|
"
|
||||||
class="text-red"
|
class="text-red"
|
||||||
>*น้ำหนัก(ร้อยละ) ผลสัมฤทธิ์ของงานไม่ถูกต้อง</span
|
>*น้ำหนัก(ร้อยละ) ผลสัมฤทธิ์ของงานไม่ถูกต้อง</span
|
||||||
|
|
|
||||||
|
|
@ -169,10 +169,12 @@ function changRound() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function redirectViewDetail(id: string) {
|
function redirectViewDetail(id: string) {
|
||||||
|
store.tabMain = "1";
|
||||||
router.push(`/KPI/${id}`);
|
router.push(`/KPI/${id}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
function onClickAddList() {
|
async function onClickAddList() {
|
||||||
|
await getProfile();
|
||||||
modalDialog.value = true;
|
modalDialog.value = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -194,11 +196,11 @@ function onSubmit() {
|
||||||
lastName: formRound.lastName,
|
lastName: formRound.lastName,
|
||||||
|
|
||||||
evaluatorId: formRound.evaluatorId,
|
evaluatorId: formRound.evaluatorId,
|
||||||
commanderId: formRound.commanderId,
|
commanderId: formRound.commanderId == "" ? null : formRound.commanderId,
|
||||||
commanderHighId: formRound.commanderHighId,
|
commanderHighId:
|
||||||
|
formRound.commanderHighId == "" ? null : formRound.commanderHighId,
|
||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log(res);
|
|
||||||
const id = res.data.result;
|
const id = res.data.result;
|
||||||
redirectViewDetail(id);
|
redirectViewDetail(id);
|
||||||
onCloseDialog();
|
onCloseDialog();
|
||||||
|
|
@ -314,7 +316,6 @@ function filterOption(val: any, update: Function, refData: string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getProfile();
|
|
||||||
fetchRoundOption("main");
|
fetchRoundOption("main");
|
||||||
getOrgOp();
|
getOrgOp();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue