2024-09-10 18:03:01 +07:00
|
|
|
<script setup lang="ts">
|
2024-09-25 17:49:50 +07:00
|
|
|
import { reactive, watch } from "vue";
|
2024-09-10 18:03:01 +07:00
|
|
|
import { useQuasar } from "quasar";
|
|
|
|
|
|
2024-09-25 17:49:50 +07:00
|
|
|
import http from "@/plugins/http";
|
|
|
|
|
import config from "@/app.config";
|
2024-09-10 18:03:01 +07:00
|
|
|
import { useCounterMixin } from "@/stores/mixin";
|
|
|
|
|
|
|
|
|
|
import DialogHeader from "@/components/DialogHeader.vue";
|
|
|
|
|
import CurruncyInput from "@/components/CurruncyInput.vue";
|
|
|
|
|
|
|
|
|
|
const $q = useQuasar();
|
2024-09-25 17:49:50 +07:00
|
|
|
const { dialogConfirm, messageError, success } = useCounterMixin();
|
2024-09-10 18:03:01 +07:00
|
|
|
|
2024-09-25 17:49:50 +07:00
|
|
|
const props = defineProps({
|
|
|
|
|
getData: Function,
|
|
|
|
|
selectPersonData: Object,
|
|
|
|
|
});
|
2024-09-10 18:03:01 +07:00
|
|
|
const modal = defineModel<boolean>("modal", { required: true });
|
|
|
|
|
const titleName = defineModel<string>("titleName", { required: true });
|
2024-09-25 17:49:50 +07:00
|
|
|
const commandEditRecive = defineModel<string>("commandEditRecive", {
|
|
|
|
|
required: true,
|
|
|
|
|
});
|
2024-09-10 18:03:01 +07:00
|
|
|
|
|
|
|
|
const formData = reactive({
|
|
|
|
|
salaryAmount: 0,
|
|
|
|
|
positionSalaryAmount: 0,
|
|
|
|
|
monthSalaryAmount: 0,
|
|
|
|
|
remarkVertical: null,
|
|
|
|
|
remarkHorizontal: null,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function onSubmit() {
|
|
|
|
|
dialogConfirm($q, () => {
|
2024-09-25 17:49:50 +07:00
|
|
|
http
|
|
|
|
|
.put(config.API.commandEditRecive("tab2", commandEditRecive.value), {
|
|
|
|
|
mouthSalaryAmount: formData.salaryAmount, //เงินเดือน
|
|
|
|
|
positionSalaryAmount: formData.positionSalaryAmount, //เงินประจำตำแหน่ง
|
|
|
|
|
amount: formData.monthSalaryAmount, //เงินค่าตอบแทนรายเดือน
|
2024-09-26 11:21:26 +07:00
|
|
|
remarkVertical: formData.remarkVertical, //หมายเหตุแนวตั้ง
|
|
|
|
|
remarkHorizontal: formData.remarkHorizontal, //หมายเหตุแนวนอน
|
2024-09-25 17:49:50 +07:00
|
|
|
})
|
|
|
|
|
.then((res) => {
|
|
|
|
|
success($q, "บันทึกข้อมูลสำเร็จ");
|
|
|
|
|
onClose();
|
|
|
|
|
props.getData?.();
|
|
|
|
|
})
|
|
|
|
|
.catch((e) => {
|
|
|
|
|
messageError($q, e);
|
|
|
|
|
})
|
|
|
|
|
.finally(() => {});
|
2024-09-10 18:03:01 +07:00
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function onClose() {
|
|
|
|
|
modal.value = false;
|
|
|
|
|
formData.salaryAmount = 0;
|
|
|
|
|
formData.positionSalaryAmount = 0;
|
|
|
|
|
formData.monthSalaryAmount = 0;
|
|
|
|
|
formData.remarkVertical = null;
|
|
|
|
|
formData.remarkHorizontal = null;
|
|
|
|
|
}
|
2024-09-25 17:49:50 +07:00
|
|
|
|
|
|
|
|
watch(
|
|
|
|
|
() => modal.value,
|
|
|
|
|
() => {
|
|
|
|
|
if (modal.value) {
|
|
|
|
|
if (props.selectPersonData) {
|
|
|
|
|
const list = props.selectPersonData;
|
|
|
|
|
formData.salaryAmount = list.mouthSalaryAmount;
|
|
|
|
|
formData.positionSalaryAmount = list.positionSalaryAmount;
|
|
|
|
|
formData.monthSalaryAmount = list.amount;
|
|
|
|
|
formData.remarkVertical = list.remarkVertical;
|
|
|
|
|
formData.remarkHorizontal = list.remarkHorizontal;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
);
|
2024-09-10 18:03:01 +07:00
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<template>
|
|
|
|
|
<q-dialog v-model="modal" persistent>
|
|
|
|
|
<q-card style="width: 50vw; max-width: 50vw">
|
|
|
|
|
<q-form q-form greedy @submit.prevent @validation-success="onSubmit">
|
|
|
|
|
<DialogHeader :tittle="titleName" :close="onClose" />
|
|
|
|
|
<q-separator />
|
|
|
|
|
<q-card-section>
|
|
|
|
|
<div class="row col-12 q-col-gutter-sm">
|
|
|
|
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
|
|
|
|
<CurruncyInput
|
|
|
|
|
:edit="true"
|
|
|
|
|
:dense="true"
|
|
|
|
|
v-model="formData.salaryAmount"
|
|
|
|
|
:label="`${'เงินเดือน'}`"
|
|
|
|
|
:rules="[(val: any) => !!val || `${'กรุณากรอกเงินเดือน'}`]"
|
|
|
|
|
hide-bottom-space
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
|
|
|
|
<CurruncyInput
|
|
|
|
|
:edit="true"
|
|
|
|
|
:dense="true"
|
|
|
|
|
v-model="formData.positionSalaryAmount"
|
|
|
|
|
:label="`${'เงินประจำตำแหน่ง'}`"
|
|
|
|
|
hide-bottom-space
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
|
|
|
|
<CurruncyInput
|
|
|
|
|
:edit="true"
|
|
|
|
|
:dense="true"
|
|
|
|
|
v-model="formData.monthSalaryAmount"
|
|
|
|
|
:label="`${'เงินค่าตอบแทนรายเดือน'}`"
|
|
|
|
|
hide-bottom-space
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-xs-6 col-sm-6 col-md-12">
|
|
|
|
|
<q-input
|
|
|
|
|
dense
|
|
|
|
|
outlined
|
|
|
|
|
v-model="formData.remarkVertical"
|
|
|
|
|
label="หมายเหตุแนวตั้ง"
|
|
|
|
|
type="textarea"
|
|
|
|
|
rows="2"
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-xs-6 col-sm-6 col-md-12">
|
|
|
|
|
<q-input
|
|
|
|
|
dense
|
|
|
|
|
outlined
|
|
|
|
|
v-model="formData.remarkHorizontal"
|
|
|
|
|
type="textarea"
|
|
|
|
|
label="หมายเหตุแนวนอน"
|
|
|
|
|
rows="2"
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</q-card-section>
|
|
|
|
|
<q-separator />
|
|
|
|
|
<q-card-actions align="right">
|
|
|
|
|
<q-btn label="บันทึก" color="public" type="submit">
|
|
|
|
|
<q-tooltip>บันทึก</q-tooltip>
|
|
|
|
|
</q-btn>
|
|
|
|
|
</q-card-actions>
|
|
|
|
|
</q-form>
|
|
|
|
|
</q-card>
|
|
|
|
|
</q-dialog>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<style scoped></style>
|