This commit is contained in:
setthawutttty 2024-11-06 16:47:02 +07:00
parent 8390a8ab01
commit 8c989e84b2
23 changed files with 201 additions and 149 deletions

View file

@ -25,19 +25,9 @@ const $q = useQuasar();
const dataStore = useDataStore();
const mixin = useCounterMixin();
const { messageError, dialogConfirm, showLoader, hideLoader } = mixin;
const profileImg = ref<string>("");
const router = useRouter();
const tab = ref<string>("information");
const formData = reactive<any>({
prefix: "",
firstName: "",
lastName: "",
position: "",
posExecutiveName: "",
posTypeName: "",
posLevelName: "",
posNo: "",
});
const sizeImg = ref<string>("");
function onResize(size: any) {
const width = size.width > 100 ? 100 : size.width;
@ -48,65 +38,6 @@ function onMobile(type: string) {
router.push(`/registry/${type}`);
}
function getMain() {
showLoader();
http
.get(config.API.profilePosition())
.then(async (res) => {
const data = res.data.result;
formData.prefix = data.prefix;
formData.firstName = data.firstName;
formData.lastName = data.lastName;
formData.position = data.position;
formData.posTypeName = data.posTypeName;
formData.posExecutiveName = data.posExecutiveName;
formData.posLevelName = data.posLevelName;
formData.posNo = data.rootShortName
? `${data.rootShortName}${data.posMaster}`
: "";
store.profileId = data.profileId;
if (data.avatarName) {
await getImg(data.profileId, data.avatarName);
} else {
profileImg.value = avatar;
}
})
.catch((err) => {
messageError($q, err);
})
.finally(() => {
hideLoader();
});
}
async function getImg(id: string, pathName: string) {
showLoader();
await http
.get(config.API.fileByFile("ทะเบียนประวัติ", "โปรไฟล์", id, pathName))
.then((res) => {
profileImg.value = res.data.downloadUrl;
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
hideLoader();
});
}
function getType() {
http
.get(config.API.proFileType)
.then((res) => {
store.typeProfile = res.data.result;
})
.catch((e) => {
messageError($q, e);
});
}
async function onClickDownloadKp7(type: string) {
showLoader();
const url =
@ -182,11 +113,6 @@ function redirectToPagePetition() {
router.push(`/registry/request-edit`);
}
onMounted(async () => {
store.typeProfile = "OFFICER";
await getType();
await getMain();
});
</script>
<template>
@ -220,27 +146,29 @@ onMounted(async () => {
<div class="relative-position" style="height: 120px">
<div class="absolute-center">
<q-avatar size="120px" class="bg-grey-2">
<q-img :src="profileImg" />
<q-img :src="dataStore.profileImg" />
</q-avatar>
</div>
</div>
<div class="column text-center q-mt-md q-mb-sm">
<span class="text-teal text-weight-medium">{{
formData.firstName
? `${formData.prefix}${formData.firstName} ${formData.lastName}`
dataStore.formData.firstName
? `${dataStore.formData.prefix}${dataStore.formData.firstName} ${dataStore.formData.lastName}`
: "-"
}}</span>
<span class="text-grey text-weight-medium">{{
dataStore.officerType == "OFFICER"
? `ข้าราชการกรุงเทพมหานครสามัญ`
: "ลูกจ้างประจำกรุงเทพมหานคร"
: dataStore.officerType == "PERM"
? "ลูกจ้างประจำกรุงเทพมหานคร"
: "ลูกจ้างชั่วคราว"
}}</span>
<span class="text-grey text-weight-medium">{{
formData.position ? `${formData.position}` : "-"
dataStore.formData.position ? `${dataStore.formData.position}` : "-"
}}</span>
<div class="text-grey">{{ formData.posNo }}</div>
<div class="text-grey">{{ dataStore.formData.posNo }}</div>
</div>
</q-card-section>
@ -248,24 +176,24 @@ onMounted(async () => {
<!-- <q-separator />
<q-item>
<q-item-section class="text-grey-6">{{
store.typeProfile == "OFFICER" ? "ตำแหน่งในสายงาน" : "ตำแหน่ง"
dataStore.officerType == "OFFICER" ? "ตำแหน่งในสายงาน" : "ตำแหน่ง"
}}</q-item-section>
<q-item-section>{{ formData.posExecutiveName }}</q-item-section>
</q-item> -->
<q-item>
<q-item-section class="text-grey-6">{{
store.typeProfile == "OFFICER" ? "ตำแหน่งประเภท" : "กลุ่มงาน"
dataStore.officerType == "OFFICER" ? "ตำแหน่งประเภท" : "กลุ่มงาน"
}}</q-item-section>
<q-item-section>{{
formData.posTypeName ? formData.posTypeName : "-"
dataStore.formData.posTypeName ? dataStore.formData.posTypeName : "-"
}}</q-item-section>
</q-item>
<q-item>
<q-item-section class="text-grey-6">{{
store.typeProfile == "OFFICER" ? "ระดับ" : "ระดับชั้นงาน"
dataStore.officerType == "OFFICER" ? "ระดับ" : "ระดับชั้นงาน"
}}</q-item-section>
<q-item-section>{{
formData.posLevelName ? formData.posLevelName : "-"
dataStore.formData.posLevelName ? dataStore.formData.posLevelName : "-"
}}</q-item-section>
</q-item>
</q-list>
@ -346,15 +274,15 @@ onMounted(async () => {
<div class="text-center q-mt-md">
<q-avatar :size="sizeImg">
<img
:src="profileImg"
:src="dataStore.profileImg"
style="border-radius: 50%; object-fit: cover"
/>
</q-avatar>
</div>
<div class="column text-center q-mt-md q-mb-lg">
<span class="text-teal text-weight-medium">{{
formData.firstName
? `${formData.prefix}${formData.firstName} ${formData.lastName}`
dataStore.formData.firstName
? `${dataStore.formData.prefix}${dataStore.formData.firstName} ${dataStore.formData.lastName}`
: "-"
}}</span>
<span class="text-grey text-weight-medium">{{
@ -363,9 +291,9 @@ onMounted(async () => {
: "ลูกจ้างประจำกรุงเทพมหานคร"
}}</span>
<span class="text-grey text-weight-medium">{{
formData.position ? `${formData.position}` : "-"
dataStore.formData.position ? `${dataStore.formData.position}` : "-"
}}</span>
<div class="text-grey">{{ formData.posNo }}</div>
<div class="text-grey">{{ dataStore.formData.posNo }}</div>
</div>
<div class="row justify-center q-gutter-x-lg">
<q-btn