diff --git a/src/api/05_placement/api.placement.ts b/src/api/05_placement/api.placement.ts index 2b02d64f9..fd13782a1 100644 --- a/src/api/05_placement/api.placement.ts +++ b/src/api/05_placement/api.placement.ts @@ -46,22 +46,61 @@ export default { //education placementEducationId: (id: string) => `${placement}/education/${id}`, - // position + // position placementPosition: () => `${placement}/position/use`, // putPositiom putPosition: (id: any) => `${placement}/position/${id}`, // clear Position - clearPosition: (personalId: string) => `${placement}/position/clear/${personalId}`, + clearPosition: (personalId: string) => + `${placement}/position/clear/${personalId}`, // order yearOptionsOrder: () => `${order}/order/fiscal-year`, - createOrder: () => `${order}/order/detail`, listOrder: () => `${order}/order`, - detailOrder:(orderId:string) => `${order}/order/detail/${orderId}`, - deleteOrder:(orderId:string) => `${order}/order/${orderId}`, + detailOrder: (orderId: string) => `${order}/order/detail/${orderId}`, + deleteOrder: (orderId: string) => `${order}/order/${orderId}`, typeOrder: () => `${order}/order/order-type`, + nextStep: (orderId: string) => `${order}/order/next/${orderId}`, + prevStep: (orderId: string) => `${order}/order/prev/${orderId}`, + + createOrder: () => `${order}/order/detail`, + examroundOrder: () => `${order}/order/detail/exam-round`, + //ข้อมูลเลือกรายชื่อออกคำสั่ง, ลบรายชื่อ + personsOrder: (orderId: string) => `${order}/order/persons/${orderId}`, + + //เปลี่ยน status ของคำสั่งไปขั้นตอนถัดไป + nextOrder: (orderId: string) => `${order}/order/next/${orderId}`, + //เปลี่ยน status ของคำสั่งไปขั้นตอนถัดไป + preventOrder: (orderId: string) => `${order}/order/prev/${orderId}`, + + //สลับลำดับข้อมูลในบัญชีแนบท้ายขึ้น + swapUpOrder: (personalId: string) => `${order}/order/swap/up/${personalId}`, + //สลับลำดับข้อมูลในบัญชีแนบท้ายลง + swapDownOrder: (personalId: string) => + `${order}/order/swap/down/${personalId}`, + + //บันทึกข้อมูลเงินเดือนสำหรับผู้บรรจุ + salaryOrder: (id: string) => `${order}/order/salary/${id}`, + + // popup แสดงรายชื่อตามหน่วยงานที่เลือก , popup เลือกรายชื่อส่งสำเนา + copyOrderPersonsId: (id: string) => `${order}/order/copy-order/persons/${id}`, + + copyOrder: `${order}/order/copy-order`, + + copyOrderId: (id: string) => `${order}/order/copy-order/${id}`, + + attachmentId: (id: string) => `${order}/order/attachment/${id}`, + + attachmentOrderId: (orderId: string) => + `${order}/order/attachment/order-file/${orderId}`, + attachmentFileId: (orderId: string) => + `${order}/order/attachment/file/${orderId}`, + + orderReady: (id: string) => `${order}/order/ready/${id}`, + attachmentOrder: (orderId: string) => `${order}/order/attachment/${orderId}`, + receiveData: () => `${receive}`, receiveDataId: (id: string) => `${receive}/${id}`, receivePosition: (id: string) => `${receive}/position/${id}`, diff --git a/src/api/06_retirement/api.retirement.ts b/src/api/06_retirement/api.retirement.ts index 7cf8a8057..698f2cb82 100644 --- a/src/api/06_retirement/api.retirement.ts +++ b/src/api/06_retirement/api.retirement.ts @@ -6,7 +6,9 @@ export default { profile: (type: string, year: string) => `${retirement}/profile/${type}/${year}`, profileRetire: (retireProfileId: string) => `${retirement}/profile/${retireProfileId}`, listRetire: (retireId: string) => `${retirement}/${retireId}`, - createnote: () => `${retirement}/reason`, - reasonId: (retireId:string) => `${retirement}/reason/${retireId}`, - retirement:(type:string,year:string) => `${retirement}/${type}/${year}` + createnote: () => `${retirement}/edit`, + removeProfile: () => `${retirement}/remove`, + reasonId: (retireId: string) => `${retirement}/reason/${retireId}`, + retirement: (type: string, year: string) => `${retirement}/${type}/${year}`, + createProfile: () => `${retirement}/profile`, }; diff --git a/src/modules/05_placement/components/OrderPlacement/detailOrderPlacement.vue b/src/modules/05_placement/components/OrderPlacement/detailOrderPlacement.vue index 6c17f39fd..6188a047a 100644 --- a/src/modules/05_placement/components/OrderPlacement/detailOrderPlacement.vue +++ b/src/modules/05_placement/components/OrderPlacement/detailOrderPlacement.vue @@ -48,6 +48,7 @@ :name="4" title="รายละเอียดคำสั่งและแนบท้าย" prefix="4" + :done="step > 4" :header-nav="step > 4" /> diff --git a/src/modules/05_placement/components/OrderPlacement/step/step04.vue b/src/modules/05_placement/components/OrderPlacement/step/step04.vue index d7521a80d..969e2d574 100644 --- a/src/modules/05_placement/components/OrderPlacement/step/step04.vue +++ b/src/modules/05_placement/components/OrderPlacement/step/step04.vue @@ -286,14 +286,14 @@ unelevated label="ออกคำสั่ง" :color="validateForm() ? 'public' : 'grey'" - :disable="!validateForm()" + :disable="statusOrder == 'N'" /> @@ -422,19 +422,42 @@ import { VuePDF, usePDF } from "@tato30/vue-pdf"; import type { PDFDocumentLoadingTask } from "pdfjs-dist/types/src/display/api"; import type { QForm } from "quasar"; import { useCounterMixin } from "@/stores/mixin"; +import { useQuasar } from "quasar"; +import { useRoute } from "vue-router"; +import http from "@/plugins/http"; +import config from "@/app.config"; const mixin = useCounterMixin(); -const { date2Thai } = mixin; +const { date2Thai, messageError, showLoader, hideLoader } = mixin; +const route = useRoute(); +const $q = useQuasar(); +const orderId_params = route.params.orderid; const dialog = ref(false); +const splitterModel = ref(70); +const tab = ref("main"); + +const order = ref(""); +const years = ref(new Date().getDate()); +const date = ref(new Date()); +const fileOrder = ref(null); +const fileTailer = ref(null); + +const statusOrder = ref(); // onUnmounted(() => { // window.removeEventListener("resize", (e: any) => { // myEventHandler(e); // }); // }); - +const orderId = ref(""); onMounted(async () => { + if (orderId_params !== undefined) { + orderId.value = orderId_params.toString(); + fetchAttachment(orderId.value); + fecthstatusOrder(orderId.value); + } + // window.addEventListener("resize", (e: any) => { // myEventHandler(e); // }); @@ -447,6 +470,38 @@ onMounted(async () => { }, 1000); }); +const fetchAttachment = async (orderId: string) => { + showLoader(); + await http + .get(config.API.attachmentOrder(orderId)) + .then((res) => { + let response = res.data.result; + console.log(response); + order.value = response.orderNo; + years.value = Number(response.orderYear); + if (response.date !== undefined) { + date.value = response.date; + } + }) + .catch((e) => { + messageError($q, e); + }) + .finally(() => { + hideLoader(); + }); +}; +const fecthstatusOrder = async (orderId: string) => { + await http + .get(config.API.orderReady(orderId)) + .then((res) => { + let status = res.data.result; + statusOrder.value = status.result; + }) + .catch((e) => { + console.log(e); + }); +}; + // const myEventHandler = (e: any) => { // console.log("e", e.target.innerWidth); // if (vuePDFRef !== null) { @@ -475,15 +530,6 @@ const props = defineProps({ const next = () => props.next(); const previous = () => props.previous(); -const splitterModel = ref(70); -const tab = ref("main"); -const fileOrder = ref(null); -const fileTailer = ref(null); - -const order = ref(""); -const years = ref(new Date().getFullYear()); -const date = ref(new Date()); - const onchangePage = (val: any) => { // console.log(val); if (vuePDFRef !== null) { @@ -492,14 +538,57 @@ const onchangePage = (val: any) => { }; const save = () => { + // putOrderData(); if (myForm.value !== null) { myForm.value!.validate().then((success: Boolean) => { if (success) { // yay, models are correct + $q.dialog({ + title: "ยืนยันการบันทึกข้อมูล", + message: "ต้องการบันทึกข้อมูลนี้ใช่หรือไม่?", + cancel: { + flat: true, + color: "negative", + }, + persistent: true, + }) + .onOk(async () => { + await putOrderData(); + await postfileOrder(); + await postfileTailer(); + }) + .onCancel(() => {}) + .onDismiss(() => {}); } }); } }; +const putOrderData = async () => { + const orderData = { + orderNo: order.value, + orderYear: years.value.toString(), + signDate: date.value, + }; + await http + .put(config.API.attachmentOrder(orderId.value), orderData) + .then((res) => { + console.log(res); + }) + .catch((e) => { + console.log(e); + }); +}; + +const postfileOrder = async () => { + const formData = new FormData(); + formData.append("File", fileOrder.value); + await http.post(config.API.attachmentOrderId(orderId.value), formData); +}; +const postfileTailer = async () => { + const formData = new FormData(); + formData.append("File", fileTailer.value); + await http.post(config.API.attachmentOrderId(orderId.value), formData); +}; const validateForm = () => { return ( @@ -508,14 +597,12 @@ const validateForm = () => { order.value.trim() !== "" ); }; - const getClass = (val: boolean) => { return { "card-header-active q-px-lg q-py-md cursor-pointer": val, "card-header q-px-lg q-py-md cursor-pointer": !val, }; }; - const setTab = (val: string) => { tab.value = val; page.value = 1; diff --git a/src/modules/05_placement/components/Receive/receiveMain.vue b/src/modules/05_placement/components/Receive/receiveMain.vue index 675cd159f..8a16fda59 100644 --- a/src/modules/05_placement/components/Receive/receiveMain.vue +++ b/src/modules/05_placement/components/Receive/receiveMain.vue @@ -1,5 +1,5 @@