Merge branch 'develop' into devTee
This commit is contained in:
commit
4e1a8aa39e
5 changed files with 90 additions and 92 deletions
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue