เพิ่ม interface ให้ any
This commit is contained in:
parent
7d3c48142c
commit
77ccaec4e3
18 changed files with 259 additions and 73 deletions
|
|
@ -93,6 +93,15 @@ interface DataOption {
|
||||||
zipCode?: string;
|
zipCode?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface DataOptioninfo {
|
||||||
|
id: string;
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
interface docList {
|
||||||
|
pathName: string;
|
||||||
|
fileName: string;
|
||||||
|
}
|
||||||
|
|
||||||
interface zipCodeOption {
|
interface zipCodeOption {
|
||||||
id: string;
|
id: string;
|
||||||
name: string;
|
name: string;
|
||||||
|
|
@ -207,4 +216,6 @@ export type {
|
||||||
Goverment,
|
Goverment,
|
||||||
DataOption,
|
DataOption,
|
||||||
zipCodeOption,
|
zipCodeOption,
|
||||||
|
DataOptioninfo,
|
||||||
|
docList
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import { useRoute, useRouter } from "vue-router";
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
import CurrencyInput from "@/components/CurruncyInput.vue";
|
import CurrencyInput from "@/components/CurruncyInput.vue";
|
||||||
import type { ResponseTitle } from "@/modules/05_placement/interface/response/Receive";
|
import type { ResponseTitle } from "@/modules/05_placement/interface/response/Receive";
|
||||||
|
import type { appointmentData,ResponseData } from "@/modules/05_placement/interface/response/AppointMent";
|
||||||
|
|
||||||
import http from "@/plugins/http";
|
import http from "@/plugins/http";
|
||||||
import config from "@/app.config";
|
import config from "@/app.config";
|
||||||
|
|
@ -14,7 +15,12 @@ const route = useRoute();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const mixin = useCounterMixin();
|
const mixin = useCounterMixin();
|
||||||
|
|
||||||
const appointment = ref<any>([]);
|
const appointment = ref<appointmentData>({
|
||||||
|
citizenId:"",
|
||||||
|
prefixId:"",
|
||||||
|
firstname:"",
|
||||||
|
lastname:""
|
||||||
|
});
|
||||||
const myform = ref<any>();
|
const myform = ref<any>();
|
||||||
const edit = ref<boolean>(false);
|
const edit = ref<boolean>(false);
|
||||||
const profileId = ref<string>("");
|
const profileId = ref<string>("");
|
||||||
|
|
@ -52,7 +58,7 @@ const fecthappointmentByid = async () => {
|
||||||
showLoader();
|
showLoader();
|
||||||
await http
|
await http
|
||||||
.get(config.API.appointmentByid(paramsId.toString()))
|
.get(config.API.appointmentByid(paramsId.toString()))
|
||||||
.then((res: any) => {
|
.then((res: ResponseData) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
appointment.value = data;
|
appointment.value = data;
|
||||||
profileId.value = data.profileId;
|
profileId.value = data.profileId;
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import { ref, computed,watchEffect } from "vue";
|
||||||
import { useQuasar } from "quasar";
|
import { useQuasar } from "quasar";
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
import type { QTableProps } from "quasar";
|
import type { QTableProps } from "quasar";
|
||||||
|
import type { UserData } from "@/modules/05_placement/interface/response/AppointMent";
|
||||||
|
|
||||||
|
|
||||||
import http from "@/plugins/http";
|
import http from "@/plugins/http";
|
||||||
|
|
@ -12,7 +13,7 @@ const { showLoader, success, messageError, dialogConfirm,hideLoader } = mixin;
|
||||||
|
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
import DialogHeader from "@/modules/05_placement/components/AppointMent/DialogHeader.vue";
|
import DialogHeader from "@/modules/05_placement/components/AppointMent/DialogHeader.vue";
|
||||||
const selected = ref([]);
|
const selected = ref<UserData[]>([]);
|
||||||
const checkSelected = computed(() => {
|
const checkSelected = computed(() => {
|
||||||
if (selected.value.length === 0 || props.type === "") {
|
if (selected.value.length === 0 || props.type === "") {
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -98,7 +99,7 @@ const updateInput = (value: any) => {
|
||||||
emit("update:filterKeyword2", value);
|
emit("update:filterKeyword2", value);
|
||||||
};
|
};
|
||||||
|
|
||||||
const updateInputType = (value: any) => {
|
const updateInputType = (value: string) => {
|
||||||
emit("update:type", value);
|
emit("update:type", value);
|
||||||
};
|
};
|
||||||
//รีเซ็ตค่าในช่องค้นหา
|
//รีเซ็ตค่าในช่องค้นหา
|
||||||
|
|
@ -115,7 +116,7 @@ const clickAddlist = () => {
|
||||||
const createdAppoint = async () => {
|
const createdAppoint = async () => {
|
||||||
let pId: string[] = [];
|
let pId: string[] = [];
|
||||||
let Type = props.type as string
|
let Type = props.type as string
|
||||||
selected.value.forEach((e: any) => {
|
selected.value.forEach((e: UserData) => {
|
||||||
pId.push(e.personalId);
|
pId.push(e.personalId);
|
||||||
});
|
});
|
||||||
let data = {
|
let data = {
|
||||||
|
|
@ -124,10 +125,10 @@ const createdAppoint = async () => {
|
||||||
showLoader();
|
showLoader();
|
||||||
await http
|
await http
|
||||||
.put(config.API.apppointmentReport(Type), data)
|
.put(config.API.apppointmentReport(Type), data)
|
||||||
.then((res: any) => {
|
.then((res) => {
|
||||||
success($q, "บันทึกสำเร็จ");
|
success($q, "บันทึกสำเร็จ");
|
||||||
})
|
})
|
||||||
.catch((e: any) => {
|
.catch((e) => {
|
||||||
messageError($q, e);
|
messageError($q, e);
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
|
@ -145,7 +146,7 @@ watchEffect(() => {
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<q-dialog v-model="props.Modal">
|
<q-dialog v-model="props.Modal">
|
||||||
<q-card style="width: 1200px; max-width: 80vw">
|
<q-card style="width: 1200px; max-width: 80vw">
|
||||||
<DialogHeader title="ส่งไปออกคำสั่ง" :close="clickClose" />
|
<DialogHeader title="ส่งไปออกคำสั่ง" :close="clickClose" />
|
||||||
<q-separator />
|
<q-separator />
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ const router = useRouter();
|
||||||
const rows = ref<listAppointType[]>([]);
|
const rows = ref<listAppointType[]>([]);
|
||||||
const rows2 = ref<listAppointType[]>([]);
|
const rows2 = ref<listAppointType[]>([]);
|
||||||
const modalTree = ref<boolean>(false);
|
const modalTree = ref<boolean>(false);
|
||||||
const personal = ref<any[]>([]);
|
const personal = ref<resData[]>([]);
|
||||||
const personalId = ref<string>("");
|
const personalId = ref<string>("");
|
||||||
const filterKeyword = ref<string>("");
|
const filterKeyword = ref<string>("");
|
||||||
const filterKeyword2 = ref<string>("");
|
const filterKeyword2 = ref<string>("");
|
||||||
|
|
@ -235,9 +235,9 @@ const closeModalTree = async () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
// ไปหน้ารายละเอียด
|
// ไปหน้ารายละเอียด
|
||||||
const nextPage = (row: any) => {
|
const nextPage = (id: string) => {
|
||||||
router.push({
|
router.push({
|
||||||
path: `appoint-promote/detail/${row.personalId}`,
|
path: `appoint-promote/detail/${id}`,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -286,16 +286,16 @@ onMounted(() => {
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:body="props">
|
<template v-slot:body="props">
|
||||||
<q-tr :props="props" class="cursor-pointer">
|
<q-tr :props="props" class="cursor-pointer">
|
||||||
<q-td key="no" :props="props" @click="nextPage(props.row)">
|
<q-td key="no" :props="props" @click="nextPage(props.row.personalId)">
|
||||||
{{ props.rowIndex + 1 }}
|
{{ props.rowIndex + 1 }}
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td key="citizenId" :props="props" @click="nextPage(props.row)">
|
<q-td key="citizenId" :props="props" @click="nextPage(props.row.personalId)">
|
||||||
{{ props.row.citizenId }}
|
{{ props.row.citizenId }}
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td key="fullname" :props="props" @click="nextPage(props.row)">
|
<q-td key="fullname" :props="props" @click="nextPage(props.row.personalId)">
|
||||||
{{ props.row.fullname }}
|
{{ props.row.fullname }}
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td key="organizationName" :props="props" @click="nextPage(props.row)">
|
<q-td key="organizationName" :props="props" @click="nextPage(props.row.personalId)">
|
||||||
<div v-if="props.row.orgName !== null ||
|
<div v-if="props.row.orgName !== null ||
|
||||||
props.row.positionPath !== null
|
props.row.positionPath !== null
|
||||||
">
|
">
|
||||||
|
|
@ -316,13 +316,13 @@ onMounted(() => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td key="birthday" :props="props" @click="nextPage(props.row)">
|
<q-td key="birthday" :props="props" @click="nextPage(props.row.personalId)">
|
||||||
{{ props.row.birthday }}
|
{{ props.row.birthday }}
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td key="createdAt" :props="props" @click="nextPage(props.row)">
|
<q-td key="createdAt" :props="props" @click="nextPage(props.row.personalId)">
|
||||||
{{ props.row.createdAt }}
|
{{ props.row.createdAt }}
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td key="status" :props="props" @click="nextPage(props.row)">
|
<q-td key="status" :props="props" @click="nextPage(props.row.personalId)">
|
||||||
{{ props.row.status }}
|
{{ props.row.status }}
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td auto-width>
|
<q-td auto-width>
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import { useCounterMixin } from "@/stores/mixin";
|
||||||
|
|
||||||
import type { ResponseTitle } from "@/modules/05_placement/interface/response/Receive";
|
import type { ResponseTitle } from "@/modules/05_placement/interface/response/Receive";
|
||||||
import type { ResponseDataDetail } from "@/modules/05_placement/interface/response/Transfer";
|
import type { ResponseDataDetail } from "@/modules/05_placement/interface/response/Transfer";
|
||||||
|
import type { OtherdataInterface,resApiData } from "@/modules/05_placement/interface/response/OhterMain";
|
||||||
import type { QForm } from "quasar";
|
import type { QForm } from "quasar";
|
||||||
|
|
||||||
import http from "@/plugins/http";
|
import http from "@/plugins/http";
|
||||||
|
|
@ -58,10 +59,14 @@ const myform = ref<any>();
|
||||||
const positionLevelOld = ref<string>("");
|
const positionLevelOld = ref<string>("");
|
||||||
const posNo = ref<string>("");
|
const posNo = ref<string>("");
|
||||||
const salary = ref<number>(0);
|
const salary = ref<number>(0);
|
||||||
const organization = ref<string>("");
|
|
||||||
const date = ref<Date | null>(null);
|
const date = ref<Date | null>(null);
|
||||||
const reason = ref<string>("");
|
const reason = ref<string>("");
|
||||||
const Otherdata = ref<any>([]);
|
const Otherdata = ref<OtherdataInterface>({
|
||||||
|
citizenId: "",
|
||||||
|
prefixId: "",
|
||||||
|
firstname: "",
|
||||||
|
lastname: "",
|
||||||
|
});
|
||||||
const avatar = ref<string>("");
|
const avatar = ref<string>("");
|
||||||
|
|
||||||
//-----(fetch data by id)-----//
|
//-----(fetch data by id)-----//
|
||||||
|
|
@ -69,9 +74,9 @@ const fecthOther = async () => {
|
||||||
showLoader();
|
showLoader();
|
||||||
await http
|
await http
|
||||||
.get(config.API.otherByid(paramsId.toString()))
|
.get(config.API.otherByid(paramsId.toString()))
|
||||||
.then((res: any) => {
|
.then((res: resApiData) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
Otherdata.value = res.data.result;
|
Otherdata.value = data
|
||||||
avatar.value = data.avatar ?? "";
|
avatar.value = data.avatar ?? "";
|
||||||
title.value.fullname = `${data.firstname ?? "-"} ${data.lastname ?? "-"}`;
|
title.value.fullname = `${data.firstname ?? "-"} ${data.lastname ?? "-"}`;
|
||||||
title.value.organizationPositionOld = data.organizationPositionOld ?? "-";
|
title.value.organizationPositionOld = data.organizationPositionOld ?? "-";
|
||||||
|
|
@ -79,24 +84,19 @@ const fecthOther = async () => {
|
||||||
title.value.positionTypeOld = data.positionTypeOld ?? "-";
|
title.value.positionTypeOld = data.positionTypeOld ?? "-";
|
||||||
responseData.value.profileId = data.profileId;
|
responseData.value.profileId = data.profileId;
|
||||||
responseData.value.createdAt = data.createdAt;
|
responseData.value.createdAt = data.createdAt;
|
||||||
responseData.value.date = data.date !== null ? new Date(data.date) : new Date();
|
|
||||||
responseData.value.id = data.id ?? "";
|
responseData.value.id = data.id ?? "";
|
||||||
responseData.value.organization = data.organization ?? "";
|
|
||||||
responseData.value.organizationPositionOld = data.organizationPositionOld ?? "";
|
responseData.value.organizationPositionOld = data.organizationPositionOld ?? "";
|
||||||
responseData.value.positionLevelOld = data.positionLevelOld ?? "";
|
responseData.value.positionLevelOld = data.positionLevelOld ?? "";
|
||||||
responseData.value.positionNumberOld = data.positionNumberOld ?? "";
|
responseData.value.positionNumberOld = data.positionNumberOld ?? "";
|
||||||
responseData.value.positionTypeOld = data.positionTypeOld ?? "";
|
responseData.value.positionTypeOld = data.positionTypeOld ?? "";
|
||||||
responseData.value.reason = data.reason ?? "";
|
responseData.value.reason = data.reason ?? "";
|
||||||
responseData.value.salary = data.salary !== null ? data.salary : 0;
|
|
||||||
responseData.value.status = data.status ?? "";
|
responseData.value.status = data.status ?? "";
|
||||||
responseData.value.avataPath = data.avataPath ?? "";
|
|
||||||
responseData.value.fullname = `${data.prefix ?? "-"}${data.firstname ?? "-"} ${data.lastname ?? "-"}`;
|
responseData.value.fullname = `${data.prefix ?? "-"}${data.firstname ?? "-"} ${data.lastname ?? "-"}`;
|
||||||
organizationPositionOld.value = data.organizationPositionOld ?? "";
|
organizationPositionOld.value = data.organizationPositionOld ?? "";
|
||||||
positionTypeOld.value = data.positionTypeOld ?? "";
|
positionTypeOld.value = data.positionTypeOld ?? "";
|
||||||
positionLevelOld.value = data.positionLevelOld ?? "";
|
positionLevelOld.value = data.positionLevelOld ?? "";
|
||||||
posNo.value = data.positionNumberOld ?? "";
|
posNo.value = data.positionNumberOld ?? "";
|
||||||
salary.value = data.amountOld ?? "";
|
salary.value = data.amountOld ?? "";
|
||||||
organization.value = data.organization ?? "";
|
|
||||||
date.value = data.positionDate !== null ? new Date(data.positionDate) : null;
|
date.value = data.positionDate !== null ? new Date(data.positionDate) : null;
|
||||||
reason.value = data.reason ?? "";
|
reason.value = data.reason ?? "";
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import { useProfileDataStore } from "@/modules/08_registryEmployee/store";
|
||||||
import type {
|
import type {
|
||||||
Information,
|
Information,
|
||||||
DataOption,
|
DataOption,
|
||||||
|
DataOptioninfo
|
||||||
} from "@/modules/04_registry/components/profileType";
|
} from "@/modules/04_registry/components/profileType";
|
||||||
import type { InformationOps } from "@/modules/04_registry/interface/index/Main";
|
import type { InformationOps } from "@/modules/04_registry/interface/index/Main";
|
||||||
import HeaderTop from "@/modules/08_registryEmployee/components/AddEmployee/HeaderTop.vue";
|
import HeaderTop from "@/modules/08_registryEmployee/components/AddEmployee/HeaderTop.vue";
|
||||||
|
|
@ -91,7 +92,7 @@ const fetchPerson = async () => {
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
let optionbloodGroups: DataOption[] = [];
|
let optionbloodGroups: DataOption[] = [];
|
||||||
data.bloodGroups.map((r: any) => {
|
data.bloodGroups.map((r: DataOptioninfo) => {
|
||||||
optionbloodGroups.push({
|
optionbloodGroups.push({
|
||||||
id: r.id.toString(),
|
id: r.id.toString(),
|
||||||
name: r.name.toString(),
|
name: r.name.toString(),
|
||||||
|
|
@ -101,7 +102,7 @@ const fetchPerson = async () => {
|
||||||
OpsFilter.value.bloodOps = optionbloodGroups;
|
OpsFilter.value.bloodOps = optionbloodGroups;
|
||||||
|
|
||||||
let optiongenders: DataOption[] = [];
|
let optiongenders: DataOption[] = [];
|
||||||
data.genders.map((r: any) => {
|
data.genders.map((r: DataOptioninfo) => {
|
||||||
optiongenders.push({
|
optiongenders.push({
|
||||||
id: r.id.toString(),
|
id: r.id.toString(),
|
||||||
name: r.name.toString(),
|
name: r.name.toString(),
|
||||||
|
|
@ -111,7 +112,7 @@ const fetchPerson = async () => {
|
||||||
OpsFilter.value.genderOps = optiongenders;
|
OpsFilter.value.genderOps = optiongenders;
|
||||||
|
|
||||||
let optionprefixs: DataOption[] = [];
|
let optionprefixs: DataOption[] = [];
|
||||||
data.prefixs.map((r: any) => {
|
data.prefixs.map((r: DataOptioninfo) => {
|
||||||
optionprefixs.push({
|
optionprefixs.push({
|
||||||
id: r.id.toString(),
|
id: r.id.toString(),
|
||||||
name: r.name.toString(),
|
name: r.name.toString(),
|
||||||
|
|
@ -121,7 +122,7 @@ const fetchPerson = async () => {
|
||||||
OpsFilter.value.prefixOps = optionprefixs;
|
OpsFilter.value.prefixOps = optionprefixs;
|
||||||
|
|
||||||
let optionrelationships: DataOption[] = [];
|
let optionrelationships: DataOption[] = [];
|
||||||
data.relationships.map((r: any) => {
|
data.relationships.map((r: DataOptioninfo) => {
|
||||||
optionrelationships.push({
|
optionrelationships.push({
|
||||||
id: r.id.toString(),
|
id: r.id.toString(),
|
||||||
name: r.name.toString(),
|
name: r.name.toString(),
|
||||||
|
|
@ -131,7 +132,7 @@ const fetchPerson = async () => {
|
||||||
OpsFilter.value.statusOps = optionrelationships;
|
OpsFilter.value.statusOps = optionrelationships;
|
||||||
|
|
||||||
let optionreligions: DataOption[] = [];
|
let optionreligions: DataOption[] = [];
|
||||||
data.religions.map((r: any) => {
|
data.religions.map((r: DataOptioninfo) => {
|
||||||
optionreligions.push({
|
optionreligions.push({
|
||||||
id: r.id.toString(),
|
id: r.id.toString(),
|
||||||
name: r.name.toString(),
|
name: r.name.toString(),
|
||||||
|
|
@ -476,7 +477,7 @@ const clickBack = () => {
|
||||||
<q-page-sticky position="top" expand class="bg-grey-2 text-white" style="z-index: 99; padding: 0% 1% 0% 1%">
|
<q-page-sticky position="top" expand class="bg-grey-2 text-white" style="z-index: 99; padding: 0% 1% 0% 1%">
|
||||||
<div class="row col-12 q-gutter-sm q-pb-sm text-dark no-wrap items-center">
|
<div class="row col-12 q-gutter-sm q-pb-sm text-dark no-wrap items-center">
|
||||||
<q-btn flat round class="bg-teal-1 full-height" color="primary" icon="mdi-chevron-left" dense
|
<q-btn flat round class="bg-teal-1 full-height" color="primary" icon="mdi-chevron-left" dense
|
||||||
@click="router.go(-1)">
|
@click="router.push(`/receive`)">
|
||||||
</q-btn>
|
</q-btn>
|
||||||
<q-avatar size="65px" rounded class="containerimage">
|
<q-avatar size="65px" rounded class="containerimage">
|
||||||
<img v-if="image == null" src="@/assets/avatar_user.jpg" class="bg-grey-3" style="object-fit: cover" />
|
<img v-if="image == null" src="@/assets/avatar_user.jpg" class="bg-grey-3" style="object-fit: cover" />
|
||||||
|
|
|
||||||
|
|
@ -131,7 +131,7 @@ const saveOrder = () => {
|
||||||
};
|
};
|
||||||
//ส่งไปออกคำสั่ง
|
//ส่งไปออกคำสั่ง
|
||||||
const Ordersave = async () => {
|
const Ordersave = async () => {
|
||||||
const id = selected.value.map((r: any) => r.personalId);
|
const id = selected.value.map((r: ResponseRow) => r.personalId);
|
||||||
const body = {
|
const body = {
|
||||||
id,
|
id,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@ import type { InformationOps } from "@/modules/04_registry/interface/index/Main"
|
||||||
import type {
|
import type {
|
||||||
Information,
|
Information,
|
||||||
DataOption,
|
DataOption,
|
||||||
|
DataOptioninfo,
|
||||||
|
docList
|
||||||
} from "@/modules/04_registry/components/profileType";
|
} from "@/modules/04_registry/components/profileType";
|
||||||
|
|
||||||
import { defaultInformation } from "@/modules/04_registry/components/profileType";
|
import { defaultInformation } from "@/modules/04_registry/components/profileType";
|
||||||
|
|
@ -49,7 +51,7 @@ const status = ref<string>("");
|
||||||
|
|
||||||
const myForm = ref<QForm | null>(null);
|
const myForm = ref<QForm | null>(null);
|
||||||
const edit = ref<boolean>(false);
|
const edit = ref<boolean>(false);
|
||||||
const rows = ref<any[]>([]);
|
const rows = ref<docList[]>([]);
|
||||||
const columns = ref<QTableProps["columns"]>([
|
const columns = ref<QTableProps["columns"]>([
|
||||||
{
|
{
|
||||||
name: "no",
|
name: "no",
|
||||||
|
|
@ -133,7 +135,7 @@ const fetchPerson = async () => {
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
let optionbloodGroups: DataOption[] = [];
|
let optionbloodGroups: DataOption[] = [];
|
||||||
data.bloodGroups.map((r: any) => {
|
data.bloodGroups.map((r: DataOptioninfo) => {
|
||||||
optionbloodGroups.push({
|
optionbloodGroups.push({
|
||||||
id: r.id.toString(),
|
id: r.id.toString(),
|
||||||
name: r.name.toString(),
|
name: r.name.toString(),
|
||||||
|
|
@ -143,7 +145,7 @@ const fetchPerson = async () => {
|
||||||
OpsFilter.value.bloodOps = optionbloodGroups;
|
OpsFilter.value.bloodOps = optionbloodGroups;
|
||||||
|
|
||||||
let optiongenders: DataOption[] = [];
|
let optiongenders: DataOption[] = [];
|
||||||
data.genders.map((r: any) => {
|
data.genders.map((r: DataOptioninfo) => {
|
||||||
optiongenders.push({
|
optiongenders.push({
|
||||||
id: r.id.toString(),
|
id: r.id.toString(),
|
||||||
name: r.name.toString(),
|
name: r.name.toString(),
|
||||||
|
|
@ -153,7 +155,7 @@ const fetchPerson = async () => {
|
||||||
OpsFilter.value.genderOps = optiongenders;
|
OpsFilter.value.genderOps = optiongenders;
|
||||||
|
|
||||||
let optionprefixs: DataOption[] = [];
|
let optionprefixs: DataOption[] = [];
|
||||||
data.prefixs.map((r: any) => {
|
data.prefixs.map((r: DataOptioninfo) => {
|
||||||
optionprefixs.push({
|
optionprefixs.push({
|
||||||
id: r.id.toString(),
|
id: r.id.toString(),
|
||||||
name: r.name.toString(),
|
name: r.name.toString(),
|
||||||
|
|
@ -163,7 +165,7 @@ const fetchPerson = async () => {
|
||||||
OpsFilter.value.prefixOps = optionprefixs;
|
OpsFilter.value.prefixOps = optionprefixs;
|
||||||
|
|
||||||
let optionrelationships: DataOption[] = [];
|
let optionrelationships: DataOption[] = [];
|
||||||
data.relationships.map((r: any) => {
|
data.relationships.map((r: DataOptioninfo) => {
|
||||||
optionrelationships.push({
|
optionrelationships.push({
|
||||||
id: r.id.toString(),
|
id: r.id.toString(),
|
||||||
name: r.name.toString(),
|
name: r.name.toString(),
|
||||||
|
|
@ -173,7 +175,7 @@ const fetchPerson = async () => {
|
||||||
OpsFilter.value.statusOps = optionrelationships;
|
OpsFilter.value.statusOps = optionrelationships;
|
||||||
|
|
||||||
let optionreligions: DataOption[] = [];
|
let optionreligions: DataOption[] = [];
|
||||||
data.religions.map((r: any) => {
|
data.religions.map((r: DataOptioninfo) => {
|
||||||
optionreligions.push({
|
optionreligions.push({
|
||||||
id: r.id.toString(),
|
id: r.id.toString(),
|
||||||
name: r.name.toString(),
|
name: r.name.toString(),
|
||||||
|
|
@ -192,9 +194,9 @@ const getData = async () => {
|
||||||
.get(config.API.receiveDataId(paramsId.toString()))
|
.get(config.API.receiveDataId(paramsId.toString()))
|
||||||
.then(async (res: any) => {
|
.then(async (res: any) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
let list: any[] = [];
|
let list: docList[] = [];
|
||||||
if (data.docs.length > 0) {
|
if (data.docs.length > 0) {
|
||||||
data.docs.map((doc: any) => {
|
data.docs.map((doc: docList) => {
|
||||||
list.push({
|
list.push({
|
||||||
pathName: doc.pathName ?? "",
|
pathName: doc.pathName ?? "",
|
||||||
fileName: doc.fileName ?? "",
|
fileName: doc.fileName ?? "",
|
||||||
|
|
@ -478,7 +480,7 @@ onMounted(async () => {
|
||||||
flat
|
flat
|
||||||
color="primary"
|
color="primary"
|
||||||
class="q-mr-sm"
|
class="q-mr-sm"
|
||||||
@click="router.go(-1)"
|
@click="router.push(`/receive`)"
|
||||||
/>
|
/>
|
||||||
รายละเอียดการรับโอนของ {{ title.fullname }}
|
รายละเอียดการรับโอนของ {{ title.fullname }}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ const modal = ref<boolean>(false);
|
||||||
const modalupload = ref<boolean>(false);
|
const modalupload = ref<boolean>(false);
|
||||||
const modalTree = ref<boolean>(false);
|
const modalTree = ref<boolean>(false);
|
||||||
const myForm = ref<any>();
|
const myForm = ref<any>();
|
||||||
const personal = ref<any[]>([]);
|
const personal = ref<ResponseData[]>([]);
|
||||||
const personalId = ref<string>("");
|
const personalId = ref<string>("");
|
||||||
const filterKeyword = ref<string>("");
|
const filterKeyword = ref<string>("");
|
||||||
const filterKeyword2 = ref<string>("");
|
const filterKeyword2 = ref<string>("");
|
||||||
|
|
@ -236,7 +236,7 @@ const clickCloseUpload = () => {
|
||||||
// ปิดโมเดลโครงสร้าง
|
// ปิดโมเดลโครงสร้าง
|
||||||
const openModalTree = (id: string) => {
|
const openModalTree = (id: string) => {
|
||||||
personalId.value = id;
|
personalId.value = id;
|
||||||
personal.value = listRecevice.value.filter((e: any) => e.id === id);
|
personal.value = listRecevice.value.filter((e: ResponseData) => e.id === id);
|
||||||
modalTree.value = true;
|
modalTree.value = true;
|
||||||
};
|
};
|
||||||
// เปิดโมเดลไฟล์
|
// เปิดโมเดลไฟล์
|
||||||
|
|
@ -272,9 +272,9 @@ const closeModalTree = async () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
// ไปหน้ารายละเอียด
|
// ไปหน้ารายละเอียด
|
||||||
const nextPage = (row: any) => {
|
const nextPage = (id: string) => {
|
||||||
router.push({
|
router.push({
|
||||||
path: `/receive/${row.personalId}`,
|
path: `/receive/${id}`,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -322,16 +322,16 @@ onMounted(() => {
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:body="props">
|
<template v-slot:body="props">
|
||||||
<q-tr :props="props" class="cursor-pointer">
|
<q-tr :props="props" class="cursor-pointer">
|
||||||
<q-td key="no" :props="props" @click="nextPage(props.row)">
|
<q-td key="no" :props="props" @click="nextPage(props.row.personalId)">
|
||||||
{{ props.rowIndex + 1 }}
|
{{ props.rowIndex + 1 }}
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td key="citizenId" :props="props" @click="nextPage(props.row)" >
|
<q-td key="citizenId" :props="props" @click="nextPage(props.row.personalId)" >
|
||||||
{{ props.row.citizenId }}
|
{{ props.row.citizenId }}
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td key="fullname" :props="props" @click="nextPage(props.row)" >
|
<q-td key="fullname" :props="props" @click="nextPage(props.row.personalId)" >
|
||||||
{{ props.row.fullname }}
|
{{ props.row.fullname }}
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td key="organizationName" :props="props" @click="nextPage(props.row)" >
|
<q-td key="organizationName" :props="props" @click="nextPage(props.row.personalId)" >
|
||||||
<div v-if=" props.row.orgName !== null || props.row.positionPath !== null " >
|
<div v-if=" props.row.orgName !== null || props.row.positionPath !== null " >
|
||||||
<div class="col-4">
|
<div class="col-4">
|
||||||
<div class="text-weight-medium">
|
<div class="text-weight-medium">
|
||||||
|
|
@ -350,13 +350,13 @@ onMounted(() => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td key="birthday" :props="props" @click="nextPage(props.row)" >
|
<q-td key="birthday" :props="props" @click="nextPage(props.row.personalId)" >
|
||||||
{{ props.row.birthday }}
|
{{ props.row.birthday }}
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td key="dateText" :props="props" @click="nextPage(props.row)" >
|
<q-td key="dateText" :props="props" @click="nextPage(props.row.personalId)" >
|
||||||
{{ props.row.dateText }}
|
{{ props.row.dateText }}
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td key="statusText" :props="props" @click="nextPage(props.row)" >
|
<q-td key="statusText" :props="props" @click="nextPage(props.row.personalId)" >
|
||||||
{{ props.row.statusText }}
|
{{ props.row.statusText }}
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td auto-width>
|
<q-td auto-width>
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import http from "@/plugins/http";
|
||||||
import config from "@/app.config";
|
import config from "@/app.config";
|
||||||
|
|
||||||
import type { QForm } from "quasar";
|
import type { QForm } from "quasar";
|
||||||
|
import type { ResponseData } from "@/modules/05_placement/interface/response/officer";
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
@ -47,14 +47,13 @@ const positionTypeOld = ref<string>("");
|
||||||
const positionLevelOld = ref<string>("");
|
const positionLevelOld = ref<string>("");
|
||||||
const positionNumberOld = ref<string>("");
|
const positionNumberOld = ref<string>("");
|
||||||
const organizationPositionOld = ref<string>("");
|
const organizationPositionOld = ref<string>("");
|
||||||
const isActive = ref<string>("");
|
|
||||||
const avatar = ref<string>("");
|
const avatar = ref<string>("");
|
||||||
|
|
||||||
const getData = async () => {
|
const getData = async () => {
|
||||||
showLoader();
|
showLoader();
|
||||||
await http
|
await http
|
||||||
.get(config.API.repatriationDetail(dataId))
|
.get(config.API.repatriationDetail(dataId))
|
||||||
.then((res: any) => {
|
.then((res: ResponseData) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
(fullname.value = `${data.prefix}${data.firstName} ${data.lastName}`),
|
(fullname.value = `${data.prefix}${data.firstName} ${data.lastName}`),
|
||||||
(id.value = data.id);
|
(id.value = data.id);
|
||||||
|
|
@ -76,7 +75,6 @@ const getData = async () => {
|
||||||
positionLevelOld.value = data.positionLevelOld;
|
positionLevelOld.value = data.positionLevelOld;
|
||||||
positionNumberOld.value = data.positionNumberOld;
|
positionNumberOld.value = data.positionNumberOld;
|
||||||
organizationPositionOld.value = data.organizationPositionOld;
|
organizationPositionOld.value = data.organizationPositionOld;
|
||||||
isActive.value = data.isActive;
|
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
messageError($q, e);
|
messageError($q, e);
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import type { QTableProps, QForm } from "quasar";
|
||||||
import type {
|
import type {
|
||||||
TypeFile,
|
TypeFile,
|
||||||
ResponseDataDetail,
|
ResponseDataDetail,
|
||||||
|
rowFile
|
||||||
} from "@/modules/05_placement/interface/response/Transfer";
|
} from "@/modules/05_placement/interface/response/Transfer";
|
||||||
|
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
|
|
@ -115,7 +116,7 @@ const columns = ref<QTableProps["columns"]>([
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const rowsFileDownload = ref<any[]>([
|
const rowsFileDownload = ref<rowFile[]>([
|
||||||
{
|
{
|
||||||
no: 1,
|
no: 1,
|
||||||
fileName:
|
fileName:
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import { useCounterMixin } from "@/stores/mixin";
|
||||||
import http from "@/plugins/http";
|
import http from "@/plugins/http";
|
||||||
import config from "@/app.config";
|
import config from "@/app.config";
|
||||||
import type { QForm } from "quasar";
|
import type { QForm } from "quasar";
|
||||||
|
import type { resHelpDetail } from "@/modules/05_placement/interface/response/officer";
|
||||||
|
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
|
@ -51,9 +52,8 @@ const getData = async () => {
|
||||||
showLoader();
|
showLoader();
|
||||||
await http
|
await http
|
||||||
.get(config.API.officerDetail(dataId))
|
.get(config.API.officerDetail(dataId))
|
||||||
.then((res: any) => {
|
.then((res: resHelpDetail) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
|
|
||||||
(fullname.value = `${data.prefix}${data.firstName} ${data.lastName}`),
|
(fullname.value = `${data.prefix}${data.firstName} ${data.lastName}`),
|
||||||
(id.value = data.id);
|
(id.value = data.id);
|
||||||
profileId.value = data.profileId;
|
profileId.value = data.profileId;
|
||||||
|
|
@ -70,12 +70,10 @@ const getData = async () => {
|
||||||
status.value = data.status;
|
status.value = data.status;
|
||||||
dateStart.value = data.dateStart;
|
dateStart.value = data.dateStart;
|
||||||
dateEnd.value = data.dateEnd;
|
dateEnd.value = data.dateEnd;
|
||||||
salary.value = data.salary;
|
|
||||||
positionTypeOld.value = data.positionTypeOld;
|
positionTypeOld.value = data.positionTypeOld;
|
||||||
positionLevelOld.value = data.positionLevelOld;
|
positionLevelOld.value = data.positionLevelOld;
|
||||||
positionNumberOld.value = data.positionNumberOld;
|
positionNumberOld.value = data.positionNumberOld;
|
||||||
organizationPositionOld.value = data.organizationPositionOld;
|
organizationPositionOld.value = data.organizationPositionOld;
|
||||||
isActive.value = data.isActive;
|
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import { useCounterMixin } from "@/stores/mixin";
|
||||||
import { useQuasar } from "quasar";
|
import { useQuasar } from "quasar";
|
||||||
import { useTransferDataStore } from "@/modules/05_placement/store"
|
import { useTransferDataStore } from "@/modules/05_placement/store"
|
||||||
import type { QTableProps } from "quasar";
|
import type { QTableProps } from "quasar";
|
||||||
import type { FormMainProbation, FormMainProbation2,mapData } from "@/modules/05_placement/interface/request/Main";
|
import type { FormMainProbation, FormMainProbation2,mapData,OpfillterType,CriteriaType } from "@/modules/05_placement/interface/request/Main";
|
||||||
|
|
||||||
import DialogHeader from "@/modules/04_registry/components/DialogHeader.vue";
|
import DialogHeader from "@/modules/04_registry/components/DialogHeader.vue";
|
||||||
import router from "@/router";
|
import router from "@/router";
|
||||||
|
|
@ -20,10 +20,10 @@ const attrs = ref<any>(useAttrs());
|
||||||
const paging = ref<boolean>(true);
|
const paging = ref<boolean>(true);
|
||||||
const fillter = ref<number>(0);
|
const fillter = ref<number>(0);
|
||||||
const paging2 = ref<boolean>(true);
|
const paging2 = ref<boolean>(true);
|
||||||
const Opfillter = ref<any>([{ id: 0, value: "ทั้งหมด" }]);
|
const Opfillter = ref<OpfillterType[]>([{ id: 0, value: "ทั้งหมด" }]);
|
||||||
const filterRef = ref<any>(null);
|
const filterRef = ref<any>(null);
|
||||||
const filterRef2 = ref<any>(null);
|
const filterRef2 = ref<any>(null);
|
||||||
const dataUpdate = ref<any>([]);
|
const dataUpdate = ref<FormMainProbation[]>([]);
|
||||||
const probationlist = ref<any>([]);
|
const probationlist = ref<any>([]);
|
||||||
const filterKeyword = ref<string>("");
|
const filterKeyword = ref<string>("");
|
||||||
const fillterStatus = ref<any>([]);
|
const fillterStatus = ref<any>([]);
|
||||||
|
|
@ -210,7 +210,7 @@ const ProbationMainFilter = () => {
|
||||||
const updateRows = (body: any) => {
|
const updateRows = (body: any) => {
|
||||||
if (body.value !== "ทั้งหมด") {
|
if (body.value !== "ทั้งหมด") {
|
||||||
const filteredRows = dataUpdate.value.filter(
|
const filteredRows = dataUpdate.value.filter(
|
||||||
(item: any) => item.probation_status === body.value
|
(item: FormMainProbation) => item.probation_status === body.value
|
||||||
);
|
);
|
||||||
rows.value = filteredRows;
|
rows.value = filteredRows;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -279,11 +279,11 @@ const fecthlistProbation = async (id: string, data: any) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const findlist = async (id: string) => {
|
const findlist = async (id: string) => {
|
||||||
let data = [
|
let data:CriteriaType[] = [
|
||||||
{ criteriaType: "is_retire", criteriaValue: "false" },
|
{ criteriaType: "is_retire", criteriaValue: "false" },
|
||||||
{ criteriaType: "is_probation", criteriaValue: "true" },
|
{ criteriaType: "is_probation", criteriaValue: "true" },
|
||||||
];
|
];
|
||||||
let data2 = [
|
let data2:CriteriaType[] = [
|
||||||
{ criteriaType: "is_retire", criteriaValue: "false" },
|
{ criteriaType: "is_retire", criteriaValue: "false" },
|
||||||
{ criteriaType: "is_probation", criteriaValue: "false" },
|
{ criteriaType: "is_probation", criteriaValue: "false" },
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -73,6 +73,14 @@ positionEmployeeLevel:string
|
||||||
oc:string
|
oc:string
|
||||||
probation:string
|
probation:string
|
||||||
}
|
}
|
||||||
|
interface OpfillterType {
|
||||||
|
id:number
|
||||||
|
value:string
|
||||||
|
}
|
||||||
|
interface CriteriaType {
|
||||||
|
criteriaType: string;
|
||||||
|
criteriaValue: string;
|
||||||
|
}
|
||||||
export type {
|
export type {
|
||||||
FormPlacementMainData,
|
FormPlacementMainData,
|
||||||
FormOrderPlacementMainData,
|
FormOrderPlacementMainData,
|
||||||
|
|
@ -81,4 +89,6 @@ export type {
|
||||||
FormProbationDetail,
|
FormProbationDetail,
|
||||||
FormProbationPersonal,
|
FormProbationPersonal,
|
||||||
mapData,
|
mapData,
|
||||||
|
OpfillterType,
|
||||||
|
CriteriaType
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -30,9 +30,55 @@ interface orgFilter{
|
||||||
orgName:string
|
orgName:string
|
||||||
status:string
|
status:string
|
||||||
}
|
}
|
||||||
|
interface appointmentData{
|
||||||
|
citizenId:string
|
||||||
|
prefixId?:string
|
||||||
|
firstname?:string
|
||||||
|
lastname?:string
|
||||||
|
}
|
||||||
|
|
||||||
|
interface UserData {
|
||||||
|
personalId: string;
|
||||||
|
citizenId: string;
|
||||||
|
fullname: string;
|
||||||
|
organizationName: string ;
|
||||||
|
orgName: string ;
|
||||||
|
organizationShortName: string ;
|
||||||
|
positionNumber: string ;
|
||||||
|
positionPath: string;
|
||||||
|
status: string;
|
||||||
|
createdAt: string;
|
||||||
|
birthday: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ResponseData {
|
||||||
|
data: {
|
||||||
|
result: {
|
||||||
|
citizenId:string
|
||||||
|
profileId: string;
|
||||||
|
prefix: string;
|
||||||
|
firstname: string;
|
||||||
|
lastname: string;
|
||||||
|
organizationPositionOld: string;
|
||||||
|
positionLevelOld: string;
|
||||||
|
positionTypeOld: string;
|
||||||
|
status: string;
|
||||||
|
educationOld: string;
|
||||||
|
positionNumberOld: string;
|
||||||
|
salary: number;
|
||||||
|
reason: string;
|
||||||
|
positionDate: Date;
|
||||||
|
avatar: string;
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
export type {
|
export type {
|
||||||
listAppointType,
|
listAppointType,
|
||||||
resData,
|
resData,
|
||||||
orgFilter
|
orgFilter,
|
||||||
|
appointmentData,
|
||||||
|
UserData,
|
||||||
|
ResponseData
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -45,8 +45,60 @@ interface listMainAPI {
|
||||||
createdAt:Date
|
createdAt:Date
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface OtherdataInterface {
|
||||||
|
citizenId: string;
|
||||||
|
prefixId: string;
|
||||||
|
firstname: string;
|
||||||
|
lastname: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface resApiData {
|
||||||
|
data:{
|
||||||
|
result:{
|
||||||
|
id: string
|
||||||
|
profileId: string
|
||||||
|
citizenId: string
|
||||||
|
prefix: string
|
||||||
|
prefixId: string
|
||||||
|
firstname: string
|
||||||
|
lastname: string
|
||||||
|
dateOfBirth: Date
|
||||||
|
gender: string
|
||||||
|
nationality: string
|
||||||
|
race: string
|
||||||
|
religion: string
|
||||||
|
bloodGroup: string
|
||||||
|
relationship: string
|
||||||
|
telephoneNumber: string
|
||||||
|
status: string
|
||||||
|
amount: number
|
||||||
|
recruitDate: Date
|
||||||
|
posNoId: string
|
||||||
|
positionId: string
|
||||||
|
positionPathSideId: string
|
||||||
|
positionTypeId: string
|
||||||
|
positionLineId: string
|
||||||
|
positionLevelId: string
|
||||||
|
organizationPositionId: string
|
||||||
|
createdAt: Date
|
||||||
|
reason: string
|
||||||
|
educationOld: string
|
||||||
|
amountOld: number
|
||||||
|
positionTypeOld: string
|
||||||
|
positionLevelOld: string
|
||||||
|
positionNumberOld: string
|
||||||
|
organizationPositionOld: string
|
||||||
|
positionDate: Date
|
||||||
|
avatar: string
|
||||||
|
commandType: string
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export type {
|
export type {
|
||||||
listMain,
|
listMain,
|
||||||
listMainAPI,
|
listMainAPI,
|
||||||
|
OtherdataInterface,
|
||||||
|
resApiData
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -43,5 +43,10 @@ interface ResponseDataDetail {
|
||||||
status: string;
|
status: string;
|
||||||
fullname: string;
|
fullname: string;
|
||||||
}
|
}
|
||||||
|
interface rowFile {
|
||||||
|
no: number
|
||||||
|
fileName: string
|
||||||
|
pathName: string
|
||||||
|
|
||||||
export type { ResponseData, ResponseDataDetail, TypeFile };
|
}
|
||||||
|
export type { ResponseData, ResponseDataDetail, TypeFile ,rowFile};
|
||||||
|
|
|
||||||
|
|
@ -20,5 +20,60 @@ interface officerType {
|
||||||
dateEnd: string;
|
dateEnd: string;
|
||||||
dateStart: string;
|
dateStart: string;
|
||||||
}
|
}
|
||||||
|
interface ResponseData {
|
||||||
export type { officerType };
|
data: {
|
||||||
|
result: {
|
||||||
|
prefix: string;
|
||||||
|
firstName: string;
|
||||||
|
lastName: string;
|
||||||
|
id: string;
|
||||||
|
profileId: string;
|
||||||
|
avatar?: string;
|
||||||
|
position: string;
|
||||||
|
posNo: string;
|
||||||
|
positionLevel: string;
|
||||||
|
createdAt: string;
|
||||||
|
organization: string;
|
||||||
|
reason: string;
|
||||||
|
status: string;
|
||||||
|
date: Date;
|
||||||
|
salary: number;
|
||||||
|
positionTypeOld: string;
|
||||||
|
positionLevelOld: string;
|
||||||
|
positionNumberOld: string;
|
||||||
|
organizationPositionOld: string;
|
||||||
|
isActive: boolean;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
interface resHelpDetail {
|
||||||
|
data: {
|
||||||
|
result: {
|
||||||
|
prefix: string;
|
||||||
|
firstName: string;
|
||||||
|
lastName: string;
|
||||||
|
id: string;
|
||||||
|
profileId: string;
|
||||||
|
avatar?: string;
|
||||||
|
position: string;
|
||||||
|
posNo: string;
|
||||||
|
positionLevel: string;
|
||||||
|
createdAt: string;
|
||||||
|
organization: string;
|
||||||
|
reason: string;
|
||||||
|
status: string;
|
||||||
|
dateStart: Date;
|
||||||
|
dateEnd: Date;
|
||||||
|
positionTypeOld: string;
|
||||||
|
positionLevelOld: string;
|
||||||
|
positionNumberOld: string;
|
||||||
|
organizationPositionOld: string;
|
||||||
|
isActive: boolean;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
export type {
|
||||||
|
officerType,
|
||||||
|
ResponseData,
|
||||||
|
resHelpDetail
|
||||||
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue