diff --git a/src/modules/05_placement/components/Other/Detail.vue b/src/modules/05_placement/components/Other/Detail.vue index a03165d3c..d8f09f9b1 100644 --- a/src/modules/05_placement/components/Other/Detail.vue +++ b/src/modules/05_placement/components/Other/Detail.vue @@ -5,17 +5,30 @@ import { useRoute, useRouter } from "vue-router"; import { useCounterMixin } from "@/stores/mixin"; import type { ResponseTitle } from "@/modules/05_placement/interface/response/Receive"; +import type { + TypeFile, + ResponseDataDetail, +} from "@/modules/05_placement/interface/response/Transfer"; +import type { QTableProps, QForm } from "quasar"; import http from "@/plugins/http"; import config from "@/app.config"; +import keycloak from "@/plugins/keycloak"; const $q = useQuasar(); const route = useRoute(); const router = useRouter(); const mixin = useCounterMixin(); - const paramsId = route.params.id; -const { messageError, showLoader, hideLoader } = mixin; +const { + messageError, + showLoader, + hideLoader, + date2Thai, + dialogConfirm, + success, +} = mixin; +const roleAdmin = ref(false); const title = ref({ fullname: "", @@ -23,8 +36,37 @@ const title = ref({ positionLevelOld: "", positionTypeOld: "", }); +const responseData = ref({ + avataPath: "", + createdAt: new Date(), + date: new Date(), + id: "", + organization: "", + organizationPositionOld: "", + positionLevelOld: "", + positionNumberOld: "", + positionTypeOld: "", + reason: "", + salary: 0, + status: "", + fullname: "", +}); +const edit = ref(false); +const organizationPositionOld = ref(""); +const positionTypeOld = ref(""); +const positionLevelOld = ref(""); +const posNo = ref(""); +const salary = ref(0); +const organization = ref(""); +const date = ref(null); +const reason = ref(""); +const Otherdata = ref([]); onMounted(async () => { + if (keycloak.tokenParsed != null) { + roleAdmin.value = await keycloak.tokenParsed.role.includes("placement1"); + console.log("roleAdmin===>", roleAdmin.value); + } await fecthOther(); }); @@ -32,22 +74,92 @@ const fecthOther = async () => { showLoader(); await http .get(config.API.otherByid(paramsId.toString())) + // .get(config.API.transferId(paramsId.toString())) .then((res: any) => { const data = res.data.result; + Otherdata.value = res.data.result; console.log(data); title.value.fullname = `${data.firstName ?? "-"} ${data.lastName ?? "-"}`; title.value.organizationPositionOld = data.organizationPositionOld ?? "-"; title.value.positionLevelOld = data.positionLevelOld ?? "-"; title.value.positionTypeOld = data.positionTypeOld ?? "-"; + + responseData.value.createdAt = data.createdAt; + responseData.value.date = + data.date !== null ? new Date(data.date) : new Date(); + responseData.value.id = data.id ?? ""; + responseData.value.organization = data.organization ?? ""; + responseData.value.organizationPositionOld = + data.organizationPositionOld ?? ""; + responseData.value.positionLevelOld = data.positionLevelOld ?? ""; + responseData.value.positionNumberOld = data.positionNumberOld ?? ""; + responseData.value.positionTypeOld = data.positionTypeOld ?? ""; + responseData.value.reason = data.reason ?? ""; + responseData.value.salary = data.salary !== null ? data.salary : 0; + responseData.value.status = data.status ?? ""; + responseData.value.avataPath = data.avataPath ?? ""; + responseData.value.fullname = `${data.firstName ?? "-"} ${ + data.lastName ?? "-" + }`; + + organizationPositionOld.value = data.organizationPositionOld ?? ""; + positionTypeOld.value = data.positionTypeOld ?? ""; + positionLevelOld.value = data.positionLevelOld ?? ""; + posNo.value = data.positionNumberOld ?? ""; + salary.value = data.amountOld ?? ""; + organization.value = data.organization ?? ""; + date.value = + data.positionDate !== null ? new Date(data.positionDate) : null; + reason.value = data.reason ?? ""; }) .catch((e) => { messageError($q, e); }) .finally(() => { hideLoader(); + edit.value = false; }); }; +const clickEdit = () => { + dialogConfirm($q, () => saveOther()); +}; +const saveOther = async () => { + // showLoader(); + let data = { + citizenId: Otherdata.value.citizenId, + prefixId: Otherdata.value.prefixId, + firstname: Otherdata.value.firstname, + lastname: Otherdata.value.lastname, + reason: reason.value, + organizationPositionOld: organizationPositionOld.value, + positionDate: date.value, + positionTypeOld: positionTypeOld.value, + positionLevelOld: positionLevelOld.value, + positionNumberOld: posNo.value, + amountOld: Number(salary.value), + }; + console.log(data); + + await http + .put(config.API.otherByid(paramsId.toString()), data) + .then(() => { + success($q, "แก้ไข้ข้อมูลสำเร็จ"); + }) + .catch((e) => { + messageError($q, e); + console.log(e); + }) + .finally(async () => { + await fecthOther(); + }); +}; +const getClass = (val: boolean) => { + return { + "full-width inputgreen cursor-pointer": val, + "full-width cursor-pointer": !val, + }; +};