แก้บรรจุแต่งตั้ง ตามโครงสร้างใหม่ (change req)

This commit is contained in:
Warunee Tamkoo 2024-04-30 16:21:03 +07:00
parent 8e11c4f539
commit 85dd0628f4
3 changed files with 188 additions and 92 deletions

View file

@ -19,6 +19,7 @@ import http from "@/plugins/http";
import config from "@/app.config";
import keycloak from "@/plugins/keycloak";
import router from "@/router";
import avatar from "@/assets/avatar_user.jpg";
let roleAdmin = ref<boolean>(false);
@ -91,7 +92,7 @@ const personalId = ref<string>("");
/** แสดงข้อมูลตารางหลัก */
const visibleColumns = ref<any[]>([
"position",
"no",
"fullName",
"examNumber",
"idCard",
@ -108,6 +109,7 @@ const visibleColumns = ref<any[]>([
* ตาราง งรายชอไปหนวยงาน
*/
const visibleColumnslist = ref<any>([
"no",
"fullName",
"examNumber",
"idCard",
@ -121,11 +123,11 @@ const visibleColumnslist = ref<any>([
/**หัวตาราง */
const columns = ref<QTableProps["columns"]>([
{
name: "position",
name: "no",
align: "center",
label: "ลำดับ",
sortable: false,
field: "position",
field: "no",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
@ -274,42 +276,58 @@ async function getTable() {
res.data.result.map((data: any) => {
const rowData = {
personalId: data.personalId,
idCard: data.idCard,
fullName: data.fullName + " " + data.idCard,
avatar: data.avatar,
name: data.fullName,
profilePhoto: data.profilePhoto ?? "",
avatar: data.avatar ?? "",
organizationName:
data.organizationName +
" " +
data.organizationShortName +
" " +
data.positionNumber +
" " +
data.positionPath,
orgName: data.organizationName,
organizationShortName: data.organizationShortName,
positionNumber: data.positionNumber,
positionPath: data.positionPath,
reportingDate:
data.reportingDate == null
? null
: dateText(new Date(data.reportingDate)),
fullName: data.fullName + " " + data.idCard,
idCard: data.idCard,
examNumber: data.examNumber,
root: data.root,
rootId: data.rootId,
rootShortName: data.rootShortName,
child1: data.child1,
child1Id: data.child1Id,
child1ShortName: data.child1ShortName,
child2: data.child2,
child2Id: data.child2Id,
child2ShortName: data.child2ShortName,
child3: data.child3,
child3Id: data.child3Id,
child3ShortName: data.child3ShortName,
child4: data.child4,
child4Id: data.child4Id,
child4ShortName: data.child4ShortName,
node: data.node,
nodeName: data.nodeName,
nodeId: data.nodeId,
nodeShortName: data.nodeShortName,
orgRevisionId: data.orgRevisionId,
positionId: data.positionId,
posMasterNo: data.posMasterNo,
positionName: data.positionName,
positionField: data.positionField,
posTypeId: data.posTypeId,
posTypeName: data.posTypeName,
posLevelId: data.posLevelId,
posLevelName: data.posLevelName,
positionCandidate: data.positionCandidate,
positionCandidateId: data.positionCandidateId,
reportingDate: data.reportingDate,
bmaOfficer: convertBmaOfficer(data.bmaOfficer),
statusId: data.statusId,
statusName: convertContainStatus(data.statusId),
deferment: data.deferment,
draft: convertDraft(data.draft),
positionCandidate: data.positionCandidate,
node: data.node,
nodeId: data.nodeId,
posmasterId: data.posmasterId,
positionId: data.positionId,
orgTreeShortName: data.orgTreeShortName,
posPath: data.posPath,
posNumber: data.posNumber,
reportingDateFullDate: data.reportingDate,
typeCommand: data.typeCommand,
statusName: convertContainStatus(data.statusId),
organizationName:
data.root +
" " +
data.rootShortName +
" " +
data.nodeName +
"" +
data.nodeShortName +
"" +
data.posMasterNo,
};
rowsAll.value.push(rowData);
});
@ -325,6 +343,8 @@ async function getTable() {
e.positionNumber !== null &&
e.statusName == "เตรียมบรรจุ"
);
insertAvatar(rowsAll.value);
})
.catch((e) => {
messageError($q, e);
@ -334,6 +354,32 @@ async function getTable() {
});
}
function insertAvatar(items: any) {
items.map((x: any, index: number) => {
http
.get(
config.API.fileByFile(
"ทะเบียนประวัติ",
"โปรไฟล์",
x.id,
"profile-" + x.id
)
)
.then((img) => {
rowsAll.value[index] = {
...x,
avatar: img.data.downloadUrl,
};
})
.catch(() => {
rowsAll.value[index] = {
...x,
avatar: avatar,
};
});
});
}
/**ยืนยันการผ่อนผัน */
async function saveDeferment() {
myForm.value.validate().then(async (result: boolean) => {
@ -659,7 +705,7 @@ onMounted(async () => {
@click="selectData(props.row.personalId, props.row.draft)"
class="cursor-pointer"
>
<template v-if="col.name === 'position'">
<template v-if="col.name === 'no'">
{{ props.rowIndex + 1 }}
</template>
<template
@ -668,12 +714,9 @@ onMounted(async () => {
>
<q-item v-ripple>
<q-item-section avatar>
<img
v-if="props.row.avatar == ''"
src="@/assets/avatar_user.jpg"
class="col-4 img-info"
/>
<img v-else :src="props.row.avatar" class="col-4 img-info" />
<q-avatar size="30px" color="grey-4">
<q-img :src="props.row.avatar" class="photo-profile" />
</q-avatar>
</q-item-section>
<q-item-section>
@ -696,18 +739,18 @@ onMounted(async () => {
>
<div class="col-4">
<div class="text-weight-medium">
{{ props.row.orgName !== null ? props.row.orgName : "-" }}
{{ props.row.root !== null ? props.row.root : "-" }}
{{
props.row.orgTreeShortName !== null
? `(${props.row.orgTreeShortName})`
props.row.rootShortName !== null
? `(${props.row.rootShortName})`
: ""
}}
</div>
<div class="text-weight-light">
{{ props.row.posPath !== null ? props.row.posPath : "" }}
{{ props.row.nodeName !== null ? props.row.nodeName : "" }}
{{
props.row.orgTreeShortName !== null
? `(${props.row.orgTreeShortName}${props.row.posNumber})`
props.row.nodeShortName !== null
? `(${props.row.nodeShortName}${props.row.posMasterNo})`
: ""
}}
</div>
@ -733,17 +776,19 @@ onMounted(async () => {
</div>
</template>
<template
v-else-if="col.name === 'reportingDate' && col.value !== '-'"
>
<template v-else-if="col.name === 'reportingDate'">
<div class="text-weight-medium">
{{ props.row.reportingDate }}
{{
props.row.reportingDate !== null
? dateText(props.row.reportingDate)
: "-"
}}
</div>
</template>
<template v-else-if="col.name === 'bmaOfficer'">
<div class="text-weight-medium">
{{ props.row.bmaOfficer !== null ? props.row.bmaOfficer : "-" }}
{{ props.row.bmaOfficer }}
</div>
</template>
@ -1177,16 +1222,9 @@ onMounted(async () => {
>
<q-item v-ripple style="padding: 0">
<q-item-section avatar>
<img
v-if="props.row.avatar == ''"
src="@/assets/avatar_user.jpg"
class="col-4 img-info"
/>
<img
v-else
:src="props.row.avatar"
class="col-4 img-info"
/>
<q-avatar size="32px" color="grey-4">
<q-img :src="props.row.avatar" class="photo-profile" />
</q-avatar>
</q-item-section>
<q-item-section>
@ -1232,27 +1270,26 @@ onMounted(async () => {
>
<div class="col-4">
<div class="text-weight-medium">
{{ props.row.root !== null ? props.row.root : "-" }}
{{
props.row.orgName !== null ? props.row.orgName : "-"
}}
{{
props.row.orgTreeShortName !== null
? `(${props.row.orgTreeShortName})`
props.row.rootShortName !== null
? `(${props.row.rootShortName})`
: ""
}}
</div>
<div class="text-weight-light">
{{
props.row.posPath !== null ? props.row.posPath : "-"
props.row.nodeName !== null ? props.row.nodeName : ""
}}
{{
props.row.posNumber !== null
? `(${props.row.orgTreeShortName}${props.row.posNumber})`
props.row.nodeShortName !== null
? `(${props.row.nodeShortName}${props.row.posMasterNo})`
: ""
}}
</div>
</div>
</div>
<div v-else>
<div class="col-4">
<div class="text-weight-medium">-</div>
@ -1270,18 +1307,18 @@ onMounted(async () => {
{{ props.row.positionCandidate }}
</div>
</template>
<template
v-else-if="col.name === 'reportingDate' && col.value !== '-'"
>
<template v-else-if="col.name === 'reportingDate'">
<div class="text-weight-medium">
{{ props.row.reportingDate }}
{{
props.row.reportingDate !== null
? dateText(props.row.reportingDate)
: "-"
}}
</div>
</template>
<template v-else-if="col.name === 'bmaOfficer'">
<div class="text-weight-medium">
{{
props.row.bmaOfficer !== null ? props.row.bmaOfficer : "-"
}}
{{ props.row.bmaOfficer }}
</div>
</template>
<template v-else-if="col.name === 'draft'">
@ -1347,12 +1384,8 @@ onMounted(async () => {
margin-bottom: 0;
color: #818181;
}
.img-info {
width: 30px !important;
height: 30px !important;
border-radius: 50%;
object-fit: cover;
margin-right: 10px;
.photo-profile {
width: 30px;
height: 30px;
}
</style>