From 4b74271f0ec77ed70061246e90117c79ec6a6b11 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Wed, 8 Jan 2025 10:24:40 +0700 Subject: [PATCH] fix interface --- .../03_recruiting/interface/response/Main.ts | 44 +++++- .../views/02_qualify/PeriodAdd.vue | 127 ++++++------------ 2 files changed, 82 insertions(+), 89 deletions(-) diff --git a/src/modules/03_recruiting/interface/response/Main.ts b/src/modules/03_recruiting/interface/response/Main.ts index 6771a73d2..0e817fbe8 100644 --- a/src/modules/03_recruiting/interface/response/Main.ts +++ b/src/modules/03_recruiting/interface/response/Main.ts @@ -14,4 +14,46 @@ interface ResponseObject { government: String; } -export type { ResponseObject }; +interface ResponesePosType { + createdAt: string; + id: string; + lastUpdateFullName: string; + lastUpdatedAt: string; + posTypeName: string; + posTypeRank: number; + posLevels: DataPosLevel[]; +} + +interface DataPosLevel { + createdAt: string; + id: string; + lastUpdateFullName: string; + lastUpdatedAt: string; + posLevelAuthority: string; + posLevelName: string; + posLevelRank: number; +} + +interface ResponesePosition { + createdAt: string; + id: string; + isSpecial: boolean; + lastUpdateFullName: string; + lastUpdatedAt: string; + posLevelId: string; + posLevelName: string; + posTypeId: string; + posTypeName: string; + positionArea: string; + positionExecutiveField: null; + positionField: string; + positionIsSelected: boolean; + positionName: string; +} + +export type { + ResponseObject, + ResponesePosType, + DataPosLevel, + ResponesePosition, +}; diff --git a/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue b/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue index 81466990d..75db8aa35 100644 --- a/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue +++ b/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue @@ -21,6 +21,11 @@ import type { DataOption2, UploadType, } from "@/modules/02_organization/interface/index/Main"; +import type { + ResponesePosType, + DataPosLevel, + ResponesePosition, +} from "@/modules/03_recruiting/interface/response/Main"; import ProfileTable from "@/modules/03_recruiting/components/Table1.vue"; @@ -60,10 +65,6 @@ const dateAnnounce = ref(null); //วันประกาศผล const dateExam = ref(null); //วันที่สอบ const myFormPayment = ref(); const myFormPosition = ref(); -const positionPathOptions = ref([]); -const positionPathFilters = ref([]); -const positionLevelOptions = ref([]); -const positionLevelFilters = ref([]); const organizationShortName = ref(); const organizationName = ref(); const examTypeOptions = [ @@ -295,65 +296,6 @@ async function fetchData() { }); } -/** - * get รายการ ตำแหน่งในสายงาน - */ -async function fetchPositionPath() { - showLoader(); - await http - .get(config.API.positionPath) - .then((res) => { - const data = res.data.result; - let option: DataOption2[] = []; - data.map((r: DataOption2) => { - option.push({ - id: r.id.toString(), - name: r.name.toString(), - }); - }); - positionPathOptions.value = option; - positionPathFilters.value = option; - }) - .catch((e) => { - messageError($q, e); - }) - .finally(() => { - hideLoader(); - }); -} - -/** - * get รายการ ตำแหน่งระดับ - */ -async function fetchPositionLevel() { - showLoader(); - await http - .get(config.API.positionLevel) - .then((res) => { - const data = res.data.result; - let option: DataOption2[] = []; - data.map((r: DataOption2) => { - option.push({ - id: r.id.toString(), - name: r.name.toString(), - level: r.level, - }); - }); - positionLevelOptions.value = option.filter( - (v: DataOption2) => v.level === 0 - ); - positionLevelFilters.value = option.filter( - (v: DataOption2) => v.level === 0 - ); - }) - .catch((e) => { - messageError($q, e); - }) - .finally(() => { - hideLoader(); - }); -} - /** * ฟังชั่น filter * @param val input @@ -720,28 +662,32 @@ function clearDateAnnounce() { dateAnnounce.value = null; } -const mainDataPosLevel = ref([]); -const optionPosLevel1 = ref([]); -const filterOptionPosLevel1 = ref([]); - -const optionPosLevel2 = ref([]); -const filterOptionPosLevel2 = ref([]); +const mainDataPosLevel = ref([]); //ข้อมูลรายการประเภทตำแหน่ง +const optionPosLevel1 = ref([]); // ตัวเลือกระดับประเภททั่วไป +const filterOptionPosLevel1 = ref([]); //ข้อมูลตัวเลือกระดับประเภททั่วไป +const optionPosLevel2 = ref([]); //ตัวเลือกระดับประเภทวิชาการ +const filterOptionPosLevel2 = ref([]); //ข้อมูลตัวเลือกระดับประเภทวิชาการ +const optionPosType1 = ref([]); //ตัวเลือกตำแหน่งของระดับปฏิบัติงาน +const filterOptionPosType1 = ref([]); //ข้อมูลตัวเลือกตำแหน่งของระดับปฏิบัติงาน +const optionPosType2 = ref([]); //ตัวเลือกตำแหน่งของระดับปฏิบัติการ +const filterOptionPosType2 = ref([]); //ข้อมูลตัวเลือกตำแหน่งของระดับปฏิบัติการ +/** ฟังก์ชันเรียกข้อมูล ประเภทตำแหน่ง*/ async function fetchPositionType() { http .get(config.API.orgPosType) .then((res) => { mainDataPosLevel.value = res.data.result.filter( - (e: any) => e.posTypeRank <= 2 + (e: ResponesePosType) => e.posTypeRank <= 2 ); const getDataByRank = (rank: number) => { const data = - res.data.result.find((e: any) => e.posTypeRank === rank)?.posLevels || - []; + res.data.result.find((e: ResponesePosType) => e.posTypeRank === rank) + ?.posLevels || []; return data - .filter((e: any) => e.posLevelRank === 1) - .map((e: any) => ({ + .filter((e: DataPosLevel) => e.posLevelRank === 1) + .map((e: DataPosLevel) => ({ id: e.id.toString(), name: e.posLevelName.toString(), level: e.posLevelRank, @@ -761,25 +707,27 @@ async function fetchPositionType() { }); } -const optionPosType1 = ref([]); -const filterOptionPosType1 = ref([]); - -const optionPosType2 = ref([]); -const filterOptionPosType2 = ref([]); - +/** + * ฟังก์ชันเรียกข้อมูลตำแหน่ง + * @param level ระดับข้องประเภทตำแหน่ง + */ function fetchPosition(level: number) { http .post(config.API.orgPosTypeSearch, { - posType: mainDataPosLevel.value.find((e: any) => e.posTypeRank === level) - .id, + posType: + mainDataPosLevel.value?.find( + (e: ResponesePosType) => e.posTypeRank === level + )?.id ?? null, posLevel: level === 1 ? optionPosLevel1.value[0].id : optionPosLevel2.value[0].id, }) .then((res) => { - const option: DataOption2[] = res.data.result.map((r: any) => ({ - id: r.id.toString(), - name: r.positionName.toString(), - })); + const option: DataOption2[] = res.data.result.map( + (r: ResponesePosition) => ({ + id: r.id.toString(), + name: r.positionName.toString(), + }) + ); if (level === 1) { optionPosType1.value = option; @@ -794,6 +742,11 @@ function fetchPosition(level: number) { }); } +/** + * ฟังก์ชันเปลี่ยนประเภทตำแหน่ง + * @param val ค่าประเภทตำแหน่ง 0 = ประเภททั่วไป ,1 = ประเภทวิชาการ + * @param index ตำแหน่งของข้อมูล + */ function onUpdateHighDegree(val: string, index: string) { rowsPosition.value[index].position = null; rowsPosition.value[index].level = @@ -817,8 +770,6 @@ onMounted(async () => { edit.value = false; } await fetchPositionType(); - await fetchPositionPath(); - await fetchPositionLevel(); });