เพิ่มข้อความแจ้งเตือน เลือกคุณสมบัติ

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-01-17 10:32:17 +07:00
parent c3191c2fb4
commit ecaaacbe1d
4 changed files with 82 additions and 54 deletions

View file

@ -103,10 +103,7 @@ async function fetchDataCalendar() {
const eventData = filterVal.value.map((item: any) => { const eventData = filterVal.value.map((item: any) => {
return mainData.value return mainData.value
.filter( .filter(
(e: DataCalendar) => (e: DataCalendar) => e.keycloakId === item && e.status === "APPROVE"
e.keycloakId === item &&
e.status != "REJECT" &&
e.status != "DELETE"
) )
.map((e) => ({ .map((e) => ({
id: e.id, id: e.id,
@ -246,10 +243,7 @@ watch(
const eventData = filterVal.value.map((item: any) => { const eventData = filterVal.value.map((item: any) => {
return mainData.value return mainData.value
.filter( .filter(
(e: DataCalendar) => (e: DataCalendar) => e.keycloakId === item && e.status === "APPROVE"
e.keycloakId === item &&
e.status != "REJECT" &&
e.status != "DELETE"
) )
.map((e) => ({ .map((e) => ({
id: e.id, id: e.id,

View file

@ -41,7 +41,13 @@ const mixin = useCounterMixin();
const $q = useQuasar(); const $q = useQuasar();
const splitterModel = 20; const splitterModel = 20;
const { showLoader, hideLoader, messageError, dialogConfirm } = mixin; const {
showLoader,
hideLoader,
messageError,
dialogConfirm,
dialogMessageNotify,
} = mixin;
const externalLink = const externalLink =
"https://accreditation.ocsc.go.th/accreditation/search/curriculum"; "https://accreditation.ocsc.go.th/accreditation/search/curriculum";
@ -56,14 +62,18 @@ function onClickPopupHistory() {
/** function NextToStep*/ /** function NextToStep*/
async function onCilckNextStep() { async function onCilckNextStep() {
const functionCreateDoc: (() => Promise<void>) | null = const functionCreateDoc: (() => Promise<void>) | null =
store.step === 1 // store.step === 1
? await saveStep1 // ? await saveStep1
: store.step === 3 // :
store.step === 3
? await saveStep3 ? await saveStep3
: store.step === 7 : store.step === 7
? await saveStep7 ? await saveStep7
: null; : null;
store.step === 2 || store.step === 6
store.step === 1
? checkSelectForm()
: store.step === 2 || store.step === 6
? validateForm() ? validateForm()
: store.step == 3 || store.step == 7 : store.step == 3 || store.step == 7
? dialogConfirm( ? dialogConfirm(
@ -74,16 +84,7 @@ async function onCilckNextStep() {
"ยืนยันการยื่นเอกสาร", "ยืนยันการยื่นเอกสาร",
"ต้องการยืนยันการยื่นเอกสารใช่หรือไม่? หากยืนยันแล้วคุณจะไม่สามารถกลับมาแก้ไขเอกสารได้อีก" "ต้องการยืนยันการยื่นเอกสารใช่หรือไม่? หากยืนยันแล้วคุณจะไม่สามารถกลับมาแก้ไขเอกสารได้อีก"
) )
: store.step < 9 && : null;
dialogConfirm(
$q,
async () => {
showLoader();
await functionCreateDoc?.();
},
"ยืนยันการดำเนินการ",
"ต้องการยืนยันการดำเนินการต่อใช่หรือไม่?"
);
} }
/** function validateForm Step 2,4*/ /** function validateForm Step 2,4*/
@ -187,6 +188,7 @@ const formSpec = reactive<FormSpec>({
}); });
const formDetail = ref<any>(); const formDetail = ref<any>();
const formDataStep1 = ref<PersonInformation>(); const formDataStep1 = ref<PersonInformation>();
/** /**
* function เรยกขอมลตรวจสอบคณสมบ * function เรยกขอมลตรวจสอบคณสมบ
* @param id id ประเม * @param id id ประเม
@ -222,6 +224,7 @@ async function updateCheckSpec(data: FormSpec) {
formSpec.isHaveProLicense = data.isHaveProLicense; formSpec.isHaveProLicense = data.isHaveProLicense;
formSpec.isHaveMinPeriodOrHoldPos = data.isHaveMinPeriodOrHoldPos; formSpec.isHaveMinPeriodOrHoldPos = data.isHaveMinPeriodOrHoldPos;
} }
/** /**
* funciton ปเดทขอมลสวนต * funciton ปเดทขอมลสวนต
* @param data อมลสวนต * @param data อมลสวนต
@ -229,6 +232,21 @@ async function updateCheckSpec(data: FormSpec) {
function updateFormDetail(data: any) { function updateFormDetail(data: any) {
formDetail.value = data; formDetail.value = data;
} }
/** function เช็คการการคุณสมบัติ*/
function checkSelectForm() {
const isTrue = Object.keys(formSpec).find((key) => formSpec[key] === true);
isTrue
? dialogConfirm(
$q,
async () => {
showLoader();
saveStep1();
},
"ยืนยันการดำเนินการ",
"ต้องการยืนยันการดำเนินการต่อใช่หรือไม่?"
)
: dialogMessageNotify($q, "กรุณาเลือกคุณสมบัติ");
}
/** function บันทักตรวจสอบคุณสมบัติ*/ /** function บันทักตรวจสอบคุณสมบัติ*/
async function saveStep1() { async function saveStep1() {
const salaries = formDetail.value.trainings.map((e: any) => ({ const salaries = formDetail.value.trainings.map((e: any) => ({
@ -579,7 +597,7 @@ onMounted(async () => {
<q-card bordered class="col-12 row caedNone"> <q-card bordered class="col-12 row caedNone">
<div class="col-xs-12 col-sm-3"> <div class="col-xs-12 col-sm-3">
<div class="col-12 row no-wrap"> <div class="col-12 row no-wrap">
<div class="col-12 row q-py-md q-px-lg" > <div class="col-12 row q-py-md q-px-lg">
<div class="col-12 row items-center no-wrap"> <div class="col-12 row items-center no-wrap">
<div class="toptitle2"> <div class="toptitle2">
{{ {{
@ -588,7 +606,7 @@ onMounted(async () => {
: "ประเมินชำนาญการพิเศษ" : "ประเมินชำนาญการพิเศษ"
}} }}
</div> </div>
<q-space/> <q-space />
<div> <div>
<q-btn <q-btn
flat flat
@ -597,7 +615,7 @@ onMounted(async () => {
color="primary" color="primary"
icon="history" icon="history"
@click="onClickPopupHistory" @click="onClickPopupHistory"
> >
<q-tooltip>ประวการประเม</q-tooltip> <q-tooltip>ประวการประเม</q-tooltip>
</q-btn> </q-btn>
</div> </div>
@ -607,7 +625,7 @@ onMounted(async () => {
</div> </div>
</div> </div>
<div class="col-12 row"> <div class="col-12 row">
<q-separator vertical/> <q-separator vertical />
</div> </div>
</div> </div>
</div> </div>
@ -648,39 +666,33 @@ onMounted(async () => {
" "
> >
<q-card flat bordered class="col-12 shadow-0"> <q-card flat bordered class="col-12 shadow-0">
<Step1 <Step1
v-if="store.step === 1" v-if="store.step === 1"
@update:spec="updateCheckSpec" @update:spec="updateCheckSpec"
:data="formDataStep1" :data="formDataStep1"
:educations="formDetail?.educations" :educations="formDetail?.educations"
/> />
<Step2 <Step2
v-if="store.step === 2" v-if="store.step === 2"
@update:form="updateformCommand" @update:form="updateformCommand"
/> />
<Step3 <Step3 v-if="store.step === 3" @update:file="updateFilePDF" />
v-if="store.step === 3" <Step4 v-if="store.step === 4" />
@update:file="updateFilePDF" <Step5 v-if="store.step === 5" />
/> <Step6
<Step4 v-if="store.step === 4" /> v-if="store.step === 6"
<Step5 v-if="store.step === 5" /> @update:form="updateformCommand"
<Step6 />
v-if="store.step === 6" <Step7 v-if="store.step === 7" @update:file="updateFilePDF" />
@update:form="updateformCommand" <Step8 v-if="store.step === 8" />
/> <Step9 v-if="store.step === 9" />
<Step7
v-if="store.step === 7"
@update:file="updateFilePDF"
/>
<Step8 v-if="store.step === 8" />
<Step9 v-if="store.step === 9" />
</q-card> </q-card>
</div> </div>
<div <div
class="col-xs-12 col-sm-7 row" class="col-xs-12 col-sm-7 row"
v-if="store.step === 1 || store.step === 3 || store.step === 7" v-if="store.step === 1 || store.step === 3 || store.step === 7"
> >
<div class="col-12 "> <div class="col-12">
<ViewStep1 <ViewStep1
v-if="store.step === 1" v-if="store.step === 1"
@update:formDeital="updateFormDetail" @update:formDeital="updateFormDetail"

View file

@ -32,6 +32,7 @@ interface FormSpec {
isHaveSpecificQft: boolean; isHaveSpecificQft: boolean;
isHaveProLicense: boolean; isHaveProLicense: boolean;
isHaveMinPeriodOrHoldPos: boolean; isHaveMinPeriodOrHoldPos: boolean;
[key: string]: any;
} }
interface FormCommand { interface FormCommand {

View file

@ -853,6 +853,26 @@ export const useCounterMixin = defineStore("mixin", () => {
}); });
}; };
const dialogMessageNotify = (
q: any,
desc?: string, // ถ้ามี cancel action ใส่เป็น null
cancel?: Function
) => {
q.dialog({
component: CustomComponent,
componentProps: {
title: "ข้อความแจ้งเตือน",
message: desc && desc != null ? desc : "กรุณากรอกข้อมูลให้ครบ",
icon: "warning",
color: "orange",
textOk: "ตกลง",
onlycancel: true,
},
}).onCancel(() => {
if (cancel) cancel();
});
};
/** /**
* convert arabicNumberToText * convert arabicNumberToText
* @param Number * @param Number
@ -1043,6 +1063,7 @@ export const useCounterMixin = defineStore("mixin", () => {
fails, fails,
dialogConfirm, dialogConfirm,
dialogRemove, dialogRemove,
dialogMessageNotify,
arabicNumberToText, arabicNumberToText,
calculateDurationYmd, calculateDurationYmd,
}; };