ปรับ dialog บรรจุ

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2023-08-17 11:40:46 +07:00
parent 508fb3b02b
commit 1881aa1b2f
23 changed files with 1064 additions and 1072 deletions

View file

@ -9,7 +9,14 @@ import config from "@/app.config";
const $q = useQuasar();
const mixin = useCounterMixin(); //
const { date2Thai, hideLoader, messageError, showLoader, success } = mixin; //
const {
date2Thai,
hideLoader,
messageError,
showLoader,
success,
dialogConfirm,
} = mixin; //
const notFound = ref<string>("ไม่พบข้อมูลที่ค้นหา");
const noData = ref<string>("ไม่พบข้อมูลผังโครงสร้าง");
@ -204,16 +211,21 @@ const clickEditRow = () => {
const closeModal = () => {
if (editDataStatus.value == true) {
$q.dialog({
title: `ข้อมูลมีการแก้ไข`,
message: `ยืนยันที่จะปิดโดยไม่บันทึกใช่หรือไม่?`,
cancel: "ยกเลิก",
ok: "ยืนยัน",
persistent: true,
}).onOk(() => {
editDataStatus.value = false;
closeAndClear();
});
dialogConfirm(
$q,
() => closeAndClear(),
"ข้อมูลมีการแก้ไข",
"ยืนยันที่จะปิดโดยไม่บันทึกใช่หรือไม่"
);
// $q.dialog({
// title: ``,
// message: `?`,
// cancel: "",
// ok: "",
// persistent: true,
// }).onOk(() => {
// closeAndClear();
// });
} else {
closeAndClear();
}
@ -234,6 +246,7 @@ const closeAndClear = async () => {
// dataForm.salaryAmount = null;
// dataForm.mouthSalaryAmount = null;
// dataForm.positionSalaryAmount = null;
editDataStatus.value = false;
};
//
const posNoOptions = ref<Object[]>([
@ -431,32 +444,53 @@ function findByPerson(element: any): any {
return null;
}
const clearPosition = () => {
console.log(personal.value);
$q.dialog({
title: "ยืนยันการคืนตำแหน่ง",
message: "ต้องการยืนยันการคืนตำแหน่งนี้ใช่หรือไม่ ?",
cancel: {
flat: true,
const: "negative",
},
persistent: true,
})
.onOk(async () => {
showLoader();
await http
.post(config.API.clearPosition(personal.value.personalId), {})
.then((res: Object) => success($q, "คืนตำแหน่งสำเร็จ"))
.catch((e: Object) => {
console.log(e);
})
.finally(async () => {
hideLoader();
await closeAndClear();
});
// console.log(personal.value);
dialogConfirm(
$q,
async () => postClearPosition(),
"ยืนยันการคืนตำแหน่ง",
"ต้องการยืนยันการคืนตำแหน่งนี้ใช่หรือไม่ ?"
);
// $q.dialog({
// title: "",
// message: " ?",
// cancel: {
// flat: true,
// const: "negative",
// },
// persistent: true,
// })
// .onOk(async () => {
// showLoader();
// await http
// .post(config.API.clearPosition(personal.value.personalId), {})
// .then((res: Object) => success($q, ""))
// .catch((e: Object) => {
// console.log(e);
// })
// .finally(async () => {
// hideLoader();
// await closeAndClear();
// });
// })
// .onCancel(() => {})
// .onDismiss(() => {});
};
const postClearPosition = async () => {
showLoader();
await http
.post(config.API.clearPosition(personal.value.personalId), {})
.then(() => {
success($q, "คืนตำแหน่งสำเร็จ");
})
.onCancel(() => {})
.onDismiss(() => {});
.catch((e: Object) => {
console.log(e);
})
.finally(async () => {
hideLoader();
await closeAndClear();
});
};
</script>

View file

@ -43,7 +43,14 @@ const files = ref<any>(null);
const mixin = useCounterMixin(); //
const $q = useQuasar(); // show dialog
const { messageError, showLoader, hideLoader, dateText, success } = mixin;
const {
messageError,
showLoader,
hideLoader,
dateText,
success,
dialogConfirm,
} = mixin;
const route = useRoute();
const examId = route.params.examId;
@ -273,84 +280,85 @@ const appointModal = ref<boolean>(false);
const saveDeferment = async () => {
myForm.value.validate().then(async (result: boolean) => {
if (result) {
const formData = new FormData();
formData.append("personalId", personalId.value);
formData.append("note", userNote.value);
formData.append("files", files.value[0]);
$q.dialog({
title: "ยืนยันการขอผ่อนผัน",
message: "ต้องการยืนยันการขอผ่อนผันข้อมูลนี้ใช่หรือไม่ ?",
cancel: {
flat: true,
const: "negative",
},
persistent: true,
})
.onOk(async () => {
showLoader();
console.log("ยืนยันการขอผ่อนผัน");
await http
.post(config.API.deferment(), formData)
.then(() => {
success($q, "บันทึกสำเร็จ");
})
.catch((e) => {
console.log(e);
})
.finally(async () => {
await getTable();
props.statCard();
userNote.value = "";
modalDefermentDisclaim.value = false;
hideLoader();
});
})
.onCancel(() => {})
.onDismiss(() => {});
dialogConfirm(
$q,
async () => await postDeferment(),
"ยืนยันการขอผ่อนผัน",
"ต้องการยืนยันการขอผ่อนผันข้อมูลนี้ใช่หรือไม่ ?"
);
// $q.dialog({
// title: "",
// message: " ?",
// cancel: {
// flat: true,
// const: "negative",
// },
// persistent: true,
// })
// .onOk(async () => {})
// .onCancel(() => {})
// .onDismiss(() => {});
}
});
};
const postDeferment = async () => {
const formData = new FormData();
formData.append("personalId", personalId.value);
formData.append("note", userNote.value);
formData.append("files", files.value[0]);
showLoader();
await http
.post(config.API.deferment(), formData)
.then(() => {
success($q, "บันทึกสำเร็จ");
})
.catch((e) => {
console.log(e);
})
.finally(async () => {
await getTable();
props.statCard();
userNote.value = "";
modalDefermentDisclaim.value = false;
hideLoader();
});
};
const saveDisclaim = async () => {
myForm.value.validate().then(async (result: boolean) => {
if (result) {
// showLoader();
const dataPost = {
note: userNote.value,
personId: personalId.value,
};
$q.dialog({
title: "ยืนยันการสละสิทธิ์",
message: "ต้องการยืนยันการสละสิทธิ์ข้อมูลนี้ใช่หรือไม่ ?",
cancel: {
flat: true,
const: "negative",
},
})
.onOk(async () => {
showLoader();
console.log("ยืนยันการสละสิทธิ์");
await http
.post(config.API.disclaimF(), {
note: dataPost.note,
personalId: dataPost.personId,
})
.then(() => {
success($q, "บันทึกสำเร็จ");
})
.finally(async () => {
await getTable();
props.statCard();
userNote.value = "";
modalDefermentDisclaim.value = false;
hideLoader();
});
})
.onCancel(() => {})
.onDismiss(() => {});
dialogConfirm(
$q,
async () => await postDisclaimf(),
"ยืนยันการสละสิทธิ์",
"ต้องการยืนยันการสละสิทธิ์ข้อมูลนี้ใช่หรือไม่ ?"
);
}
});
};
const postDisclaimf = async () => {
const dataPost = {
note: userNote.value,
personId: personalId.value,
};
showLoader();
console.log("ยืนยันการสละสิทธิ์");
await http
.post(config.API.disclaimF(), {
note: dataPost.note,
personalId: dataPost.personId,
})
.then(() => {
success($q, "บันทึกสำเร็จ");
})
.finally(async () => {
await getTable();
props.statCard();
userNote.value = "";
modalDefermentDisclaim.value = false;
hideLoader();
});
};
const clickEditRow = () => {
editRow.value = true;
@ -371,7 +379,6 @@ const selectData = (pid: string) => {
router.push("/placement/personal-detail/" + pid);
}
};
const getNumFile = ref(0);
const dataInfo = reactive({
reason: "",
@ -456,19 +463,19 @@ const clickCloseSendModal = () => {
const clickClose = async () => {
userNote.value = "";
if (editRow.value == true) {
$q.dialog({
title: `ข้อมูลมีการแก้ไข`,
message: `ยืนยันที่จะปิดโดยไม่บันทึกใช่หรือไม่?`,
cancel: "ยกเลิก",
ok: "ยืนยัน",
persistent: true,
}).onOk(async () => {
modalDefermentDisclaim.value = false;
modalwaitInfo.value = false;
modal.value = false;
files.value = null;
});
dialogConfirm(
$q,
() => {
modalDefermentDisclaim.value = false;
modalwaitInfo.value = false;
modal.value = false;
files.value = null;
},
`ข้อมูลมีการแก้ไข`,
`ยืนยันที่จะปิดโดยไม่บันทึกใช่หรือไม่?`
);
} else {
modalDefermentDisclaim.value = false;
modalwaitInfo.value = false;
@ -587,6 +594,7 @@ const paginationLabel = (start: number, end: number, total: number) => {
:saveNoDraft="true"
:role-admin="roleAdmin"
:displayAdd="displayAdd"
row-key="fullname"
>
<template #columns="props">
<q-tr :props="props">
@ -604,21 +612,21 @@ const paginationLabel = (start: number, end: number, total: number) => {
v-else-if="col.name === 'fullName'"
class="table_ellipsis"
>
<div
class="row col-12 text-no-wrap items-center"
style="width: 270px"
>
<img
v-if="props.row.avatar == null"
src="@/assets/avatar_user.jpg"
class="col-4 img-info"
/>
<img v-else :src="props.row.avatar" class="col-4 img-info" />
<div class="col-4">
<q-item v-ripple>
<q-item-section avatar>
<img
v-if="props.row.avatar == null"
src="@/assets/avatar_user.jpg"
class="col-4 img-info"
/>
<img v-else :src="props.row.avatar" class="col-4 img-info" />
</q-item-section>
<q-item-section>
<div class="text-weight-medium">{{ props.row.name }}</div>
<div class="text-weight-light">{{ props.row.idCard }}</div>
</div>
</div>
</q-item-section>
</q-item>
</template>
<template v-else-if="col.name === 'examNumber'">
<div class="text-weight-medium">