เงินเดือน => permission ผังบัญชีค่าจ้างลูกจ้างประจำ
This commit is contained in:
parent
864b67fbe5
commit
38d5697a7c
9 changed files with 323 additions and 252 deletions
|
|
@ -22,6 +22,7 @@ const { dialogConfirm, showLoader, hideLoader, messageError, success } =
|
|||
|
||||
/** props*/
|
||||
const modal = defineModel<boolean>("modal", { required: true });
|
||||
const actionsType = defineModel<string>("actionsType", { default: "" });
|
||||
const isEdit = defineModel<boolean>("isStatusEdit", { required: true });
|
||||
const props = defineProps({
|
||||
data: {
|
||||
|
|
@ -39,6 +40,7 @@ const groupOldOp = ref<DataOptions[]>([]);
|
|||
const groupOldOpMain = ref<DataOptions[]>([]);
|
||||
const posLevelOp = ref<any[]>([]);
|
||||
const posNameListOp = ref<DataListOptions[]>([]);
|
||||
const isReadonly = ref<boolean>(false);
|
||||
|
||||
const formData = reactive<any>({
|
||||
id: "",
|
||||
|
|
@ -104,10 +106,10 @@ function onSubmit() {
|
|||
? config.API.salaryFormula()
|
||||
: config.API.salaryFormulaById(formData.id);
|
||||
await http[!isEdit.value ? "post" : "put"](url, body)
|
||||
.then(() => {
|
||||
success($q, "บันทึกข้อมูลสำเร็จ");
|
||||
.then(async () => {
|
||||
await props.getDataMain?.();
|
||||
closeDialog();
|
||||
props.getDataMain?.();
|
||||
await success($q, "บันทึกข้อมูลสำเร็จ");
|
||||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e);
|
||||
|
|
@ -120,7 +122,6 @@ function onSubmit() {
|
|||
|
||||
/** ดึงข้อมูล กลุ่มงาน */
|
||||
function getPosType() {
|
||||
showLoader();
|
||||
http
|
||||
.get(config.API.salaryEmployeePosType())
|
||||
.then((res) => {
|
||||
|
|
@ -134,9 +135,6 @@ function getPosType() {
|
|||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -145,7 +143,6 @@ function getPosName() {
|
|||
if (formData.posType) {
|
||||
formData.posName = "";
|
||||
formData.posLevel = "";
|
||||
showLoader();
|
||||
http
|
||||
.get(config.API.salaryEmployeePositionType(formData.posType.name))
|
||||
.then((res) => {
|
||||
|
|
@ -162,9 +159,6 @@ function getPosName() {
|
|||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -238,26 +232,37 @@ function getSalaryGroup() {
|
|||
|
||||
/** function fetch ข้อมูลหลักเกณฑ์ */
|
||||
function getDataEdit() {
|
||||
http.get(config.API.salaryFormula() + `/${formData.id}`).then(async (res) => {
|
||||
const data = res.data.result;
|
||||
formData.posType = posTypeOp.value.find((a: any) => a.id == data.posTypeId);
|
||||
formData.posName = data.position;
|
||||
getPosNameEdit();
|
||||
setTimeout(() => {
|
||||
getPosLevelEdit();
|
||||
formData.posLevel = posLevelOp.value.find(
|
||||
(item: any) => item.id == data.posLevelId
|
||||
showLoader();
|
||||
http
|
||||
.get(config.API.salaryFormula() + `/${formData.id}`)
|
||||
.then(async (res) => {
|
||||
const data = res.data.result;
|
||||
formData.posType = posTypeOp.value.find(
|
||||
(a: any) => a.id == data.posTypeId
|
||||
);
|
||||
formData.reson = data.details;
|
||||
formData.rateOldMin = data.salaryMin;
|
||||
formData.groupOld = groupOldOp.value.filter((b: any) =>
|
||||
data.salaryEmployeeMinIds.includes(b.id)
|
||||
);
|
||||
formData.rateMaxOld = data.salary;
|
||||
formData.groupRateHigh = data.salaryEmployeeId;
|
||||
formData.rateHighMax = data.salaryMax;
|
||||
}, 200);
|
||||
});
|
||||
formData.posName = data.position;
|
||||
getPosNameEdit();
|
||||
setTimeout(() => {
|
||||
getPosLevelEdit();
|
||||
formData.posLevel = posLevelOp.value.find(
|
||||
(item: any) => item.id == data.posLevelId
|
||||
);
|
||||
formData.reson = data.details;
|
||||
formData.rateOldMin = data.salaryMin;
|
||||
formData.groupOld = groupOldOp.value.filter((b: any) =>
|
||||
data.salaryEmployeeMinIds.includes(b.id)
|
||||
);
|
||||
formData.rateMaxOld = data.salary;
|
||||
formData.groupRateHigh = data.salaryEmployeeId;
|
||||
formData.rateHighMax = data.salaryMax;
|
||||
}, 200);
|
||||
})
|
||||
.catch(() => {})
|
||||
.finally(() => {
|
||||
setTimeout(() => {
|
||||
hideLoader();
|
||||
}, 1500);
|
||||
});
|
||||
}
|
||||
watch(
|
||||
() => modal.value,
|
||||
|
|
@ -267,8 +272,11 @@ watch(
|
|||
getSalaryGroup();
|
||||
|
||||
if (isEdit.value) {
|
||||
isReadonly.value = actionsType.value === "view" ? true : false;
|
||||
formData.id = props.data?.id ? props.data.id : null;
|
||||
getDataEdit();
|
||||
} else {
|
||||
isReadonly.value = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -328,7 +336,13 @@ const getClass = (val: boolean) => {
|
|||
<q-card class="col-12" style="width: 80%">
|
||||
<q-form greedy @submit.prevent @validation-success="onSubmit">
|
||||
<Header
|
||||
:tittle="isEdit ? 'แก้ไขหลักเกณฑ์' : 'เพิ่มหลักเกณฑ์'"
|
||||
:tittle="
|
||||
isEdit && actionsType === 'view'
|
||||
? 'รายละเอียด'
|
||||
: isEdit
|
||||
? 'แก้ไขหลักเกณฑ์'
|
||||
: 'เพิ่มหลักเกณฑ์'
|
||||
"
|
||||
:close="closeDialog"
|
||||
/>
|
||||
<q-separator />
|
||||
|
|
@ -338,7 +352,8 @@ const getClass = (val: boolean) => {
|
|||
<div class="col-4">
|
||||
<q-select
|
||||
ref="posTypeRef"
|
||||
:class="getClass(true)"
|
||||
:class="getClass(!isReadonly)"
|
||||
:readonly="isReadonly"
|
||||
dense
|
||||
outlined
|
||||
v-model="formData.posType"
|
||||
|
|
@ -366,9 +381,9 @@ const getClass = (val: boolean) => {
|
|||
<div class="col-4">
|
||||
<q-select
|
||||
ref="posNameRef"
|
||||
:class="getClass(true)"
|
||||
:class="getClass(!isReadonly)"
|
||||
:readonly="isReadonly || formData.posType"
|
||||
dense
|
||||
:readonly="formData.posType"
|
||||
outlined
|
||||
v-model="formData.posName"
|
||||
label="ตำแหน่ง"
|
||||
|
|
@ -394,8 +409,8 @@ const getClass = (val: boolean) => {
|
|||
</div>
|
||||
<div class="col-4">
|
||||
<q-select
|
||||
:readonly="formData.posName"
|
||||
:class="getClass(true)"
|
||||
:class="getClass(!isReadonly)"
|
||||
:readonly="isReadonly || formData.posName"
|
||||
ref="posLevelRef"
|
||||
dense
|
||||
outlined
|
||||
|
|
@ -419,20 +434,23 @@ const getClass = (val: boolean) => {
|
|||
</q-select>
|
||||
</div>
|
||||
|
||||
<div class="col-8">
|
||||
<div class="col-12">
|
||||
<q-input
|
||||
:class="getClass(true)"
|
||||
:class="getClass(!isReadonly)"
|
||||
:readonly="isReadonly"
|
||||
dense
|
||||
outlined
|
||||
v-model="formData.reson"
|
||||
label="หมายเหตุ"
|
||||
type="textarea"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="col-12 text-bold">อัตราค่าจ้าง</div>
|
||||
<div class="col-4">
|
||||
<q-input
|
||||
:class="getClass(true)"
|
||||
:class="getClass(!isReadonly)"
|
||||
:readonly="isReadonly"
|
||||
ref="rateOldMinRef"
|
||||
dense
|
||||
outlined
|
||||
|
|
@ -449,7 +467,8 @@ const getClass = (val: boolean) => {
|
|||
</div>
|
||||
<div class="col-4">
|
||||
<q-select
|
||||
:class="getClass(true)"
|
||||
:class="getClass(!isReadonly)"
|
||||
:readonly="isReadonly"
|
||||
ref="groupOldRef"
|
||||
dense
|
||||
outlined
|
||||
|
|
@ -481,7 +500,8 @@ const getClass = (val: boolean) => {
|
|||
</div>
|
||||
<div class="col-4">
|
||||
<q-input
|
||||
:class="getClass(true)"
|
||||
:class="getClass(!isReadonly)"
|
||||
:readonly="isReadonly"
|
||||
ref="rateMaxOldRef"
|
||||
dense
|
||||
outlined
|
||||
|
|
@ -503,7 +523,8 @@ const getClass = (val: boolean) => {
|
|||
</div>
|
||||
<div class="col-4">
|
||||
<q-select
|
||||
:class="getClass(true)"
|
||||
:class="getClass(!isReadonly)"
|
||||
:readonly="isReadonly"
|
||||
ref="groupRateHighRef"
|
||||
dense
|
||||
outlined
|
||||
|
|
@ -533,7 +554,8 @@ const getClass = (val: boolean) => {
|
|||
</div>
|
||||
<div class="col-4">
|
||||
<q-input
|
||||
:class="getClass(true)"
|
||||
:class="getClass(!isReadonly)"
|
||||
:readonly="isReadonly"
|
||||
ref="rateHighMaxRef"
|
||||
dense
|
||||
outlined
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue