แก้บรรจุแต่งตั้ง ตามโครงสร้างใหม่ (change req)
This commit is contained in:
parent
8e11c4f539
commit
85dd0628f4
3 changed files with 188 additions and 92 deletions
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue