diff --git a/src/modules/13_salary/components/SalaryRound/DialogForm.vue b/src/modules/13_salary/components/SalaryRound/DialogForm.vue index 4774dd119..f40497d21 100644 --- a/src/modules/13_salary/components/SalaryRound/DialogForm.vue +++ b/src/modules/13_salary/components/SalaryRound/DialogForm.vue @@ -15,8 +15,11 @@ const $q = useQuasar(); const isActive = ref(false); const period = ref(""); const modal = defineModel("modal", { required: true }); -const effective = defineModel("effective", { required: true }); -const year = defineModel("year"); +const effective = defineModel("effective", { + required: true, +}); +const isRead = defineModel("isRead", { required: true }); +const year = defineModel("year"); const mixin = useCounterMixin(); const { dialogConfirm, date2Thai, messageError } = mixin; const isReadonly = ref(false); // อ่านได้อย่างเดียว @@ -43,6 +46,7 @@ const props = defineProps({ period: String, effectiveDate: Date, isActive: Boolean, + isRead: Boolean, }); /*** ฟังก์ชั่นสำหรับ validate ฟอร์ม */ function validateForm() { @@ -58,9 +62,9 @@ function validateForm() { } if (hasError.every((result) => result === true)) { - if(props.edit == true){ + if (props.edit == true) { editSummit(); - }else{ + } else { onSubmit(); } } @@ -71,7 +75,8 @@ function clearForm() { isActive.value = false; period.value = ""; effective.value = null; - year.value = 0 + year.value = 0; + isRead.value = false; } function close() { @@ -79,7 +84,7 @@ function close() { clearForm(); } -function editSummit(){ +function editSummit() { dialogConfirm($q, () => { const body = { period: period.value, @@ -88,7 +93,7 @@ function editSummit(){ year: year.value, }; http - .put(config.API.salaryPeriod()+`/${props.idRound}`, body) + .put(config.API.salaryPeriod() + `/${props.idRound}`, body) .then((res) => { modal.value = false; clearForm(); @@ -133,16 +138,16 @@ function inputEdit(val: boolean) { watch( () => modal.value, () => { - console.log(props.edit) + console.log(props.edit); if (props.edit == true) { - period.value = props.period ? props.period :''; - effectiveDate.value = props.effectiveDate ? props.effectiveDate:null; + period.value = props.period ? props.period : ""; + effectiveDate.value = props.effectiveDate ? props.effectiveDate : null; isActive.value = props.isActive; - }else{ - year.value = 0 - effective.value = null - period.value = '' - isActive.value = false + } else { + year.value = 0; + effective.value = null; + period.value = ""; + isActive.value = false; } } ); @@ -161,47 +166,46 @@ watch(
- - - - - - + + + + + @@ -240,7 +244,7 @@ watch( outlined dense :class="inputEdit(isReadonly)" - :readonly="isReadonly" + :readonly="isRead" hide-bottom-space :model-value=" effective != null ? date2Thai(effective as Date) : null @@ -264,16 +268,16 @@ watch(

สถานะการใช้งาน

-
- -
+ + diff --git a/src/modules/13_salary/views/salaryRound.vue b/src/modules/13_salary/views/salaryRound.vue index 470763df8..fd3d0a55c 100644 --- a/src/modules/13_salary/views/salaryRound.vue +++ b/src/modules/13_salary/views/salaryRound.vue @@ -14,7 +14,15 @@ import { useQuasar } from "quasar"; const idRound = ref(""); const $q = useQuasar(); const mixin = useCounterMixin(); -const { dialogRemove, showLoader, hideLoader, messageError,date2Thai } = mixin; +const { + dialogRemove, + showLoader, + hideLoader, + messageError, + date2Thai, + dateToISO, + dialogConfirm, +} = mixin; const dataStore = useSalaryDataStore(); const year = ref(0); const filterKeyword = ref(""); @@ -23,9 +31,10 @@ const editCheck = ref(false); const dialog = ref(false); const period = ref(""); const isActive = ref(false); +const isRead = ref(false); const effectiveDate = ref(null); -const yearData = ref(0) +const yearData = ref(0); const maxPage = ref(1); const currentPage = ref(1); const page = ref(1); @@ -95,7 +104,7 @@ const columns = ref([ function clickAdd() { dialog.value = true; - editCheck.value = false + editCheck.value = false; } /** ดึงข้อมูลเริ่มต้น */ function getData() { @@ -151,17 +160,39 @@ function deleteData(id: string) { }); } -function editPopup(data:RowList) { - console.log(data) +function editPopup(data: RowList, status: string) { + console.log(data); + if (status == "read") { + isRead.value = true; + } editCheck.value = true; dialog.value = true; - console.log(dialog.value) + console.log(dialog.value); idRound.value = data.id; - period.value = data.period ? data.period:''; - yearData.value = data.year ? data.year:0; + period.value = data.period ? data.period : ""; + yearData.value = data.year ? data.year : 0; effectiveDate.value = data.effectiveDate as Date; - isActive.value = data.isActive ? data.isActive:false; + isActive.value = data.isActive ? data.isActive : false; } +/** ปิดรอบ */ +function dialogClose(id: string) { + dialogConfirm( + $q, + () => { + // http + // .put(config.API) + // .then((res) => {}) + // .catch((e) => { + // messageError($q, e); + // }) + // .finally(() => { + // }); + }, + "ยืนยันการปิดรอบ", + "หากปิดรอบแล้วจะไม่สามารถแก้ไขรายการเงินเดือนของรอบนี้ได้ ต้องการยืนยันการปิดรอบนี้ใช่หรือไม่?" + ); +} + onMounted(async () => { year.value = new Date().getFullYear(); getData(); @@ -324,13 +355,13 @@ onMounted(async () => { }}
- {{ date2Thai(props.row.effectiveDate)}} + {{ date2Thai(props.row.effectiveDate) }}
- {{ props.row.year ? props.row.year + 543:'-'}} + {{ props.row.year ? props.row.year + 543 : "-" }}
- {{ dataStore.statusTothai(props.row.period)}} + {{ dataStore.statusTothai(props.row.period) }}
{ round class="q-mr-xs" size="12px" - icon="edit" + :icon=" + dateToISO(new Date()) >= dateToISO(props.row.effectiveDate) + ? 'mdi-eye-outline' + : 'edit' + " clickable - @click="editPopup(props.row)" + @click=" + dateToISO(new Date()) >= dateToISO(props.row.effectiveDate) + ? editPopup(props.row, 'read') + : editPopup(props.row, 'edit') + " > - แก้ไขข้อมูล + {{ + dateToISO(new Date()) >= dateToISO(props.row.effectiveDate) + ? "ดูข้อมูล" + : "แก้ไขข้อมูล" + }} { dense round size="12px" - icon="mdi-delete" + :icon=" + dateToISO(new Date()) >= dateToISO(props.row.effectiveDate) + ? 'mdi-close-box' + : 'mdi-delete' + " clickable @click.stop=" - dialogRemove($q, async () => await deleteData(props.row.id)) + dateToISO(new Date()) >= dateToISO(props.row.effectiveDate) + ? dialogClose(props.row.id) + : dialogRemove( + $q, + async () => await deleteData(props.row.id) + ) " v-close-popup > - ลบข้อมูล + {{ + dateToISO(new Date()) >= dateToISO(props.row.effectiveDate) + ? "ปิดรอบ" + : "ลบข้อมูล" + }} @@ -394,6 +450,7 @@ onMounted(async () => { :period="period" v-model:effective="effectiveDate" :isActive="isActive" + v-model:is-read="isRead" v-model:year="yearData" />