ปรับ kpi
This commit is contained in:
parent
228a48ea77
commit
0e3e977062
4 changed files with 109 additions and 94 deletions
|
|
@ -28,6 +28,7 @@ const {
|
|||
const modal = defineModel<boolean>("modal", { required: true });
|
||||
const numpage = defineModel<number>("numpage", { required: true });
|
||||
const isStatusEdit = defineModel<boolean>("isStatusEdit", { required: true });
|
||||
const checkDetail = defineModel<boolean>("checkDetail", { required: true });
|
||||
const kpiUserPlannedId = defineModel<string>("kpiUserPlannedId", {
|
||||
required: true,
|
||||
});
|
||||
|
|
@ -252,51 +253,53 @@ function fetchspecialByid(id: string) {
|
|||
}
|
||||
|
||||
function clickList(id: string, isData: boolean = false) {
|
||||
showLoader();
|
||||
const url =
|
||||
numpage.value === 1
|
||||
? config.API.kpiPlan
|
||||
: numpage.value === 2
|
||||
? config.API.kpiRole
|
||||
: config.API.kpiSpecial;
|
||||
http
|
||||
.get(`${url}/${id}`)
|
||||
.then((res) => {
|
||||
listCheckID.value = id;
|
||||
const data = res.data.result;
|
||||
if (!isData) {
|
||||
formDetail.target = data.target;
|
||||
formDetail.unit = data.unit;
|
||||
formDetail.weight = data.weight;
|
||||
formDetail.meaning = data.meaning;
|
||||
formDetail.formula = data.formula;
|
||||
formDetail.achievement1 = data.achievement1;
|
||||
formDetail.achievement2 = data.achievement2;
|
||||
formDetail.achievement3 = data.achievement3;
|
||||
formDetail.achievement4 = data.achievement4;
|
||||
formDetail.achievement5 = data.achievement5;
|
||||
}
|
||||
formDetail.orgRevisionId = data.corgRevisionId;
|
||||
formDetail.id = data.id;
|
||||
formDetail.year = data.year;
|
||||
formDetail.round = data.round;
|
||||
formDetail.kpiPeriodId = data.kpiPeriodId;
|
||||
formDetail.includingName = data.includingName;
|
||||
formDetail.including = data.including;
|
||||
formDetail.node = data.node;
|
||||
formDetail.nodeId = data.nodeId;
|
||||
formDetail.nodeName = data.nodeName;
|
||||
formDetail.strategy = data.strategy;
|
||||
formDetail.strategyId = data.strategyId;
|
||||
formDetail.strategyName = data.strategyName;
|
||||
formDetail.documentInfoEvidence = data.documentInfoEvidence;
|
||||
})
|
||||
.catch((err) => {
|
||||
messageError($q, err);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
if (!checkDetail.value) {
|
||||
showLoader();
|
||||
const url =
|
||||
numpage.value === 1
|
||||
? config.API.kpiPlan
|
||||
: numpage.value === 2
|
||||
? config.API.kpiRole
|
||||
: config.API.kpiSpecial;
|
||||
http
|
||||
.get(`${url}/${id}`)
|
||||
.then((res) => {
|
||||
listCheckID.value = id;
|
||||
const data = res.data.result;
|
||||
if (!isData) {
|
||||
formDetail.target = data.target;
|
||||
formDetail.unit = data.unit;
|
||||
formDetail.weight = data.weight;
|
||||
formDetail.meaning = data.meaning;
|
||||
formDetail.formula = data.formula;
|
||||
formDetail.achievement1 = data.achievement1;
|
||||
formDetail.achievement2 = data.achievement2;
|
||||
formDetail.achievement3 = data.achievement3;
|
||||
formDetail.achievement4 = data.achievement4;
|
||||
formDetail.achievement5 = data.achievement5;
|
||||
}
|
||||
formDetail.orgRevisionId = data.corgRevisionId;
|
||||
formDetail.id = data.id;
|
||||
formDetail.year = data.year;
|
||||
formDetail.round = data.round;
|
||||
formDetail.kpiPeriodId = data.kpiPeriodId;
|
||||
formDetail.includingName = data.includingName;
|
||||
formDetail.including = data.including;
|
||||
formDetail.node = data.node;
|
||||
formDetail.nodeId = data.nodeId;
|
||||
formDetail.nodeName = data.nodeName;
|
||||
formDetail.strategy = data.strategy;
|
||||
formDetail.strategyId = data.strategyId;
|
||||
formDetail.strategyName = data.strategyName;
|
||||
formDetail.documentInfoEvidence = data.documentInfoEvidence;
|
||||
})
|
||||
.catch((err) => {
|
||||
messageError($q, err);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/** ปิด dialog */
|
||||
|
|
@ -337,6 +340,9 @@ function closeDialog() {
|
|||
formFilter.year = null;
|
||||
formFilter.page = 1;
|
||||
formFilter.pageSize = 20;
|
||||
|
||||
isStatusEdit.value = false;
|
||||
checkDetail.value = false;
|
||||
}
|
||||
|
||||
function onSubmit() {
|
||||
|
|
@ -420,12 +426,15 @@ watch(
|
|||
if (numpage.value === 1) {
|
||||
fetchListPlan();
|
||||
isStatusEdit.value && fetchListPlanByid(kpiUserPlannedId.value);
|
||||
checkDetail.value && fetchListPlanByid(kpiUserPlannedId.value);
|
||||
} else if (numpage.value === 2) {
|
||||
fetchListRole();
|
||||
isStatusEdit.value && fetchRoleByid(kpiUserPlannedId.value);
|
||||
checkDetail.value && fetchRoleByid(kpiUserPlannedId.value);
|
||||
} else if (numpage.value === 3) {
|
||||
fetchListSpecial();
|
||||
isStatusEdit.value && fetchspecialByid(kpiUserPlannedId.value);
|
||||
checkDetail.value && fetchspecialByid(kpiUserPlannedId.value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -454,7 +463,14 @@ const title = computed(() => {
|
|||
<q-dialog v-model="modal" persistent>
|
||||
<q-card class="col-12" style="width: 100%">
|
||||
<q-form greedy @submit.prevent @validation-success="onSubmit">
|
||||
<DialogHeader :tittle="title" :close="closeDialog" />
|
||||
<DialogHeader
|
||||
:tittle="
|
||||
checkDetail
|
||||
? `รายละเอียดตัวชี้วัดตามแผนปฏิบัติราชการประจําปี`
|
||||
: `${title}`
|
||||
"
|
||||
:close="closeDialog"
|
||||
/>
|
||||
<q-separator />
|
||||
|
||||
<q-card-section class="q-pa-none scroll" style="max-height: 75vh">
|
||||
|
|
@ -463,6 +479,7 @@ const title = computed(() => {
|
|||
<div class="col-12 fit">
|
||||
<div class="row col-12" v-if="numpage !== 3">
|
||||
<q-checkbox
|
||||
:disable="checkDetail"
|
||||
v-model="formFilter.isAll"
|
||||
label="แสดงตัวชี้วัดภายใต้หน่วยงาน/ส่วนราชการทุกระดับ"
|
||||
@update:model-value="fetchNewList()"
|
||||
|
|
@ -471,6 +488,7 @@ const title = computed(() => {
|
|||
<div class="row q-col-gutter-sm col-12">
|
||||
<div class="col-5">
|
||||
<datepicker
|
||||
:readonly="checkDetail"
|
||||
menu-class-name="modalfix"
|
||||
v-model="formFilter.year"
|
||||
:locale="'th'"
|
||||
|
|
@ -487,6 +505,7 @@ const title = computed(() => {
|
|||
<q-input
|
||||
dense
|
||||
outlined
|
||||
:readonly="checkDetail"
|
||||
:model-value="
|
||||
formFilter.year === null || formFilter.year === ''
|
||||
? null
|
||||
|
|
@ -519,6 +538,7 @@ const title = computed(() => {
|
|||
<div class="col-7">
|
||||
<q-select
|
||||
dense
|
||||
:readonly="checkDetail"
|
||||
outlined
|
||||
v-model="formFilter.period"
|
||||
:options="roundOp"
|
||||
|
|
@ -539,6 +559,7 @@ const title = computed(() => {
|
|||
v-model="formFilter.keyword"
|
||||
outlined
|
||||
dense
|
||||
:readonly="checkDetail"
|
||||
label="ค้นหา"
|
||||
@keydown.enter.prevent="fetchNewList()"
|
||||
>
|
||||
|
|
@ -572,6 +593,7 @@ const title = computed(() => {
|
|||
:active="listCheckID === item.id"
|
||||
active-class="my-menu-link"
|
||||
@click="clickList(item.id)"
|
||||
:style="checkDetail ? 'pointer-events: none;' : ''"
|
||||
>
|
||||
<q-item-section class="q-pa-none">
|
||||
<div
|
||||
|
|
@ -599,7 +621,6 @@ const title = computed(() => {
|
|||
active-color="primary"
|
||||
color="dark"
|
||||
:max="Number(maxPage)"
|
||||
size="sm"
|
||||
boundary-links
|
||||
direction-links
|
||||
:max-pages="5"
|
||||
|
|
@ -642,6 +663,7 @@ const title = computed(() => {
|
|||
<q-input
|
||||
v-if="numpage === 3"
|
||||
outlined
|
||||
:readonly="checkDetail"
|
||||
v-model="formDetail.including"
|
||||
bg-color="white"
|
||||
dense
|
||||
|
|
@ -663,6 +685,7 @@ const title = computed(() => {
|
|||
<q-input
|
||||
v-if="numpage === 3"
|
||||
outlined
|
||||
:readonly="checkDetail"
|
||||
v-model="formDetail.includingName"
|
||||
bg-color="white"
|
||||
dense
|
||||
|
|
@ -683,6 +706,7 @@ const title = computed(() => {
|
|||
outlined
|
||||
v-model="formDetail.target"
|
||||
bg-color="white"
|
||||
:readonly="checkDetail"
|
||||
dense
|
||||
class="inputgreen"
|
||||
:rules="[
|
||||
|
|
@ -700,6 +724,7 @@ const title = computed(() => {
|
|||
outlined
|
||||
v-model="formDetail.unit"
|
||||
bg-color="white"
|
||||
:readonly="checkDetail"
|
||||
dense
|
||||
class="inputgreen"
|
||||
:rules="[
|
||||
|
|
@ -718,6 +743,7 @@ const title = computed(() => {
|
|||
outlined
|
||||
v-model="formDetail.weight"
|
||||
bg-color="white"
|
||||
:readonly="checkDetail"
|
||||
dense
|
||||
class="inputgreen"
|
||||
:rules="[
|
||||
|
|
@ -749,6 +775,7 @@ const title = computed(() => {
|
|||
v-model="formDetail.achievement5"
|
||||
outlined
|
||||
dense
|
||||
:readonly="checkDetail"
|
||||
:rules="[(val:string) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`,]"
|
||||
hide-bottom-space
|
||||
class="inputgreen"
|
||||
|
|
@ -763,6 +790,7 @@ const title = computed(() => {
|
|||
<q-input
|
||||
v-model="formDetail.achievement4"
|
||||
outlined
|
||||
:readonly="checkDetail"
|
||||
dense
|
||||
:rules="[(val:string) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`,]"
|
||||
hide-bottom-space
|
||||
|
|
@ -778,6 +806,7 @@ const title = computed(() => {
|
|||
<q-input
|
||||
v-model="formDetail.achievement3"
|
||||
outlined
|
||||
:readonly="checkDetail"
|
||||
dense
|
||||
:rules="[(val:string) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`,]"
|
||||
hide-bottom-space
|
||||
|
|
@ -793,6 +822,7 @@ const title = computed(() => {
|
|||
<q-input
|
||||
v-model="formDetail.achievement2"
|
||||
outlined
|
||||
:readonly="checkDetail"
|
||||
dense
|
||||
:rules="[(val:string) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`,]"
|
||||
hide-bottom-space
|
||||
|
|
@ -808,6 +838,7 @@ const title = computed(() => {
|
|||
<q-input
|
||||
v-model="formDetail.achievement1"
|
||||
outlined
|
||||
:readonly="checkDetail"
|
||||
dense
|
||||
:rules="[(val:string) => !!val || `${'กรุณากรอกผลสำเร็จของงาน'}`,]"
|
||||
hide-bottom-space
|
||||
|
|
@ -823,6 +854,7 @@ const title = computed(() => {
|
|||
v-model="formDetail.meaning"
|
||||
label="นิยามหรือความหมายของตัวชี้วัด"
|
||||
type="textarea"
|
||||
:readonly="checkDetail"
|
||||
outlined
|
||||
dense
|
||||
:rules="[(val:string) => !!val || `${'กรุณากรอกตัวชี้วัด'}`,]"
|
||||
|
|
@ -836,6 +868,7 @@ const title = computed(() => {
|
|||
<q-input
|
||||
v-model="formDetail.formula"
|
||||
label="สูตรคำนวณ"
|
||||
:readonly="checkDetail"
|
||||
type="textarea"
|
||||
outlined
|
||||
dense
|
||||
|
|
@ -852,6 +885,7 @@ const title = computed(() => {
|
|||
label="ข้อมูลเอกสารหลักฐาน"
|
||||
type="textarea"
|
||||
outlined
|
||||
:readonly="checkDetail"
|
||||
dense
|
||||
:rules="[(val:string) => !!val || `${'กรุณากรอกข้อมูลเอกสารหลักฐาน'}`,]"
|
||||
hide-bottom-space
|
||||
|
|
@ -863,6 +897,7 @@ const title = computed(() => {
|
|||
<datepicker
|
||||
v-model="formDetail.startDate"
|
||||
:locale="'th'"
|
||||
:readonly="checkDetail"
|
||||
autoApply
|
||||
:enableTimePicker="false"
|
||||
week-start="0"
|
||||
|
|
@ -876,6 +911,7 @@ const title = computed(() => {
|
|||
<q-input
|
||||
dense
|
||||
outlined
|
||||
:readonly="checkDetail"
|
||||
class="inputgreen"
|
||||
:model-value="
|
||||
formDetail.startDate
|
||||
|
|
@ -909,6 +945,7 @@ const title = computed(() => {
|
|||
<datepicker
|
||||
v-model="formDetail.endDate"
|
||||
:locale="'th'"
|
||||
:readonly="checkDetail"
|
||||
autoApply
|
||||
:enableTimePicker="false"
|
||||
week-start="0"
|
||||
|
|
@ -923,6 +960,7 @@ const title = computed(() => {
|
|||
dense
|
||||
outlined
|
||||
class="inputgreen"
|
||||
:readonly="checkDetail"
|
||||
:model-value="
|
||||
formDetail.endDate
|
||||
? date2Thai(formDetail.endDate)
|
||||
|
|
@ -955,9 +993,9 @@ const title = computed(() => {
|
|||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
<q-separator />
|
||||
<q-separator v-if="!checkDetail"/>
|
||||
|
||||
<q-card-actions align="right" class="bg-white text-teal">
|
||||
<q-card-actions v-if="!checkDetail" align="right" class="bg-white text-teal">
|
||||
<q-btn label="บันทึก" color="secondary" type="submit"
|
||||
><q-tooltip>บันทึกข้อมูล</q-tooltip></q-btn
|
||||
>
|
||||
|
|
|
|||
|
|
@ -574,9 +574,9 @@ watch(
|
|||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
<q-separator />
|
||||
<q-separator v-if="competencyType !== 'HEAD' && competencyType !== 'GROUP'"/>
|
||||
|
||||
<q-card-actions align="right" class="bg-white text-teal">
|
||||
<q-card-actions v-if="competencyType !== 'HEAD' && competencyType !== 'GROUP'" align="right" class="bg-white text-teal">
|
||||
<q-btn label="บันทึก" color="secondary" type="submit"
|
||||
><q-tooltip>บันทึกข้อมูล</q-tooltip></q-btn
|
||||
>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue