diff --git a/src/api/evaluate/api.evaluate.ts b/src/api/evaluate/api.evaluate.ts index 932ca4f..d4e5ed5 100644 --- a/src/api/evaluate/api.evaluate.ts +++ b/src/api/evaluate/api.evaluate.ts @@ -3,7 +3,7 @@ import env from "../index"; const evaluation = `${env.API_URI}/evaluation`; export default { - evaluationList:() =>`${evaluation}/user`, + evaluationList: () => `${evaluation}/user`, evaluationCheckStatus: () => `${evaluation}/check-status`, evaluationCheckStep: (id: string) => `${evaluation}/check/${id}`, evaluationCheckById: (id: string) => `${evaluation}/check/${id}`, @@ -29,6 +29,8 @@ export default { evaluationDirectorMeetring: (id: string) => `${evaluation}/director-meeting/${id}`, evaluationCheckDate: (id: string) => `${evaluation}/check-date/${id}`, + evaluationUpdateAuthor: (id: string, type: string) => + `${evaluation}/update-author-${type}/${id}`, /**document */ loadPathDocument: (val: string, id: string) => diff --git a/src/modules/06_evaluate/components/DialogMain.vue b/src/modules/06_evaluate/components/DialogMain.vue index 1cd9500..3220179 100644 --- a/src/modules/06_evaluate/components/DialogMain.vue +++ b/src/modules/06_evaluate/components/DialogMain.vue @@ -5,11 +5,13 @@ import { useQuasar } from "quasar"; import DialogHeader from "@/components/DialogHeader.vue"; import { useCounterMixin } from "@/stores/mixin"; +import { useEvaluateStore } from "@/modules/06_evaluate/store"; import { onMounted, ref, watch } from "vue"; const router = useRouter(); const $q = useQuasar(); const mixin = useCounterMixin(); +const store = useEvaluateStore(); const { dialogConfirm } = mixin; @@ -40,6 +42,8 @@ function onCklicNext() { $q, () => { const type = props.menu ? props.menu.val?.toLowerCase() : ""; + store.step = 1; + store.currentStep = 1; router.push(`/evaluate/add/${type}`); }, "ยืนยันการดำเนินการ", diff --git a/src/modules/06_evaluate/components/EvaluateStepMain.vue b/src/modules/06_evaluate/components/EvaluateStepMain.vue index 7d38e0a..1556460 100644 --- a/src/modules/06_evaluate/components/EvaluateStepMain.vue +++ b/src/modules/06_evaluate/components/EvaluateStepMain.vue @@ -92,13 +92,8 @@ async function onCilckNextStep() { } async function validateForm() { - console.log(downloadFileRef.value); - store.checkFileupload = !store.checkFileupload; - console.log(store.checkFileupload); - const emptyValues = downloadFileRef.value.filter((e: any) => e === ""); - const hasError = []; for (const key in formCommandRef) { if (Object.prototype.hasOwnProperty.call(formCommandRef, key)) { @@ -109,11 +104,22 @@ async function validateForm() { } } } + if (hasError.every((result) => result === true)) { - if (emptyValues.length > 0) { + if (emptyValues.length > 0 && store.statusUpload === true) { console.log("There are empty values in the array."); + } else if (store.step === 2) { + if (store.statusUpload === false) { + saveStep2(); + } else { + nextTostep3(); + } } else { - store.step === 2 ? saveStep2() : saveStep6(); + if (store.statusUpload === false) { + saveStep6(); + } else { + nextTostep7(); + } } // store.step === 2 && emptyValues.length > 0 ? saveStep2() : saveStep6(); @@ -308,11 +314,15 @@ async function saveStep1() { } /** STEP 2*/ +const statusUpload = ref(false); const formCommand = reactive({ commanderFullname: "", commanderPosition: "", commanderAboveFullname: "", commanderAbovePosition: "", + author: "", + subject: "", + assignedPosition: "", }); const commanderFullnameRef = ref(null); const commanderPositionRef = ref(null); @@ -324,6 +334,9 @@ const fileEvaluation3Ref = ref(null); const fileEvaluation4Ref = ref(null); const fileEvaluation5Ref = ref(null); const fileEvaluation6Ref = ref(null); +const performanceRef = ref(null); +const performanceOwnerRef = ref(null); +const assignedPositionRef = ref(null); const formCommandRef: FormCommandRef = { commanderFullname: commanderFullnameRef, commanderPosition: commanderPositionRef, @@ -335,6 +348,9 @@ const formCommandRef: FormCommandRef = { fileEvaluation4: fileEvaluation4Ref, fileEvaluation5: fileEvaluation5Ref, fileEvaluation6: fileEvaluation6Ref, + performance: performanceRef, + performanceOwner: performanceOwnerRef, + assignedPosition: assignedPositionRef, }; const downloadFileRef = ref(); @@ -343,6 +359,9 @@ function updateformCommand(val: any, ref: any) { formCommand.commanderPosition = val.commanderPosition; formCommand.commanderAboveFullname = val.commanderAboveFullname; formCommand.commanderAbovePosition = val.commanderAbovePosition; + formCommand.author = val.author; + formCommand.subject = val.subject; + formCommand.assignedPosition = val.assignedPosition; commanderFullnameRef.value = ref.commanderFullnameRef; commanderPositionRef.value = ref.commanderPositionRef; commanderAboveFullnameRef.value = ref.commanderAboveFullnameRef; @@ -354,20 +373,59 @@ function updateformCommand(val: any, ref: any) { fileEvaluation5Ref.value = ref.fileEvaluation5Ref; fileEvaluation6Ref.value = ref.fileEvaluation6Ref; downloadFileRef.value = ref.downloadFile; + performanceRef.value = ref.performance; + performanceOwnerRef.value = ref.performanceOwner; + assignedPositionRef.value = ref.assignedPosition; + statusUpload.value = ref.statusUpload; } async function saveStep2() { + const body = { + commanderFullname: formCommand.commanderFullname, + commanderPosition: formCommand.commanderPosition, + commanderAboveFullname: formCommand.commanderAboveFullname, + commanderAbovePosition: formCommand.commanderAbovePosition, + author: formCommand.author, + subject: formCommand.subject, + }; + + dialogConfirm( + $q, + async () => { + statusUpload.value = true; + store.statusUpload = statusUpload.value; + showLoader(); + await http + .put( + config.API.evaluationUpdateAuthor( + route.params.id.toString(), + "director" + ), + body + ) + .then(() => { + route.params.id && fetchCheckStep(route.params.id.toString()); + }) + .catch((err) => { + messageError($q, err); + }) + .finally(() => { + hideLoader(); + }); + }, + "ยืนยันการบันทึกข้อมูล", + "ต้องการยืนยันการบันทึกข้อมูลนี้ใช่หรือไม่?" + ); +} + +async function nextTostep3() { dialogConfirm( $q, async () => { showLoader(); await http .put( - config.API.evaluationPreparedoc( - route.params.id.toString(), - "approve" - ), - formCommand + config.API.evaluationPreparedoc(route.params.id.toString(), "approve") ) .then(() => { route.params.id && fetchCheckStep(route.params.id.toString()); @@ -384,6 +442,7 @@ async function saveStep2() { ); } +/** STEP3*/ async function saveStep3() { showLoader(); await http @@ -404,19 +463,54 @@ async function saveStep4() { async function saveStep5() { console.log("Save 5"); } + +/** STEP 6*/ async function saveStep6() { const body = { commanderAboveFullnameDoc2: formCommand.commanderAboveFullname, commanderAbovePositionDoc2: formCommand.commanderAbovePosition, commanderFullnameDoc2: formCommand.commanderFullname, commanderPositionDoc2: formCommand.commanderPosition, + authorDoc2: formCommand.author, + subjectDoc2: formCommand.subject, + assignedPosition: formCommand.assignedPosition, }; + dialogConfirm( + $q, + async () => { + statusUpload.value = true; + store.statusUpload = statusUpload.value; + showLoader(); + await http + .put( + config.API.evaluationUpdateAuthor( + route.params.id.toString(), + "director2" + ), + body + ) + .then(() => { + route.params.id && fetchCheckStep(route.params.id.toString()); + }) + .catch((err) => { + messageError($q, err); + }) + .finally(() => { + hideLoader(); + }); + }, + "ยืนยันการบันทึกข้อมูล", + "ต้องการยืนยันการบันทึกข้อมูลนี้ใช่หรือไม่?" + ); +} + +async function nextTostep7() { dialogConfirm( $q, async () => { showLoader(); await http - .put(config.API.evaluationCheckdocV2(route.params.id.toString()), body) + .put(config.API.evaluationCheckdocV2(route.params.id.toString())) .then(() => { route.params.id && fetchCheckStep(route.params.id.toString()); }) @@ -431,6 +525,7 @@ async function saveStep6() { "ต้องการยืนยันการดำเนินการต่อใช่หรือไม่?" ); } + async function saveStep7() { showLoader(); await http @@ -576,7 +671,6 @@ onMounted(async () => { class="col-xs-12 col-sm-7 row" v-if="store.step === 1 || store.step === 3 || store.step === 7" > -
{ :urlDownloadFile="urlDownloadFile" />
- -
+ + + +
diff --git a/src/modules/06_evaluate/components/TableListEvaluate.vue b/src/modules/06_evaluate/components/TableListEvaluate.vue index 557c241..c5bb0c2 100644 --- a/src/modules/06_evaluate/components/TableListEvaluate.vue +++ b/src/modules/06_evaluate/components/TableListEvaluate.vue @@ -1,5 +1,5 @@