diff --git a/src/modules/10_order/components/Detail.vue b/src/modules/10_order/components/Detail.vue index 68be0da5c..a30711121 100644 --- a/src/modules/10_order/components/Detail.vue +++ b/src/modules/10_order/components/Detail.vue @@ -5,6 +5,11 @@ import type { QStepper } from "quasar"; import { useRoute } from "vue-router"; import http from "@/plugins/http"; import config from "@/app.config"; +import { useQuasar } from "quasar"; + +import { useOrderPlacementDataStore } from "@/modules/10_order/store"; + +const DataStore = useOrderPlacementDataStore(); const route = useRoute(); const orderId_params = route.params.orderid; @@ -29,6 +34,7 @@ const orderId = ref(""); onUnmounted(() => { destroyLocalStorage(); + DataStore.typeOrder = ""; }); // const nextStep = async () => { @@ -78,6 +84,7 @@ const previousStep = async () => { const destroyLocalStorage = () => { localStorage.clear(); }; + onMounted(() => { if (route.query.step) { step.value = Number(route.query.step); @@ -132,6 +139,7 @@ onMounted(() => { :header-nav="step > 1" /> { :header-nav="step > 2" /> - diff --git a/src/modules/10_order/components/step/step01.vue b/src/modules/10_order/components/step/step01.vue index 08149986b..f06b8cbe3 100644 --- a/src/modules/10_order/components/step/step01.vue +++ b/src/modules/10_order/components/step/step01.vue @@ -221,6 +221,7 @@ const fetchdetailOrder = async () => { const data = res.data.result; const orderTypeCode = await data.orderTypeCode.toUpperCase(); + DataStore.typeOrder = orderTypeCode; await optionsData(orderTypeCode); typeOrder.value = typeOrderOption.value.find( @@ -378,6 +379,7 @@ const optionsData = async (commandCode: string) => { const selectCMP = async (selectOrder: OrederResult) => { if (selectOrder != null) { const orderTypeCode = await selectOrder.commandCode.toUpperCase(); + DataStore.typeOrder = orderTypeCode; optionsData(orderTypeCode); } //01-04 @@ -638,7 +640,7 @@ const createListOrder = async (formData: Object, type: string) => { showLoader(); await http .post(config.API.orderCPM(type), formData) - .then((res) => { + .then(async (res) => { const data = res.data.result; localStorage.setItem("orderId", data.id); @@ -646,17 +648,17 @@ const createListOrder = async (formData: Object, type: string) => { route.name == "disciplineOrderDatail" || route.name == "disciplineOrderAdd" ) { - router.push( - `/discipline-order/detail/${data.id}?step=${ - type == "C-PM-38" ? 3 : 2 - }` - ); // สร้างเสร็จแล้วให้ไป Step 2 + router.push(`/discipline-order/detail/${data.id}?step=${2}`); // สร้างเสร็จแล้วให้ไป Step 2 } else { - router.push( - `/order/detail/${data.id}?step=${type == "C-PM-38" ? 3 : 2}` - ); // สร้างเสร็จแล้วให้ไป Step 2 + router.push(`/order/detail/${data.id}?step=${2}`); // สร้างเสร็จแล้วให้ไป Step 2 } - next(); + if (DataStore.typeOrder === "C-PM-38") { + await next(); + await next(); + } else { + next(); + } + success($q, "บันทึกข้อมูลสำเร็จ"); }) .catch((e) => { @@ -671,7 +673,12 @@ const updateOrder = async (formData: Object, orderId: string, type: string) => { await http .put(config.API.orderCPMUpdate(type, orderId), formData) .then(() => { - next(); // แก้ไขเสร็จแล้วให้ไป Step 2 + if (DataStore.typeOrder === "C-PM-38") { + next(); + next(); + } else { + next(); + } success($q, "บันทึกข้อมูลสำเร็จ"); }) .catch((e) => { diff --git a/src/modules/10_order/components/step/step02.vue b/src/modules/10_order/components/step/step02.vue index d1cefb23b..2bc53f70f 100644 --- a/src/modules/10_order/components/step/step02.vue +++ b/src/modules/10_order/components/step/step02.vue @@ -12,6 +12,9 @@ import http from "@/plugins/http"; import config from "@/app.config"; import DialogHeader from "@/modules/04_registry/components/DialogHeader.vue"; +import { useOrderPlacementDataStore } from "@/modules/10_order/store"; + +const DataStore = useOrderPlacementDataStore(); // import CurruncyInput from "@/components/CurruncyInput.vue"; const props = defineProps({ @@ -152,6 +155,7 @@ const fetchOrder = async (id: string) => { .then((res) => { let data = res.data.result; orderTypeCode.value = data.orderTypeCode; + DataStore.typeOrder = data.orderTypeCode.toUpperCase(); }) .catch((err) => { messageError($q, err); diff --git a/src/modules/10_order/components/step/step03.vue b/src/modules/10_order/components/step/step03.vue index 97d2a977f..749421e93 100644 --- a/src/modules/10_order/components/step/step03.vue +++ b/src/modules/10_order/components/step/step03.vue @@ -17,6 +17,10 @@ import type { RequestCopyOrder } from "@/modules/05_placement/interface/request/ import { useRoute } from "vue-router"; import type { DataOption } from "@/modules/10_order/interface/index/Main"; import DialogOrgSelectOneStep from "@/components/Dialogs/DialogOrgSelectOneStep.vue"; +import { useOrderPlacementDataStore } from "@/modules/10_order/store"; + +const DataStore = useOrderPlacementDataStore(); + const props = defineProps({ next: { type: Function, @@ -29,7 +33,14 @@ const props = defineProps({ }); const next = () => props.next(); -const previous = () => props.previous(); +const previous = async () => { + if (DataStore.typeOrder === "C-PM-38") { + await props.previous(); + await props.previous(); + } else { + props.previous(); + } +}; const $q = useQuasar(); const mixin = useCounterMixin(); //เรียกฟังก์ชันกลาง @@ -158,6 +169,7 @@ const conditionId = async () => { : null; if (id !== null) { await getData(id); + fetchOrder(id); } }; // เรียก้อมูลใน Table @@ -334,6 +346,19 @@ const fetchSaveCopyOrder = async () => { const updateData = (row: DataCopyOrder) => { editRows.value.push(row); }; + +//เรียกรายละเอียดของคำสั่ง +const fetchOrder = async (id: string) => { + await http + .get(config.API.detailOrder(id)) + .then((res) => { + let data = res.data.result; + DataStore.typeOrder = data.orderTypeCode.toUpperCase(); + }) + .catch((err) => { + messageError($q, err); + }); +}; -
+
{ + const typeOrder = ref(""); interface placementOrder { mappingPosition: { columns: String[] }; } @@ -179,6 +180,8 @@ export const useOrderPlacementDataStore = defineStore("placementOrder", () => { return "คำสั่งให้ลูกจ้างประจำได้รับค่าตอบแทนพิเศษ"; case "C-PM-38": return "แต่งตั้งข้าราชการให้ดำรงตำแหน่ง"; // คำสั่งปรับโครงสร้าง + // case "C-PM-39": + // return "คำสั่งปรับโครงสร้าง"; default: return ""; } @@ -199,5 +202,6 @@ export const useOrderPlacementDataStore = defineStore("placementOrder", () => { nameOrderFilter, complaintLists, complaintOption, + typeOrder, }; }); diff --git a/src/modules/10_order/views/Main.vue b/src/modules/10_order/views/Main.vue index 1cca30c22..58b4d9ed0 100644 --- a/src/modules/10_order/views/Main.vue +++ b/src/modules/10_order/views/Main.vue @@ -157,7 +157,7 @@ const OriginalDataFetch = async () => { }; // redirect ไปยัง step ปัจจุบัน -const redirectToPage = (id?: string, status?: string) => { +const redirectToPage = (id?: string, status?: string, name?: string) => { let step = 1; switch (status) { case "จัดทำร่างคำสั่ง": @@ -167,10 +167,10 @@ const redirectToPage = (id?: string, status?: string) => { step = 2; break; case "เลือกผู้ได้รับสำเนาคำสั่ง": - step = 3; + step = name === "คำสั่งปรับโครงสร้าง" ? 2 : 3; break; default: - step = 4; + step = name === "คำสั่งปรับโครงสร้าง" ? 3 : 4; break; } router.push(`/order/detail/${id}?step=${step}`); @@ -495,7 +495,11 @@ const paginationLabel = (start: string, end: string, total: string) => { :props="props" class="cursor-pointer" @click=" - redirectToPage(props.row.orderId, props.row.OrderStatus) + redirectToPage( + props.row.orderId, + props.row.OrderStatus, + props.row.OrderType + ) " >