diff --git a/src/modules/14_KPI/components/indicatorByPlan/DetailView.vue b/src/modules/14_KPI/components/indicatorByPlan/DetailView.vue index f4115488a..9cb5a5ad9 100644 --- a/src/modules/14_KPI/components/indicatorByPlan/DetailView.vue +++ b/src/modules/14_KPI/components/indicatorByPlan/DetailView.vue @@ -26,10 +26,7 @@ async function fetchData() { showLoader(); await http .get(config.API.kpiPlan) - .then(async (res) => { - console.log(res.data.result); - console.log("test"); - }) + .then(async (res) => {}) .catch((err) => { messageError($q, err); }) diff --git a/src/modules/14_KPI/components/indicatorByPlan/IndicatorByPlan.vue b/src/modules/14_KPI/components/indicatorByPlan/IndicatorByPlan.vue index c57279515..91968d13c 100644 --- a/src/modules/14_KPI/components/indicatorByPlan/IndicatorByPlan.vue +++ b/src/modules/14_KPI/components/indicatorByPlan/IndicatorByPlan.vue @@ -4,6 +4,7 @@ import { useCounterMixin } from "@/stores/mixin"; import config from "@/app.config"; import { QForm, useQuasar } from "quasar"; import http from "@/plugins/http"; +import { useRoute } from "vue-router"; import { usePositionEmp } from "@/modules/16_positionEmployee/store/organizational"; const store = usePositionEmp(); const mixin = useCounterMixin(); @@ -19,15 +20,35 @@ const { } = mixin; const planData = reactive({ - year: null, + year: 0, //ปีงบประมาณ + round: "", //รอบการประเมิน(เมษา->APR, ตุลา->OCT) + including: "", //รหัสตัวชี้วัด + includingName: "", //ชื่อตัวชี้วัด + target: "", //ค่าเป้าหมาย + unit: null, //หน่วยนับ + weight: null, //น้ำหนัก + achievement1: "", //ผลสำเร็จของงาน 1 + achievement2: "", //ผลสำเร็จของงาน 2 + achievement3: "", //ผลสำเร็จของงาน 3 + achievement4: "", //ผลสำเร็จของงาน 4 + achievement5: "", //ผลสำเร็จของงาน 5 + meaning: "", //นิยามหรือความหมาย + formula: "", //สูตรคำนวณ + node: null, //ระดับหน่วยงาน + nodeId: "", //id หน่วยงาน + orgRevisionId: "", //RevisionId หน่วยงาน + strategy: null, //ระดับยุทธศาสตร์ + strategyId: "", //id ยุทธศาสตร์ }); const filter = ref(""); const filterAgency = ref(""); +const route = useRoute(); +const id = ref(route.params.id); const roundOp = ref([ - { id: "APRIL", name: "เมษายน" }, - { id: "OCTOBER", name: "ตุลาคม" }, + { id: "APR", name: "เมษายน" }, + { id: "OCT", name: "ตุลาคม" }, ]); const notFound = ref("ไม่พบข้อมูลที่ค้นหา"); const noData = ref("ไม่มีข้อมูล"); @@ -35,11 +56,13 @@ const expandedPlan = ref>([]); const expandedAgency = ref>([]); const nodeplan = ref([]); const nodeAgency = ref([]); -const nodeId = ref(""); +const editStatus = ref(false); async function onSubmit() { dialogConfirm( $q, - async () => {}, + async () => { + editStatus.value ? editData(id.value) : addData(); + }, "ยืนยันการบันทึกข้อมูล", "ต้องการยืนยันการบันทึกข้อมูลนี้หรือไม่ ?" ); @@ -97,19 +120,92 @@ async function fetchOrganizationActive() { }); } +async function fetchDataById(id: any) { + showLoader(); + await http + .get(config.API.kpiPlanById(id)) + .then(async (res) => { + const data = res.data.result; + // planData.value = data; + planData.year = data.year; + planData.round = data.round; + planData.including = data.including; + planData.includingName = data.includingName; + planData.target = data.target; + planData.unit = data.unit; + planData.weight = data.weight; + planData.achievement1 = data.achievement1; + planData.achievement2 = data.achievement2; + planData.achievement3 = data.achievement3; + planData.achievement4 = data.achievement4; + planData.achievement5 = data.achievement5; + planData.meaning = data.meaning; + planData.formula = data.formula; + planData.node = data.node; + planData.nodeId = data.nodeId; + planData.orgRevisionId = data.orgRevisionId; + planData.strategy = data.strategy; + planData.strategyId = data.strategyId; + }) + .catch((err) => { + messageError($q, err); + }) + .finally(() => { + hideLoader(); + }); +} + function updateSelected(data: any) { - planData.strategyChildPlannedId = data.id; - planData.strategyChildPlannedNode = data.level; + planData.strategyId = data.id; + planData.strategy = data.level; } function updateSelectedAgency(data: any) { - planData.agencyId = data.orgTreeId; - planData.agencyLevel = data.orgLevel; + if (planData.node === data.orgLevel && planData.nodeId === data.orgTreeId) { + planData.node = null; + planData.nodeId = null; + } else { + planData.node = data.orgLevel; + planData.nodeId = data.orgTreeId; + } + planData.orgRevisionId = data.orgRevisionId; +} + +async function addData() { + await http + .post(config.API.kpiPlan, planData) + .then(() => { + success($q, "บันทึกข้อมูลสำเร็จ"); + }) + .catch((err) => { + messageError($q, err); + }) + .finally(() => { + hideLoader(); + }); +} + +async function editData(id: any) { + await http + .put(config.API.kpiPlanById(id), planData) + .then(() => { + success($q, "บันทึกข้อมูลสำเร็จ"); + }) + .catch((err) => { + messageError($q, err); + }) + .finally(() => { + hideLoader(); + }); } onMounted(async () => { // fetchData(); await fetchTree(); await fetchOrganizationActive(); + if (id.value !== undefined) { + editStatus.value = true; + fetchDataById(id.value); + } setTimeout(async () => { store.activeId && (await fetchDataTree(store.activeId)); }, 200); @@ -140,13 +236,19 @@ onMounted(async () => { lazy-rules outlined class="inputgreen" - clearable - @clear="() => (planData.year = null)" hide-bottom-space :model-value="!!planData.year ? planData.year + 543 : null" :label="`${'ปีงบประมาณ'}`" @update:modelValue="planData.year = null" > + @@ -174,7 +276,7 @@ onMounted(async () => {
{
{
{
{
{
{
{
{
{
{
{
{ :no-results-label="notFound" :no-nodes-label="noData" v-model:expanded="expandedAgency" + v-model:selected="planData.nodeId" >