From acbec63df7d0343623d1e8ab0a1fdb39aca15d69 Mon Sep 17 00:00:00 2001 From: Kittapath Date: Sun, 8 Oct 2023 13:55:16 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=AB=E0=B8=A1=E0=B8=B2=E0=B8=A2=E0=B9=80?= =?UTF-8?q?=E0=B8=AB=E0=B8=95=E0=B8=B8=E0=B9=81=E0=B8=99=E0=B8=A7=E0=B8=99?= =?UTF-8?q?=E0=B8=AD=E0=B8=99/=E0=B8=95=E0=B8=B1=E0=B9=89=E0=B8=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../03_recruiting/components/Career.vue | 70 ++ .../components/ExitInterview/EditQuestion.vue | 604 ++++++++++++++---- .../components/ListRetirement/TableList.vue | 8 +- .../components/3_result/Dialogbody.vue | 402 ++++++++---- .../10_order/components/step/step02.vue | 4 +- 5 files changed, 802 insertions(+), 286 deletions(-) diff --git a/src/modules/03_recruiting/components/Career.vue b/src/modules/03_recruiting/components/Career.vue index 206b83811..97aeb80c3 100644 --- a/src/modules/03_recruiting/components/Career.vue +++ b/src/modules/03_recruiting/components/Career.vue @@ -48,6 +48,13 @@ + @@ -317,6 +324,7 @@ const editRow = ref(false); //เช็คมีการแก้ไ const checkValidate = ref(false); //validate data ผ่านหรือไม่ const route = useRoute(); const candidateId = ref(route.params.candidateId.toString()); +const total = ref("-"); const rows = ref([]); const filter = ref(""); //search data table const { messageError, showLoader, hideLoader } = mixin; @@ -480,12 +488,56 @@ const calDate = async () => { }${dayDiff > 0 ? dayDiff + " วัน " : ""}`; }; +const calDateSplit = async (startDate: Date, endDate: Date) => { + let _startDate = new Date(startDate.toISOString().substr(0, 10)); + let _endDate = new Date(endDate.toISOString().substr(0, 10)); + _endDate.setDate(_endDate.getDate() + 1); + if (_startDate > _endDate) { + const swap = _startDate; + _startDate = _endDate; + _endDate = swap; + } + const startYear = _startDate.getFullYear(); + const february = + (startYear % 4 === 0 && startYear % 100 !== 0) || startYear % 400 === 0 + ? 29 + : 28; + const daysInMonth = [31, february, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + + let yearDiff = _endDate.getFullYear() - startYear; + let monthDiff = _endDate.getMonth() - _startDate.getMonth(); + if (monthDiff < 0) { + yearDiff--; + monthDiff += 12; + } + let dayDiff = _endDate.getDate() - _startDate.getDate(); + if (dayDiff < 0) { + if (monthDiff > 0) { + monthDiff--; + } else { + yearDiff--; + monthDiff = 11; + } + dayDiff += daysInMonth[_startDate.getMonth()]; + } + var obj = { + yearDiff: yearDiff, + monthDiff: monthDiff, + dayDiff: dayDiff, + }; + return obj; +}; + const fetchData = async () => { showLoader(); await http .get(config.API.candidateCareer(candidateId.value)) .then((res) => { const data = res.data.result; + var yearDiff = 0; + var monthDiff = 0; + var dayDiff = 0; + total.value = "-"; rows.value = []; data.map((r: any) => { rows.value.push({ @@ -493,6 +545,24 @@ const fetchData = async () => { startDate: new Date(r.durationStart), endDate: new Date(r.durationEnd), }); + calDateSplit(new Date(r.durationStart), new Date(r.durationEnd)).then( + (d) => { + yearDiff = yearDiff + d.yearDiff; + monthDiff = monthDiff + d.monthDiff; + dayDiff = dayDiff + d.dayDiff; + if (dayDiff > 30) { + dayDiff = dayDiff % 30; + monthDiff = monthDiff + parseInt((dayDiff / 30).toString()); + } + if (monthDiff > 12) { + monthDiff = monthDiff % 12; + yearDiff = yearDiff + parseInt((monthDiff / 12).toString()); + } + total.value = `${yearDiff > 0 ? yearDiff + " ปี " : ""}${ + monthDiff > 0 ? monthDiff + " เดือน " : "" + }${dayDiff > 0 ? dayDiff + " วัน " : ""}`; + } + ); }); }) .catch((e) => { diff --git a/src/modules/06_retirement/components/ExitInterview/EditQuestion.vue b/src/modules/06_retirement/components/ExitInterview/EditQuestion.vue index 21f3f64ee..756b425ab 100644 --- a/src/modules/06_retirement/components/ExitInterview/EditQuestion.vue +++ b/src/modules/06_retirement/components/ExitInterview/EditQuestion.vue @@ -19,8 +19,10 @@ const { messageError, showLoader, hideLoader } = mixin; const myForm = ref(null); // set คำถามที่ 1 -const question1Desc = ref("เหตุใดท่านจึงตัดสินใจร่วมงานกับกรุงเทพมหานคร (เลือกได้มากกว่า 1 ข้อ)") -const question1Score = ref(5) +const question1Desc = ref( + "เหตุใดท่านจึงตัดสินใจร่วมงานกับกรุงเทพมหานคร (เลือกได้มากกว่า 1 ข้อ)" +); +const question1Score = ref(5); const question1Answer = ref([ "ความมั่นคงในการทำงาน", "สิทธิประโยชน์/สวัสดิการ", @@ -35,21 +37,25 @@ const question1Answer = ref([ "โอกาสความก้าวหน้า", "การได้รับการยอมรับจากสังคม", // "อื่น ๆ (ระบุ)", -]) +]); // set คำถามที่ 2 -const question2Desc = ref("สำหรับการลาออกในครั้งนี ท่านได้คิดทบทวนอย่างจริงจังเป็นระยะเวลานานเท่าใด") -const question2Score = ref(5) +const question2Desc = ref( + "สำหรับการลาออกในครั้งนี ท่านได้คิดทบทวนอย่างจริงจังเป็นระยะเวลานานเท่าใด" +); +const question2Score = ref(5); const question2Answer = ref([ "น้อยกว่า 2 สัปดาห์", "1 เดือน - 3 เดือน", "3 เดือน - 6 เดือน", "6 เดือนขึ้นไป", -]) +]); // set คำถามที่ 3 -const question3Desc = ref("ปัจจัยใดที่ทำให้ท่านตัดสินใจลาออกจากราชการ (เลือกได้มากกว่า 1 ข้อ)") -const question3Score = ref(5) +const question3Desc = ref( + "ปัจจัยใดที่ทำให้ท่านตัดสินใจลาออกจากราชการ (เลือกได้มากกว่า 1 ข้อ)" +); +const question3Score = ref(5); const question3Answer = ref([ "อัตราเงินเดือน", "สวัสดิการ", @@ -66,11 +72,13 @@ const question3Answer = ref([ "การดูแลและให้ความช่วยเหลือในช่วงเริ่มต้นปฏิบัติงาน", "การพัฒนาอย่างเป็นระบบและต่อเนื่อง", "โอกาสความก้าวหน้า", -]) +]); // set คำถามที่ 4 -const question4Desc = ref("อะไรคือสิ่งที่ท่านเห็นว่าควรปรับปรุง (เลือกได้มากกว่า 1 ข้อ)") -const question4Score = ref(5) +const question4Desc = ref( + "อะไรคือสิ่งที่ท่านเห็นว่าควรปรับปรุง (เลือกได้มากกว่า 1 ข้อ)" +); +const question4Score = ref(5); const question4Answer = ref([ "อัตราเงินเดือน ", "สวัสดิการ", @@ -87,40 +95,41 @@ const question4Answer = ref([ "การดูแลและให้ความช่วยเหลือในช่วงเริ่มต้นปฏิบัติงาน", "การพัฒนาอย่างเป็นระบบและต่อเนื่อง", "โอกาสความก้าวหน้า", -]) +]); // set คำถามที่ 5 -const question5Desc = ref("โปรดระบุสาเหตุที่แท้จริง ที่ทำให้ท่านตัดสินใจลาออกจากการปฏิบัติราชการกับกรุงเทพมหานคร ?") -const question5Score = ref(5) +const question5Desc = ref( + "โปรดระบุสาเหตุที่แท้จริง ที่ทำให้ท่านตัดสินใจลาออกจากการปฏิบัติราชการกับกรุงเทพมหานคร ?" +); +const question5Score = ref(5); // set คำถามที่ 6 -const question6Desc = ref("ปัจจัยใดที่จะช่วยทำให้ท่านเปลี่ยนใจ ไม่อยากลาออกจากการปฏิบัติราชการกับกรุงเทพมหานคร") -const question6Score = ref(5) +const question6Desc = ref( + "ปัจจัยใดที่จะช่วยทำให้ท่านเปลี่ยนใจ ไม่อยากลาออกจากการปฏิบัติราชการกับกรุงเทพมหานคร" +); +const question6Score = ref(5); // set คำถามที่ 7 -const question7Desc = ref("ท่านมีงานใหม่หรือไม่ ถ้ามี (โปรดระบุ ชื่อบริษัทเอกชน/หน่วยงานภาครัฐ) และอะไรคือสิ่งที่ที่ทำงานใหม่ให้กับท่าน ซึ่งท่านรู้สึกว่าเป็นที่น่าพอใจมากกว่าการปฏิบัติราชการกับกรุงเทพมหานคร") -const question7Score = ref(5) -const question7Answer = ref([ - "มี (ระบุ)", - "ไม่มี", -]) +const question7Desc = ref( + "ท่านมีงานใหม่หรือไม่ ถ้ามี (โปรดระบุ ชื่อบริษัทเอกชน/หน่วยงานภาครัฐ) และอะไรคือสิ่งที่ที่ทำงานใหม่ให้กับท่าน ซึ่งท่านรู้สึกว่าเป็นที่น่าพอใจมากกว่าการปฏิบัติราชการกับกรุงเทพมหานคร" +); +const question7Score = ref(5); +const question7Answer = ref(["มี (ระบุ)", "ไม่มี"]); // set คำถามที่ 8 -const question8Desc = ref("ท่านจะแนะนำเพื่อนให้มาร่วมงานกับกรุงเทพมหานครหรือไม่ (ถ้าไม่ โปรดระบุเหตุผล)") -const question8Score = ref(5) -const question8Answer = ref([ - "แนะนำ", - "ไม่แนะนำ (ระบุ)", -]) +const question8Desc = ref( + "ท่านจะแนะนำเพื่อนให้มาร่วมงานกับกรุงเทพมหานครหรือไม่ (ถ้าไม่ โปรดระบุเหตุผล)" +); +const question8Score = ref(5); +const question8Answer = ref(["แนะนำ", "ไม่แนะนำ (ระบุ)"]); // set คำถามที่ 9 -const question9Desc = ref("หากท่านมีโอกาสในอนาคต ท่านอยากกลับมาร่วมงานกับกรุงเทพมหานครหรือไม่ (ถ้าไม่ โปรดระบุเหตุผล)") -const question9Score = ref(5) -const question9Answer = ref([ - "อยาก", - "ไม่อยาก (ระบุ)", -]) +const question9Desc = ref( + "หากท่านมีโอกาสในอนาคต ท่านอยากกลับมาร่วมงานกับกรุงเทพมหานครหรือไม่ (ถ้าไม่ โปรดระบุเหตุผล)" +); +const question9Score = ref(5); +const question9Answer = ref(["อยาก", "ไม่อยาก (ระบุ)"]); // set คำถามที่ 10 -const question10Desc = ref("ความคิดเห็นและข้อเสนอแนะอื่น ๆ") -const question10Score = ref(5) +const question10Desc = ref("ความคิดเห็นและข้อเสนอแนะอื่น ๆ"); +const question10Score = ref(5); const exitFactor = ref([]); const reasonWork = ref([]); @@ -212,14 +221,22 @@ const getData = async () => { diff --git a/src/modules/06_retirement/components/ListRetirement/TableList.vue b/src/modules/06_retirement/components/ListRetirement/TableList.vue index 6964c4136..f745f127d 100644 --- a/src/modules/06_retirement/components/ListRetirement/TableList.vue +++ b/src/modules/06_retirement/components/ListRetirement/TableList.vue @@ -22,6 +22,7 @@ const { dialogConfirm, dialogRemove, date2Thai, + dateToISO, } = mixin; const myForm = ref(null); @@ -322,7 +323,8 @@ const uploadFile = async (event: any, signDate: any) => { const selectedFile = event; const formdata = new FormData(); formdata.append("file", selectedFile); - formdata.append("signDate", signDate); + if (signDate != null) + formdata.append("signDate", dateToISO(signDate)); await http .put( config.API.fileRetirement(retireld.value.toString()), @@ -459,7 +461,9 @@ const paginationLabel = (start: number, end: number, total: number) => { clickable v-close-popup type="a" - @click="modalUpload = true,signDate = null,fileUpload = null" + @click=" + (modalUpload = true), (signDate = null), (fileUpload = null) + " target="_blank" v-if="statusUpload !== true" > diff --git a/src/modules/07_insignia/components/3_result/Dialogbody.vue b/src/modules/07_insignia/components/3_result/Dialogbody.vue index d209ccedc..11d94823a 100644 --- a/src/modules/07_insignia/components/3_result/Dialogbody.vue +++ b/src/modules/07_insignia/components/3_result/Dialogbody.vue @@ -1,5 +1,5 @@