Merge commit '16f91843d8' into develop

This commit is contained in:
Warunee Tamkoo 2024-03-12 16:24:00 +07:00
commit 3fa5a6c17c

View file

@ -40,7 +40,7 @@
}} }}
</div> </div>
<div v-else-if="col.name == 'status'" class="table_ellipsis"> <div v-else-if="col.name == 'status'" class="table_ellipsis">
{{ statusLeave(col.value) }} {{ col.value ? statusLeave(col.value) : "-" }}
<!-- {{ col.value }} --> <!-- {{ col.value }} -->
</div> </div>
<div <div
@ -51,13 +51,15 @@
" "
class="table_ellipsis" class="table_ellipsis"
> >
{{ col.value == null ? "" : col.value.toLocaleString("en-US") }} {{
col.value == null ? "-" : col.value.toLocaleString("en-US")
}}
</div> </div>
<div v-else class="table_ellipsis"> <div v-else class="table_ellipsis">
{{ col.value }} {{ col.value ? col.value : "-" }}
</div> </div>
</q-td> </q-td>
<q-td auto-width> <!-- <q-td auto-width>
<q-btn <q-btn
color="info" color="info"
flat flat
@ -69,7 +71,7 @@
> >
<q-tooltip>ประวแกไขการลา </q-tooltip> <q-tooltip>ประวแกไขการลา </q-tooltip>
</q-btn> </q-btn>
</q-td> </q-td> -->
</q-tr> </q-tr>
</template> </template>
</ProfileTable> </ProfileTable>
@ -82,7 +84,7 @@
<DialogHeader tittle="การลา" :close="clickCloseLeave" /> <DialogHeader tittle="การลา" :close="clickCloseLeave" />
<q-separator /> <q-separator />
<q-card-section class="q-p-sm"> <q-card-section class="q-p-sm">
<div class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs"> <!-- <div class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs">
<div class="col-xs-6 col-sm-6 col-md-6"> <div class="col-xs-6 col-sm-6 col-md-6">
<selector <selector
:class="getClass(edit)" :class="getClass(edit)"
@ -168,23 +170,6 @@
@update:modelValue="clickEditRow" @update:modelValue="clickEditRow"
/> />
</div> </div>
<!-- <div class="col-xs-3 col-sm-3 col-md-3">
<q-input
:class="getClass(false)"
:outlined="true"
dense
lazy-rules
:readonly="false"
:borderless="false"
disable
v-model="numUsedLeave"
type="number"
:rules="[(val:string) => !!val || `${'กรุณากรอกจำนวนวันที่ลามาแล้ว'}`]"
hide-bottom-space
:label="`${'จำนวนวันที่ลามาแล้ว'}`"
@update:modelValue="clickEditRow"
/>
</div> -->
<div class="col-xs-6 col-sm-6 col-md-6"> <div class="col-xs-6 col-sm-6 col-md-6">
<selector <selector
:class="getClass(edit)" :class="getClass(edit)"
@ -226,6 +211,128 @@
@update:modelValue="clickEditRow" @update:modelValue="clickEditRow"
/> />
</div> </div>
</div> -->
<div class="row q-col-gutter-sm">
<div class="col-6">
<q-input
v-if="edit"
outlined
v-model="inputDateLaeaveYear"
:label="`${'ปี'}`"
mask="####"
dense
:rules="[(val:string) => !!val || `${'กรุณาเลือกปี'}`]"
:class="getClass(edit)"
:readonly="!edit"
:borderless="!edit"
/>
<datepicker
v-else
menu-class-name="modalfix"
v-model="formData.leaveYear"
class="col-2"
:locale="'th'"
autoApply
year-picker
:enableTimePicker="false"
:readonly="!edit"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
lazy-rules
hide-bottom-space
:rules="[(val:string) => !!val || `${'กรุณาเลือกปี'}`]"
:class="getClass(edit)"
:outlined="edit"
:readonly="!edit"
:borderless="!edit"
:model-value="
formData.leaveYear === 0
? null
: Number(formData.leaveYear) + 543
"
:label="`${'ปี'}`"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
<template v-if="formData.leaveYear && edit" v-slot:append>
<q-icon
name="cancel"
@click.stop.prevent="formData.leaveYear = 0"
class="cursor-pointer"
/>
</template>
</q-input>
</template>
</datepicker>
</div>
<div class="col-6">
<q-input
:class="getClass(edit)"
v-model="formData.sumSick"
label="ลาป่วย"
dense
:outlined="edit"
:readonly="!edit"
:borderless="!edit"
/>
</div>
<div class="col-6">
<q-input
:class="getClass(edit)"
v-model="formData.sumRest"
label="ลากิจและพักผ่อน"
dense
:outlined="edit"
:readonly="!edit"
:borderless="!edit"
/>
</div>
<div class="col-6">
<q-input
:class="getClass(edit)"
v-model="formData.sumLate"
label="มาสาย"
dense
:outlined="edit"
:readonly="!edit"
:borderless="!edit"
/>
</div>
<div class="col-6">
<q-input
:class="getClass(edit)"
v-model="formData.sumAbsent"
label="ขาดราชการ"
dense
:outlined="edit"
:readonly="!edit"
:borderless="!edit"
/>
</div>
<div class="col-6">
<q-input
:class="getClass(edit)"
v-model="formData.sumEducation"
label="ลาศึกษาต่อ"
dense
:outlined="edit"
:readonly="!edit"
:borderless="!edit"
/>
</div>
</div> </div>
</q-card-section> </q-card-section>
<q-separator /> <q-separator />
@ -282,12 +389,12 @@
> >
{{ {{
col.value == null col.value == null
? "" ? "-"
: col.value.toLocaleString("en-US") : col.value.toLocaleString("en-US")
}} }}
</div> </div>
<div v-else> <div v-else>
{{ col.value }} {{ col.value ? col.value : "-" }}
</div> </div>
</q-td> </q-td>
</q-tr> </q-tr>
@ -329,21 +436,30 @@
" "
class="table_ellipsis" class="table_ellipsis"
> >
{{ col.value == null ? "" : col.value.toLocaleString("en-US") }} {{ col.value == null ? "-" : col.value.toLocaleString("en-US") }}
</div> </div>
<div v-else-if="col.name == 'status'" class="table_ellipsis"> <div v-else-if="col.name == 'status'" class="table_ellipsis">
{{ statusLeave(col.value) }} {{ col.value ? statusLeave(col.value) : "-" }}
</div> </div>
<div v-else class="table_ellipsis"> <div v-else class="table_ellipsis">
{{ col.value }} {{ col.value ? col.value : "-" }}
</div> </div>
</q-td> </q-td>
</q-tr> </q-tr>
</template> </template>
</HistoryTable> </HistoryTable>
<!-- <DialogFormLeave
v-model:modal="modalAdd"
v-model:edit="edit"
v-model:data="formData"
/> -->
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, ref, watch } from "vue"; import DialogFormLeave from "@/modules/04_registry/components/DialogFormLeave.vue";
import { onMounted, ref, watch, reactive } from "vue";
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
import { useCounterMixin } from "@/stores/mixin"; import { useCounterMixin } from "@/stores/mixin";
import { useProfileDataStore } from "@/modules/04_registry/store"; import { useProfileDataStore } from "@/modules/04_registry/store";
@ -356,6 +472,7 @@ import type {
RequestItemsObject, RequestItemsObject,
RequestItemsTotalObject, RequestItemsTotalObject,
DataProps, DataProps,
DetailData,
} from "@/modules/04_registry/interface/request/Leave"; } from "@/modules/04_registry/interface/request/Leave";
import type { import type {
ResponseObject, ResponseObject,
@ -369,6 +486,7 @@ import HistoryTable from "@/components/TableHistory.vue";
import http from "@/plugins/http"; import http from "@/plugins/http";
import config from "@/app.config"; import config from "@/app.config";
import type { QTableProps } from "quasar"; import type { QTableProps } from "quasar";
import moment from "moment";
const props = defineProps({ const props = defineProps({
statusEdit: { statusEdit: {
@ -381,6 +499,16 @@ const $q = useQuasar();
const store = useProfileDataStore(); const store = useProfileDataStore();
const { profileData, changeProfileColumns } = store; const { profileData, changeProfileColumns } = store;
const formData = reactive<DetailData>({
id: "",
sumSick: "",
sumRest: "",
sumLate: "",
sumAbsent: "",
sumEducation: "",
leaveYear: "",
});
const mixin = useCounterMixin(); const mixin = useCounterMixin();
const { const {
date2Thai, date2Thai,
@ -391,6 +519,9 @@ const {
dateToISO, dateToISO,
showLoader, showLoader,
hideLoader, hideLoader,
dialogConfirm,
convertDate,
convertDateDisplay,
} = mixin; } = mixin;
const route = useRoute(); const route = useRoute();
@ -431,6 +562,7 @@ const id = ref<string>("");
const myFormAdd = ref<any>(); //form data input const myFormAdd = ref<any>(); //form data input
const myForm = ref<any>(); //form data input const myForm = ref<any>(); //form data input
const edit = ref<boolean>(true); // dialog const edit = ref<boolean>(true); // dialog
const editForm = ref<boolean>(false); // dialog
const modal = ref<boolean>(false); //modal add detail const modal = ref<boolean>(false); //modal add detail
const modalEdit = ref<boolean>(false); //modal const modalEdit = ref<boolean>(false); //modal
@ -448,23 +580,140 @@ const checkValidate = ref<boolean>(false); //validate data ผ่านหรื
const profileId = ref<string>( const profileId = ref<string>(
route.params.id ? route.params.id.toString() : "" route.params.id ? route.params.id.toString() : ""
); );
const rows = ref<RequestItemsObject[]>([]); const rows = ref<DetailData[]>([]);
const filterTotal = ref<string>(""); const filterTotal = ref<string>("");
const rowsTotal = ref<RequestItemsTotalObject[]>([]); //select data history const rowsTotal = ref<RequestItemsTotalObject[]>([]); //select data history
const filter = ref<string>(""); //search data table const filter = ref<string>(""); //search data table
const visibleColumns = ref<String[]>([]);
profileData.leave.columns.length == 0 const inputDateLaeaveYear = ref<string>("");
? (visibleColumns.value = [ /** ตรวจเวลา */
"no", watch(
"typeLeave", () => inputDateLaeaveYear.value,
"dateStartLeave", (value: string) => {
"numLeave", if (value.length === 4) {
"sumLeave", formData.leaveYear = parseInt(value) - 543;
"totalLeave", }
"status", }
"reason", );
]) /**old */
: (visibleColumns.value = profileData.leave.columns); // const visibleColumns = ref<String[]>([]);
// profileData.leave.columns.length == 0
// ? (visibleColumns.value = [
// "no",
// "typeLeave",
// "dateStartLeave",
// "numLeave",
// "sumLeave",
// "totalLeave",
// "status",
// "reason",
// ])
// : (visibleColumns.value = profileData.leave.columns);
/** NEW */
const visibleColumns = ref<String[]>([
"no",
"leaveYear",
"sumSick",
"sumRest",
"sumLate",
"sumAbsent",
"sumEducation",
]);
/** old */
// const columns = ref<QTableProps["columns"]>([
// {
// name: "no",
// align: "left",
// label: "",
// sortable: false,
// field: "no",
// headerStyle: "font-size: 14px",
// style: "font-size: 14px",
// sort: (a: string, b: string) =>
// a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
// },
// {
// name: "typeLeave",
// align: "left",
// label: "",
// sortable: true,
// field: "typeLeave",
// headerStyle: "font-size: 14px",
// style: "font-size: 14px",
// sort: (a: string, b: string) =>
// a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
// },
// {
// name: "dateStartLeave",
// align: "left",
// label: " ",
// sortable: true,
// field: "dateStartLeave",
// headerStyle: "font-size: 14px",
// style: "font-size: 14px",
// sort: (a: string, b: string) =>
// a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
// },
// {
// name: "numLeave",
// align: "right",
// label: "",
// sortable: true,
// field: "numLeave",
// headerStyle: "font-size: 14px",
// style: "font-size: 14px",
// sort: (a: string, b: string) =>
// a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
// },
// {
// name: "sumLeave",
// align: "right",
// label: "",
// sortable: true,
// field: "sumLeave",
// headerStyle: "font-size: 14px",
// style: "font-size: 14px",
// sort: (a: string, b: string) =>
// a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
// },
// {
// name: "totalLeave",
// align: "right",
// label: "",
// sortable: true,
// field: "totalLeave",
// headerStyle: "font-size: 14px",
// style: "font-size: 14px",
// sort: (a: string, b: string) =>
// a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
// },
// {
// name: "status",
// align: "left",
// label: "",
// sortable: true,
// field: "status",
// headerStyle: "font-size: 14px",
// style: "font-size: 14px",
// sort: (a: string, b: string) =>
// a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
// },
// {
// name: "reason",
// align: "right",
// label: "",
// sortable: true,
// field: "reason",
// headerStyle: "font-size: 14px",
// style: "font-size: 14px",
// sort: (a: string, b: string) =>
// a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
// },
// ]);
/** NEW */
const columns = ref<QTableProps["columns"]>([ const columns = ref<QTableProps["columns"]>([
{ {
name: "no", name: "no",
@ -478,83 +727,61 @@ const columns = ref<QTableProps["columns"]>([
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
}, },
{ {
name: "typeLeave", name: "leaveYear",
align: "left", align: "left",
label: "ประเภทการลา", label: "ป",
sortable: true, sortable: true,
field: "typeLeave", field: "leaveYear",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
}, },
{ {
name: "dateStartLeave", name: "sumSick",
align: "left", align: "left",
label: "วัน เดือน ปี ที่ลา", label: "ลาป่วย",
sortable: true, sortable: true,
field: "dateStartLeave", field: "sumSick",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
}, },
{ {
name: "numLeave", name: "sumRest",
align: "right",
label: "จำนวนวันลา",
sortable: true,
field: "numLeave",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
{
name: "sumLeave",
align: "right",
label: "ลามาแล้ว",
sortable: true,
field: "sumLeave",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
{
name: "totalLeave",
align: "right",
label: "รวมเป็น",
sortable: true,
field: "totalLeave",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
{
name: "status",
align: "left", align: "left",
label: "สถานะ", label: "ลากิจและพักผ่อน",
sortable: true, sortable: true,
field: "status", field: "sumRest",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
}, },
{ {
name: "reason", name: "sumLate",
align: "right", align: "left",
label: "เหตุผล", label: "มาสาย",
sortable: true, sortable: true,
field: "reason", field: "sumLate",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "sumAbsent",
align: "left",
label: "ขาดราชการ",
sortable: true,
field: "sumAbsent",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "sumEducation",
align: "left",
label: "ลาศึกษาต่อ",
sortable: true,
field: "sumEducation",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
}, },
]); ]);
const columnsHistory = ref<QTableProps["columns"]>([ const columnsHistory = ref<QTableProps["columns"]>([
{ {
name: "no", name: "no",
@ -723,27 +950,22 @@ const fetchData = async () => {
await http await http
.get(config.API.profileLeaveId(profileId.value)) .get(config.API.profileLeaveId(profileId.value))
.then((res) => { .then((res) => {
// rows.value = data
const data = res.data.result; const data = res.data.result;
data.map((e: ResponseObject) => { data.map((e: DetailData) => {
rows.value.push({ rows.value.push({
id: e.id, id: e.id,
typeLeave: e.typeLeave, sumSick: e.sumSick ? e.sumSick : "-",
dateStartLeave: new Date(e.dateStartLeave), sumRest: e.sumRest ? e.sumRest : "-",
dateEndLeave: new Date(e.dateEndLeave), sumLate: e.sumLate ? e.sumLate : "-",
numLeave: e.numLeave, sumAbsent: e.sumAbsent ? e.sumAbsent : "-",
sumLeave: e.sumLeave, sumEducation: e.sumEducation ? e.sumEducation : "-",
totalLeave: e.totalLeave, leaveYear: e.leaveYear ? Number(e.leaveYear) + 543 : "-",
status: e.status,
reason: e.reason,
typeLeaveId:
e.typeLeaveId !== "00000000-0000-0000-0000-000000000000"
? e.typeLeaveId
: "",
}); });
}); });
}) })
.catch((e) => { .catch((e) => {
messageError($q, e); // messageError($q, e);
}) })
.finally(() => { .finally(() => {
store.isLoad++; store.isLoad++;
@ -786,18 +1008,12 @@ const clickHistory = async (row: RequestItemsObject) => {
data.map((e: ResponseObject) => { data.map((e: ResponseObject) => {
rowsHistory.value.push({ rowsHistory.value.push({
id: e.id, id: e.id,
typeLeave: e.typeLeave, sumSick: e.sumSick ? e.sumSick : "-",
dateStartLeave: new Date(e.dateStartLeave), sumRest: e.sumRest ? e.sumRest : "-",
dateEndLeave: new Date(e.dateEndLeave), sumLate: e.sumLate ? e.sumLate : "-",
numLeave: e.numLeave, sumAbsent: e.sumAbsent ? e.sumAbsent : "-",
sumLeave: e.sumLeave, sumEducation: e.sumEducation ? e.sumEducation : "-",
totalLeave: e.totalLeave, leaveYear: e.leaveYear ? e.leaveYear : "-",
status: e.status,
reason: e.reason,
typeLeaveId:
e.typeLeaveId !== "00000000-0000-0000-0000-000000000000"
? e.typeLeaveId
: "",
}); });
}); });
}) })
@ -862,13 +1078,21 @@ const getData = () => {
// agencyDay.value = row.agencyDay; // agencyDay.value = row.agencyDay;
// coupleDay.value = row.coupleDay; // coupleDay.value = row.coupleDay;
// therapyDay.value = row.therapyDay; // therapyDay.value = row.therapyDay;
id.value = row.id; formData.id = row.id;
typeLeave.value = row.typeLeaveId; formData.sumSick = row.sumSick == "-" ? "" : row.sumSick;
statLeave.value = row.status; formData.sumRest = row.sumRest == "-" ? "" : row.sumRest;
reason.value = row.reason; formData.sumLate = row.sumLate == "-" ? "" : row.sumLate;
dateRange.value = [new Date(row.dateStartLeave), new Date(row.dateEndLeave)]; formData.sumAbsent = row.sumAbsent == "-" ? "" : row.sumAbsent;
numLeave.value = row.numLeave; formData.sumEducation = row.sumEducation == "-" ? "" : row.sumEducation;
numUsedLeave.value = row.sumLeave; formData.leaveYear = row.leaveYear == "-" ? 0 : Number(row.leaveYear) - 543;
// id.value = row.id;
// typeLeave.value = row.typeLeaveId;
// statLeave.value = row.status;
// reason.value = row.reason;
// dateRange.value = [new Date(row.dateStartLeave), new Date(row.dateEndLeave)];
// numLeave.value = row.numLeave;
// numUsedLeave.value = row.sumLeave;
}; };
// /** // /**
@ -904,6 +1128,8 @@ const clickAdd = async () => {
}; };
const clickAddLeave = async () => { const clickAddLeave = async () => {
clearForm();
inputDateLaeaveYear.value = "";
editRow.value = false; editRow.value = false;
edit.value = true; edit.value = true;
modalAdd.value = true; modalAdd.value = true;
@ -960,9 +1186,13 @@ const clickSave = async () => {
myFormAdd.value.validate().then(async (result: boolean) => { myFormAdd.value.validate().then(async (result: boolean) => {
if (result) { if (result) {
if (modalEdit.value) { if (modalEdit.value) {
await editData(); // await dialogConfirm($q, () => {
editData();
// });
} else { } else {
await saveData(); // await dialogConfirm($q, () => {
saveData();
// });
} }
} }
}); });
@ -972,23 +1202,23 @@ const clickSave = async () => {
// * // *
// */ // */
const saveData = async () => { const saveData = async () => {
formData.leaveYear = (await Number(inputDateLaeaveYear.value)) - 543;
const sum = Number(numLeave.value) + Number(numUsedLeave.value); const sum = Number(numLeave.value) + Number(numUsedLeave.value);
if (profileId.value) { if (profileId.value) {
showLoader(); showLoader();
await http await http
.post(config.API.profileLeaveId(profileId.value), { .post(config.API.profileLeaveId(profileId.value), {
dateStartLeave: dateToISO(dateRange.value[0]), leaveYear: formData.leaveYear,
dateEndLeave: dateToISO(dateRange.value[1]), sumSick: formData.sumSick,
numLeave: numLeave.value, sumRest: formData.sumRest,
sumLeave: numUsedLeave.value, sumLate: formData.sumLate,
totalLeave: sum, sumAbsent: formData.sumAbsent,
status: statLeave.value, sumEducation: formData.sumEducation,
reason: reason.value,
typeLeaveId: typeLeave.value,
}) })
.then((res) => { .then((res) => {
success($q, "บันทึกข้อมูลสำเร็จ"); success($q, "บันทึกข้อมูลสำเร็จ");
modalAdd.value = false; modalAdd.value = false;
}) })
.catch((e) => { .catch((e) => {
@ -1008,15 +1238,13 @@ const editData = async () => {
showLoader(); showLoader();
await http await http
.put(config.API.profileLeaveId(id.value), { .put(config.API.profileLeaveId(formData.id), {
dateStartLeave: dateToISO(dateRange.value[0]), leaveYear: formData.leaveYear,
dateEndLeave: dateToISO(dateRange.value[1]), sumSick: formData.sumSick,
numLeave: numLeave.value, sumRest: formData.sumRest,
sumLeave: numUsedLeave.value, sumLate: formData.sumLate,
totalLeave: sum, sumAbsent: formData.sumAbsent,
status: statLeave.value, sumEducation: formData.sumEducation,
reason: reason.value,
typeLeaveId: typeLeave.value,
}) })
.then((res) => { .then((res) => {
success($q, "บันทึกข้อมูลสำเร็จ"); success($q, "บันทึกข้อมูลสำเร็จ");
@ -1033,7 +1261,7 @@ const editData = async () => {
const deleteData = async () => { const deleteData = async () => {
showLoader(); showLoader();
await http await http
.delete(config.API.profileLeaveId(id.value)) .delete(config.API.profileLeaveId(formData.id))
.then((res) => { .then((res) => {
success($q, "ลบข้อมูลสำเร็จ"); success($q, "ลบข้อมูลสำเร็จ");
modalAdd.value = false; modalAdd.value = false;
@ -1119,22 +1347,35 @@ const clickClose = async () => {
// * @param props props row // * @param props props row
// */ // */
const selectData = async (props: DataProps) => { const selectData = async (props: DataProps) => {
console.log(props);
modalEdit.value = true; modalEdit.value = true;
// modal.value = true; // modal.value = true;
modalAdd.value = true; modalAdd.value = true;
edit.value = false; edit.value = false;
rowIndex.value = props.rowIndex;
id.value = props.row.id;
typeLeave.value = props.row.typeLeaveId; rowIndex.value = props.rowIndex;
statLeave.value = props.row.status; formData.id = props.row.id;
reason.value = props.row.reason; formData.sumSick = props.row.sumSick == "-" ? "" : props.row.sumSick;
dateRange.value = [ formData.sumRest = props.row.sumRest == "-" ? "" : props.row.sumRest;
new Date(props.row.dateStartLeave), formData.sumLate = props.row.sumLate == "-" ? "" : props.row.sumLate;
new Date(props.row.dateEndLeave), formData.sumAbsent = props.row.sumAbsent == "-" ? "" : props.row.sumAbsent;
]; formData.sumEducation =
numLeave.value = props.row.numLeave; props.row.sumEducation == "-" ? "" : props.row.sumEducation;
numUsedLeave.value = props.row.sumLeave; formData.leaveYear =
props.row.leaveYear == "-" ? 0 : Number(props.row.leaveYear) - 543;
inputDateLaeaveYear.value = ((formData.leaveYear as number) + 543).toString();
// id.value = props.row.id;
// typeLeave.value = props.row.typeLeaveId;
// statLeave.value = props.row.status;
// reason.value = props.row.reason;
// dateRange.value = [
// new Date(props.row.dateStartLeave),
// new Date(props.row.dateEndLeave),
// ];
// numLeave.value = props.row.numLeave;
// numUsedLeave.value = props.row.sumLeave;
await clickTotal(); await clickTotal();
// if (rowsTotal.value.length > 0) { // if (rowsTotal.value.length > 0) {
// let data: DataOptionLeave[] = []; // let data: DataOptionLeave[] = [];
@ -1155,9 +1396,9 @@ const selectData = async (props: DataProps) => {
* กดปมเพมบน table * กดปมเพมบน table
*/ */
const addData = async () => { const addData = async () => {
// modalEdit.value = false; //modalEdit.value = false;
modal.value = true; modal.value = true;
// edit.value = true; //edit.value = true;
await clickTotal(); await clickTotal();
}; };
@ -1269,6 +1510,35 @@ const getClass = (val: boolean) => {
"full-width cursor-pointer": !val, "full-width cursor-pointer": !val,
}; };
}; };
// function selectData(data:any){
// console.log(data)
// modalAdd.value = true
// edit.value = false
// editForm.value = true
// formData.id = data.row.id
// formData.sick = data.row.sick
// formData.absence = data.row.absence
// formData.late = data.row.late
// formData.government = data.row.government
// formData.study = data.row.study
// formData.year = data.row.year
// }
function clearForm() {
formData.id = "";
formData.sumSick = "";
formData.sumRest = "";
formData.sumLate = "";
formData.sumAbsent = "";
formData.sumEducation = "";
formData.leaveYear = 0;
}
// watch(()=>modalAdd.value,()=>{
// clearForm()
// if(modalAdd.value == true){
// }
// })
</script> </script>
<style lang="scss"> <style lang="scss">
.modalfix { .modalfix {