Merge branch 'develop' into devTee

This commit is contained in:
setthawutttty 2024-10-25 16:57:52 +07:00
commit 4e1a8aa39e
5 changed files with 90 additions and 92 deletions

View file

@ -73,15 +73,15 @@ const columns = ref<QTableProps["columns"]>([
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "document",
align: "center",
label: "หลักฐานอ้างอิง",
sortable: false,
field: "document",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
// {
// name: "document",
// align: "center",
// label: "",
// sortable: false,
// field: "document",
// headerStyle: "font-size: 14px",
// style: "font-size: 14px",
// },
{
name: "status",
align: "left",
@ -108,7 +108,7 @@ const visibleColumns = ref<string[]>([
"fullname",
"topic",
"detail",
"document",
// "document",
"status",
"remark",
]);
@ -354,7 +354,7 @@ onMounted(() => {
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div v-if="col.name === 'document'">
<!-- <div v-if="col.name === 'document'">
<q-btn
icon="mdi-download"
round
@ -365,10 +365,10 @@ onMounted(() => {
>
<q-tooltip>ดาวนโหลดเอกสารหลกฐาน</q-tooltip>
</q-btn>
</div>
<div v-else class="table_ellipsis2">
{{ col.value ? col.value : "-" }}
</div>
</div> -->
<!-- <div v-else class="table_ellipsis2"> -->
{{ col.value ? col.value : "-" }}
<!-- </div> -->
</q-td>
</q-tr>
</template>
@ -395,8 +395,6 @@ onMounted(() => {
:fetch-data="fetchListRequset"
:request-id="requestId"
/>
</template>
<style scoped></style>

View file

@ -30,7 +30,6 @@ const {
success,
} = useCounterMixin();
const urlImg = ref<string>("");
const modalUpdate = ref<boolean>(false);
const modalFather = ref<boolean>(false);
const modalMother = ref<boolean>(false);
@ -85,9 +84,8 @@ async function fetchDataRequest() {
} else {
isReadOnly.value = false;
}
if (dataRequest.value.topic == "ขอแก้ไขรูปภาพประจำตัว") {
onDownloadFile(requestId.value);
}
onDownloadFile(requestId.value);
})
.catch((err) => {
messageError($q, err);
@ -143,12 +141,13 @@ function classInput(val: boolean) {
};
}
const checkFile = ref<null | false | "img" | "doc">(null); // null , false , "img" , "doc"
const urlDownload = ref<string>(""); // url
/**
* function หาชอไฟล
* @param id รายการยนคำรองขอแกไขขอม
*/
function onDownloadFile(id: string) {
showLoader();
http
.get(
config.API.file(
@ -161,12 +160,11 @@ function onDownloadFile(id: string) {
if (res.data.length !== 0) {
await downloadUrl(id, res.data[0].fileName);
} else {
hideLoader();
checkFile.value = false;
}
})
.catch((e) => {
messageError($q, e);
hideLoader();
});
}
@ -186,10 +184,11 @@ async function downloadUrl(id: string, fileName: string) {
)
)
.then((res) => {
urlDownload.value = res.data.downloadUrl;
if (dataRequest.value.topic == "ขอแก้ไขรูปภาพประจำตัว") {
urlImg.value = res.data.downloadUrl;
checkFile.value = "img";
} else {
window.open(res.data.downloadUrl, "_blank");
checkFile.value = "doc";
}
})
.catch((e) => {
@ -341,56 +340,37 @@ onMounted(async () => {
type="textarea"
/>
</div>
<div class="text-weight-bold text-dark col-12">
{{
dataRequest.topic == "ขอแก้ไขรูปภาพประจำตัว"
? "รูปภาพประจำตัว"
: "เอกสารหลักฐาน"
}}
</div>
<div class="col-12">
<!-- เอกสารหลกฐาน -->
<q-btn
v-if="dataRequest.topic !== 'ขอแก้ไขรูปภาพประจำตัว'"
icon="mdi-download"
dense
flat
label="ดาวน์โหลดเอกสารหลักฐาน"
color="blue"
@click.stop.pervent="onDownloadFile(requestId)"
>
<q-tooltip>หลกฐานอางอ</q-tooltip>
</q-btn>
<div v-else>
<span v-if="urlImg == ''"
><div
style="
height: 200px;
max-width: 200px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
"
class="text-grey-5"
>
<q-spinner color="primary" size="3em" :thickness="10" />
</div>
</span>
<q-img
v-else
:src="urlImg"
:ratio="1"
spinner-color="primary"
spinner-size="82px"
fit="cover"
style="
height: 200px;
max-width: 200px;
border-radius: 20px;
"
<div v-if="checkFile != null && checkFile != false">
<div class="text-weight-bold text-dark col-12">
{{
checkFile == "img" ? "รูปภาพประจำตัว" : "เอกสารหลักฐาน"
}}
</div>
<div class="col-12">
<!-- เอกสารหลกฐาน -->
<q-btn
v-if="checkFile == 'doc'"
icon="mdi-download"
dense
flat
label="ดาวน์โหลดเอกสารหลักฐาน"
color="blue"
:href="urlDownload"
target="_blank"
/>
<div
v-else-if="checkFile == 'img'"
class="q-pa-md q-gutter-sm"
>
</q-img>
<q-avatar size="120px" color="grey-4">
<img
:src="urlDownload"
class="bg-grey-3"
style="object-fit: cover"
/>
</q-avatar>
</div>
</div>
</div>
</div>

View file

@ -1,5 +1,5 @@
<script setup lang="ts">
import { ref, onMounted } from "vue";
import { ref, onMounted, computed } from "vue";
import { useQuasar } from "quasar";
import { useRoute, useRouter } from "vue-router";
@ -68,7 +68,7 @@ const reasonDeath = ref(""); //เหตุผลการเสียชีว
const dialogImage = ref<boolean>(false); //
const formDetail = ref<ResponseObject>(); //
//
const itemsMenu = ref<DataOptionSys[]>([
const baseItemsMenu = ref<DataOptionSys[]>([
{
id: "1",
name: "ช่วยราชการ",
@ -100,6 +100,21 @@ const itemsMenu = ref<DataOptionSys[]>([
system: "SYS_PLACEMENT_OTHER",
},
]);
const itemsMenu = computed(() => {
if (
leaveReason.value ===
"(พ้นจากราชการด้วยสาเหตุ: ได้รับโทษทางวินัย ให้ออกจากราชการไว้ก่อน)"
) {
return (
baseItemsMenu.value?.filter(
(option: DataOptionSys) => option.system === "SYS_PROMOTION_OFFICER"
) || []
);
} else {
return baseItemsMenu.value || [];
}
});
//
const itemsMenuEmployee = ref<DataOptionSys[]>([
{
@ -279,12 +294,12 @@ async function fetchDataPersonal() {
(r: DataOption) => r.id == res.data.result.leaveReason
);
if (reason.length > 0) {
leaveReason.value = ` (พ้นจากราชการด้วยสาเหตุ: ${reason[0].name})`;
leaveReason.value = `(พ้นจากราชการด้วยสาเหตุ: ${reason[0].name})`;
} else if (
res.data.result.leaveReason !== null &&
res.data.result.leaveReason !== ""
) {
leaveReason.value = ` (พ้นจากราชการด้วยสาเหตุ: ${res.data.result.leaveReason})`;
leaveReason.value = `(พ้นจากราชการด้วยสาเหตุ: ${res.data.result.leaveReason})`;
}
reasonStatus.value = reason.length > 0 ? true : false;
}
@ -687,18 +702,21 @@ onMounted(async () => {
<div v-if="isPermission">
<!-- list menu ของขาราชการฯ -->
<q-btn-dropdown
v-if="
!storeRegistry.isLeave &&
empType === '' &&
checkPermissionList([
'SYS_TEMPDUTY',
'SYS_TEMPDUTY2',
'SYS_PROMOTION_OFFICER',
'SYS_PASSAWAY',
'SYS_DISMISS',
'SYS_PLACEMENT_OTHER',
])
(!storeRegistry.isLeave &&
empType === '' &&
checkPermissionList([
'SYS_TEMPDUTY',
'SYS_TEMPDUTY2',
'SYS_PROMOTION_OFFICER',
'SYS_PASSAWAY',
'SYS_DISMISS',
'SYS_PLACEMENT_OTHER',
])) ||
leaveReason ===
'(พ้นจากราชการด้วยสาเหตุ: ได้รับโทษทางวินัย ให้ออกจากราชการไว้ก่อน)'
"
size="md"
rounded
@ -833,7 +851,9 @@ onMounted(async () => {
<q-img :src="profilePicture" />
</q-avatar>
<q-btn
v-if="!storeRegistry.isLeave && checkPermission($route)?.attrIsUpdate"
v-if="
!storeRegistry.isLeave && checkPermission($route)?.attrIsUpdate
"
round
text-color="edit"
icon="mdi-pencil"

View file

@ -391,7 +391,7 @@ onMounted(async () => {
<div class="row items-center">
<q-space />
<div class="row q-col-gutter-sm items-center q-py-xs">
<div>
<div v-if="isOfficer || isStaff">
<q-btn
flat
round

View file

@ -389,7 +389,7 @@ onMounted(async () => {
<div class="row items-center">
<q-space />
<div class="row q-col-gutter-sm items-center q-py-xs">
<div>
<div v-if="isOfficer || isStaff">
<q-btn
flat
round