From 9498748c943050e657eabca825d3474a8be61277 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Fri, 15 Dec 2023 09:58:02 +0700 Subject: [PATCH 1/3] =?UTF-8?q?Refactor=20Code=20=20=E0=B8=A3=E0=B8=B0?= =?UTF-8?q?=E0=B8=9A=E0=B8=9A=E0=B8=A5=E0=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/1_Work/DialogDetail.vue | 1 + .../09_leave/components/1_Work/TableList.vue | 6 +- .../09_leave/components/1_Work/ToolBar.vue | 1 + .../components/1_Work/ToolBarDate.vue | 1 + .../components/3_Report/DetailReport.vue | 9 +- .../components/3_WorkTime/DialogForm.vue | 7 +- .../components/4_ChangeRound/DialogForm.vue | 13 +- .../4_specialTime/DialogApprove.vue | 87 +++++---- .../components/4_specialTime/Table.vue | 167 ++++++++++-------- .../09_leave/views/ChangeRoundMain.vue | 6 +- src/modules/09_leave/views/LeaveListMain.vue | 7 - src/modules/09_leave/views/RoundMain.vue | 3 +- .../09_leave/views/SpecialTimeMain.vue | 64 +++---- src/modules/09_leave/views/WorkingMain.vue | 23 +-- .../components/Detail/viewstep/viewStep1.vue | 7 - src/modules/12_Evaluate/store/Evaluate.ts | 149 ---------------- 16 files changed, 202 insertions(+), 349 deletions(-) delete mode 100644 src/modules/12_Evaluate/components/Detail/viewstep/viewStep1.vue delete mode 100644 src/modules/12_Evaluate/store/Evaluate.ts diff --git a/src/modules/09_leave/components/1_Work/DialogDetail.vue b/src/modules/09_leave/components/1_Work/DialogDetail.vue index e018e379b..647682135 100644 --- a/src/modules/09_leave/components/1_Work/DialogDetail.vue +++ b/src/modules/09_leave/components/1_Work/DialogDetail.vue @@ -4,6 +4,7 @@ import http from "@/plugins/http"; import config from "@/app.config"; import { useQuasar } from "quasar"; +/** import Type*/ import type { FormDetail } from "@/modules/09_leave/interface/response/work"; /** importStores */ diff --git a/src/modules/09_leave/components/1_Work/TableList.vue b/src/modules/09_leave/components/1_Work/TableList.vue index b23e09053..27b8930b1 100644 --- a/src/modules/09_leave/components/1_Work/TableList.vue +++ b/src/modules/09_leave/components/1_Work/TableList.vue @@ -85,6 +85,10 @@ watch([() => currentPage.value, () => pagination.value.rowsPerPage], () => { updateProp(pagination.value, currentPage.value); }); +/** + * function updatePageSize + * @param newPagination PageSize + */ function updateRowsPerPagen(newPagination: any) { pagination.value.rowsPerPage = newPagination.rowsPerPage; currentPage.value = 1; @@ -122,8 +126,6 @@ function updateRowsPerPagen(newPagination: any) { @click.prevent="clickDetail(props.row)" >
- - {{ (currentPage - 1) * Number(pagination.rowsPerPage) + props.rowIndex + diff --git a/src/modules/09_leave/components/1_Work/ToolBar.vue b/src/modules/09_leave/components/1_Work/ToolBar.vue index 23412af3a..16c881267 100644 --- a/src/modules/09_leave/components/1_Work/ToolBar.vue +++ b/src/modules/09_leave/components/1_Work/ToolBar.vue @@ -7,6 +7,7 @@ import type { DataOption } from "@/modules/09_leave/interface/index/Main"; /** importStores */ import { useCounterMixin } from "@/stores/mixin"; import { useWorklistDataStore } from "@/modules/09_leave/stores/WorkStore"; + /** useStore */ const workStore = useWorklistDataStore(); const mixin = useCounterMixin(); diff --git a/src/modules/09_leave/components/1_Work/ToolBarDate.vue b/src/modules/09_leave/components/1_Work/ToolBarDate.vue index 67b62fc02..aa44960ac 100644 --- a/src/modules/09_leave/components/1_Work/ToolBarDate.vue +++ b/src/modules/09_leave/components/1_Work/ToolBarDate.vue @@ -4,6 +4,7 @@ import { ref } from "vue"; /** importStores */ import { useCounterMixin } from "@/stores/mixin"; import { useWorklistDataStore } from "@/modules/09_leave/stores/WorkStore"; + /** useStore */ const workStore = useWorklistDataStore(); const mixin = useCounterMixin(); diff --git a/src/modules/09_leave/components/3_Report/DetailReport.vue b/src/modules/09_leave/components/3_Report/DetailReport.vue index 7086336b6..e50c97593 100644 --- a/src/modules/09_leave/components/3_Report/DetailReport.vue +++ b/src/modules/09_leave/components/3_Report/DetailReport.vue @@ -11,8 +11,7 @@ import { useCounterMixin } from "@/stores/mixin"; const route = useRoute(); const mixin = useCounterMixin(); -const { messageError, showLoader, hideLoader, date2Thai, monthYear2Thai } = - mixin; +const { date2Thai, monthYear2Thai } = mixin; const typeReport = route.params.type.toString(); const titleReport = computed(() => { @@ -59,6 +58,12 @@ const employeeClassOption = ref(employeeClassMain.value); const yearTypeOptionOption = ref(yearTypeOptionMain.value); const filterTypeOption = ref(filterTypeMain.value); +/** + * function ค้นหาข้อมูล Option + * @param val คำค้นหา + * @param update function + * @param type ประเภท option + */ function filterFnOptions(val: any, update: Function, type: string) { switch (type) { case "filterType": diff --git a/src/modules/09_leave/components/3_WorkTime/DialogForm.vue b/src/modules/09_leave/components/3_WorkTime/DialogForm.vue index 3dbb7eaca..967471626 100644 --- a/src/modules/09_leave/components/3_WorkTime/DialogForm.vue +++ b/src/modules/09_leave/components/3_WorkTime/DialogForm.vue @@ -2,6 +2,7 @@ import { ref, reactive, watch } from "vue"; import http from "@/plugins/http"; import config from "@/app.config"; +import { useQuasar } from "quasar"; /** ImportType */ import type { @@ -11,10 +12,12 @@ import type { /** ImportComponents */ import DialogHeader from "@/components/DialogHeader.vue"; + +/** importstore*/ import { useCounterMixin } from "@/stores/mixin"; -import { useQuasar } from "quasar"; const $q = useQuasar(); + const mixin = useCounterMixin(); const { dialogConfirm, success, messageError } = mixin; @@ -142,7 +145,7 @@ function close() { /***/ watch( () => props.modal, - (newDetailData, oldDetailData) => { + () => { if (props.editCheck === "add") { formData.startTimeMorning = ""; formData.endTimeMorning = ""; diff --git a/src/modules/09_leave/components/4_ChangeRound/DialogForm.vue b/src/modules/09_leave/components/4_ChangeRound/DialogForm.vue index 5812ae463..1eff7447b 100644 --- a/src/modules/09_leave/components/4_ChangeRound/DialogForm.vue +++ b/src/modules/09_leave/components/4_ChangeRound/DialogForm.vue @@ -3,7 +3,6 @@ import { ref, reactive, watch, onMounted } from "vue"; import { date, useQuasar } from "quasar"; import http from "@/plugins/http"; import config from "@/app.config"; -import { useRoute } from "vue-router"; /** importType */ import type { @@ -15,6 +14,7 @@ import type { /** importStore */ import { useCounterMixin } from "@/stores/mixin"; import { useChangeRoundDataStore } from "@/modules/09_leave/stores/ChangeRoundStore"; + /** useStore */ const dataStore = useChangeRoundDataStore(); const mixin = useCounterMixin(); @@ -27,9 +27,7 @@ const { success, } = mixin; -const route = useRoute(); const $q = useQuasar(); -const roundOp = ref([]); /**Hook */ onMounted(async () => { @@ -78,7 +76,7 @@ const dataToday = ref(new Date()); function onSubmit() { dialogConfirm( $q, - async () => { + () => { changeRound(); props.closeDialog?.(); }, @@ -107,6 +105,7 @@ async function changeRound() { }); } +const roundOp = ref([]); /** *ประวัติการเปลี่ยนรอบการปฏิบัติงาน" * @@ -138,9 +137,8 @@ async function fetchDataOption() { } // paging -const page = ref(1); const pageSize = ref(10); -const filter = ref(""); //search data table + /** * ฟังก์ชั่น api เปลี่ยนหน้า * @param pageVal page @@ -169,7 +167,6 @@ watch( } ); const emit = defineEmits(["update:change-page"]); -// Pagination - update rowsPerPage async function updatePagination(newPagination: any) { initialPagination.value = newPagination; currentPage.value = 1; // set current page เป็น 1 เสมอเมื่อเปลี่ยน per row @@ -192,7 +189,7 @@ function close() { } watch( () => props.modal, - async (newDetailData, oldDetailData) => { + async () => { if (props.editCheck === "edit") { formData.round = ""; formData.reson = ""; diff --git a/src/modules/09_leave/components/4_specialTime/DialogApprove.vue b/src/modules/09_leave/components/4_specialTime/DialogApprove.vue index 8652e6645..2fcd3a31c 100644 --- a/src/modules/09_leave/components/4_specialTime/DialogApprove.vue +++ b/src/modules/09_leave/components/4_specialTime/DialogApprove.vue @@ -1,28 +1,38 @@ - diff --git a/src/modules/12_Evaluate/store/Evaluate.ts b/src/modules/12_Evaluate/store/Evaluate.ts deleted file mode 100644 index a5dfe0efc..000000000 --- a/src/modules/12_Evaluate/store/Evaluate.ts +++ /dev/null @@ -1,149 +0,0 @@ -import { defineStore } from "pinia"; -import { ref } from "vue"; -import type { QTableProps } from "quasar"; -import type { DataOption } from "@/modules/12_Evaluate/interface/index/Main"; -import { useCounterMixin } from "@/stores/mixin"; - -const mixin = useCounterMixin(); -const { date2Thai } = mixin; -export const useEvalutuonStore = defineStore("EvalutuonStore", () => { - /** function สถานะ*/ - function convertStatus(val: string) { - switch (val) { - case "CHECK_SPEC": - return "ตรวจสอบคุณสมบัติด้วยตนเอง"; - case "PREPARE_DOC_V1": - return "จัดเตรียมเอกสารเล่ม"; - case "CHECK_DOC_V1": - return "ตรวจสอบความถูกต้องของเอกสารเล่ม"; - case "WAIT_CHECK_DOC_V1": - return "รอตรวจสอบคุณสมบัติ"; - case "ANNOUNCE_WEB": - return "ประกาศบนเว็บไซต์"; - case "PREPARE_DOC_V2": - return "จัดเตรียมเอกสารเล่ม"; - case "WAIT_CHECK_DOC_V2": - return "รอพิจารณาผลการประเมิน"; - case "CHECK_DOC_V2": - return "ตรวจสอบความถูกต้องของเอกสารเล่ม"; - case "DONE": - return "เสร็จสิ้น"; - } - } - - // ตรวจสอบคุณสมบัติด้วยตนเอง -> CHECK_SPEC - // จัดเตรียมเอกสารเล่ม 1-> PREPARE_DOC_V1 - // ตรวจสอบความถูกต้องของเอกสารเล่ม 1 -> CHECK_DOC_V1 - // รอตรวจสอบคุณสมบัติ -> WAIT_CHECK_DOC_V1 - // ประกาศบนเว็บไซต์ -> ANNOUNCE_WEB - // จัดเตรียมเอกสารเล่ม 2 -> PREPARE_DOC_V2 - // ตรวจสอบความถูกต้องของเอกสารเล่ม 2 -> CHECK_DOC_V2 - // รอพิจารณาผลการประเมิน -> WAIT_CHECK_DOC_V2 - // เสร็จสิ้น -> DONE - - const visibleColumns = ref([ - "citizanId", - "fullName", - "position", - "level", - "positionNumber", - "agency", - "status", - ]); - const rows = ref([]); - function fetchData(data: any[]) { - const dataList: any[] = data.map((data: any) => ({ - citizanId: data.citizanId, - fullName: data.fullName, - position: data.position, - level: data.level, - positionNumber: data.positionNumber, - agency: data.agency, - status: convertStatus(data.status), - })); - rows.value = dataList; - console.log(dataList); - } - - const columns = ref([ - { - name: "citizanId", - align: "center", - label: "เลขประจำตัวประชาชน", - sortable: false, - field: "citizanId", - headerStyle: "font-size: 14px", - style: "font-size: 14px", - }, - { - name: "fullName", - align: "left", - label: "ชื่อ-นามสกุล", - sortable: true, - field: "fullName", - headerStyle: "font-size: 14px", - style: "font-size: 14px", - }, - { - name: "position", - align: "left", - label: "ตำแหน่ง", - sortable: true, - field: "position", - headerStyle: "font-size: 14px", - style: "font-size: 14px", - sort: (a: string, b: string) => - a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), - }, - { - name: "level", - align: "left", - label: "ระดับ", - sortable: true, - field: "level", - headerStyle: "font-size: 14px", - style: "font-size: 14px", - sort: (a: string, b: string) => - a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), - }, - { - name: "positionNumber", - align: "left", - label: "ตำแหน่งเลขที่", - sortable: true, - field: "positionNumber", - headerStyle: "font-size: 14px", - style: "font-size: 14px", - sort: (a: string, b: string) => - a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), - }, - { - name: "agency", - align: "left", - label: "สังกัด", - sortable: true, - field: "agency", - headerStyle: "font-size: 14px", - style: "font-size: 14px", - sort: (a: string, b: string) => - a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), - }, - { - name: "status", - align: "left", - label: "สถานะ(ตรวจสอบคุณสมบัติ)", - sortable: true, - field: "status", - headerStyle: "font-size: 14px", - style: "font-size: 14px", - }, - ]); - - return { - visibleColumns, - columns, - rows, - convertStatus, - fetchData, - }; -}); From a2302b8ffae307057de8f8fe43494a3e77756352 Mon Sep 17 00:00:00 2001 From: waruneeta Date: Fri, 15 Dec 2023 16:18:00 +0700 Subject: [PATCH 2/3] =?UTF-8?q?list=20=E0=B9=83=E0=B8=AB=E0=B9=89=E0=B9=80?= =?UTF-8?q?=E0=B8=A5=E0=B8=B7=E0=B8=AD=E0=B8=81=E0=B8=84=E0=B8=B3=E0=B8=AA?= =?UTF-8?q?=E0=B8=B1=E0=B9=88=E0=B8=87=E0=B8=82=E0=B8=AD=E0=B8=87=E0=B8=A7?= =?UTF-8?q?=E0=B8=B4=E0=B8=99=E0=B8=B1=E0=B8=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../4_Result/DialogSendToCommand.vue | 14 +++-- .../7_ListSuspend/DialogSendToCommand.vue | 60 +++++++++++++++++-- 2 files changed, 65 insertions(+), 9 deletions(-) diff --git a/src/modules/11_discipline/components/4_Result/DialogSendToCommand.vue b/src/modules/11_discipline/components/4_Result/DialogSendToCommand.vue index d74a64938..99ae2e718 100644 --- a/src/modules/11_discipline/components/4_Result/DialogSendToCommand.vue +++ b/src/modules/11_discipline/components/4_Result/DialogSendToCommand.vue @@ -22,7 +22,7 @@ import http from "@/plugins/http"; import config from "@/app.config"; const type = ref(""); -const rows = ref([]) +const rows = ref([]); const $q = useQuasar(); const selected = ref([]); const mixin = useCounterMixin(); @@ -124,9 +124,11 @@ const fecthTypeOption = async () => { .then((res) => { optionsType.value = res.data.result.filter( (e: OpType) => - e.commandCode === "C-PM-26" || + e.commandCode === "C-PM-19" || + e.commandCode === "C-PM-20" || e.commandCode === "C-PM-27" || - e.commandCode === "C-PM-28" + e.commandCode === "C-PM-28" || + e.commandCode === "C-PM-29" ); }) .catch((e) => { @@ -140,9 +142,11 @@ const fecthTypeOption = async () => { watchEffect(() => { if (props.Modal === true) { selected.value = []; - type.value = '' + type.value = ""; // console.log(props.data.status) - rows.value = props.data.persons.filter((item: any) => item.status !== 'REPORT'); + rows.value = props.data.persons.filter( + (item: any) => item.status !== "REPORT" + ); } }); diff --git a/src/modules/11_discipline/components/7_ListSuspend/DialogSendToCommand.vue b/src/modules/11_discipline/components/7_ListSuspend/DialogSendToCommand.vue index b83c3fb67..e94acbda9 100644 --- a/src/modules/11_discipline/components/7_ListSuspend/DialogSendToCommand.vue +++ b/src/modules/11_discipline/components/7_ListSuspend/DialogSendToCommand.vue @@ -1,11 +1,12 @@ + - + Date: Fri, 15 Dec 2023 17:23:33 +0700 Subject: [PATCH 3/3] =?UTF-8?q?=E0=B8=95=E0=B8=A3=E0=B8=A7=E0=B8=88?= =?UTF-8?q?=E0=B8=AA=E0=B8=AD=E0=B8=9A=E0=B8=84=E0=B8=B8=E0=B8=93=E0=B8=AA?= =?UTF-8?q?=E0=B8=A1=E0=B8=9A=E0=B8=B1=E0=B8=95=E0=B8=B4=20=E0=B8=A3?= =?UTF-8?q?=E0=B8=B2=E0=B8=A2=E0=B8=A5=E0=B8=B0=E0=B9=80=E0=B8=AD=E0=B8=B5?= =?UTF-8?q?=E0=B8=A2=E0=B8=94=E0=B8=AA=E0=B9=88=E0=B8=A7=E0=B8=99=E0=B8=9A?= =?UTF-8?q?=E0=B8=B8=E0=B8=84=E0=B8=84=E0=B8=A5=20-=20=E0=B8=9B=E0=B8=A3?= =?UTF-8?q?=E0=B8=B0=E0=B9=80=E0=B8=A1=E0=B8=B4=E0=B8=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/Detail/Stepper.vue | 14 +- .../components/Detail/Tab1.vue | 139 ++++- .../components/Detail/step/step2.vue | 139 ++++- .../components/Detail/viewstep/tableStep1.vue | 41 ++ .../components/Detail/viewstep/viewStep1.vue | 560 +++++++++--------- .../interface/index/evalute.ts | 17 + .../12_evaluatePersonal/store/Evaluate.ts | 277 --------- .../store/EvaluateDetail.ts | 285 ++++++++- 8 files changed, 878 insertions(+), 594 deletions(-) create mode 100644 src/modules/12_evaluatePersonal/components/Detail/viewstep/tableStep1.vue create mode 100644 src/modules/12_evaluatePersonal/interface/index/evalute.ts diff --git a/src/modules/12_evaluatePersonal/components/Detail/Stepper.vue b/src/modules/12_evaluatePersonal/components/Detail/Stepper.vue index 3c221f21b..9d73cc7ba 100644 --- a/src/modules/12_evaluatePersonal/components/Detail/Stepper.vue +++ b/src/modules/12_evaluatePersonal/components/Detail/Stepper.vue @@ -24,10 +24,20 @@ const store = useEvaluateDetailStore(); > - + - + -import { onMounted } from "vue"; +import { onMounted, ref, reactive } from "vue"; import { useQuasar } from "quasar"; +import type { + FormCommand, + FormCommandRef, +} from "@/modules/12_evaluatePersonal/interface/index/evalute"; + import Stepper from "@/modules/12_evaluatePersonal/components/Detail/Stepper.vue"; import Step1 from "@/modules/12_evaluatePersonal/components/Detail/step/step1.vue"; import Step2 from "@/modules/12_evaluatePersonal/components/Detail/step/step2.vue"; @@ -29,16 +34,61 @@ const $q = useQuasar(); const externalLink = "https://accreditation.ocsc.go.th/accreditation/search/curriculum"; -function onCilckNextStep() { - store.step < 9 && - dialogConfirm( - $q, - () => { - store.step++; - }, - "ยืนยันการดำเนินการ", - "ต้องการยืนยันการดำเนินการต่อใช่หรือไม่?" - ); +const formCommand = reactive({ + elementaryFullName: "", + elementaryPosition: "", + abovelevelFullname: "", + abovelevelPosition: "", +}); + +const elementaryFullNameRef = ref(null); +const elementaryPositonRef = ref(null); +const abovelevelFullnameRef = ref(null); +const abovelevelPositionRef = ref(null); + +const formCommandRef: FormCommandRef = { + elementaryFullName: elementaryFullNameRef, + elementaryPosition: elementaryPositonRef, + abovelevelFullname: abovelevelFullnameRef, + abovelevelPosition: abovelevelPositionRef, +}; + +async function onCilckNextStep() { + const functionCreateDoc: (() => Promise) | null = + store.step === 1 + ? await saveStep1 + : store.step === 3 + ? await saveStep3 + : store.step === 4 + ? await saveStep4 + : store.step === 5 + ? await saveStep5 + : store.step === 5 + ? await saveStep5 + : store.step === 6 + ? await saveStep6 + : store.step === 7 + ? await saveStep7 + : store.step === 8 + ? await saveStep8 + : store.step === 9 + ? await saveStep9 + : null; + store.step === 2 + ? validateStep2() + : store.step < 9 && + dialogConfirm( + $q, + () => { + functionCreateDoc?.(); + store.step++; + }, + "ยืนยันการดำเนินการ", + "ต้องการยืนยันการดำเนินการต่อใช่หรือไม่?" + ); + + // functionCreateDoc?.(); + // store.step < 9 && } function onCilckprPeviousStep() { @@ -53,6 +103,71 @@ function onCilckprPeviousStep() { ); } +function updateformCommand(val: any, ref: any) { + formCommand.elementaryFullName = val.elementaryFullName; + formCommand.elementaryPosition = val.elementaryPosition; + formCommand.abovelevelFullname = val.abovelevelFullname; + formCommand.abovelevelPosition = val.abovelevelPosition; + + elementaryFullNameRef.value = ref.elementaryFullNameRef; + elementaryPositonRef.value = ref.elementaryPositonRef; + abovelevelFullnameRef.value = ref.abovelevelFullnameRef; + abovelevelPositionRef.value = ref.abovelevelPositionRef; +} + +async function validateStep2() { + const hasError = []; + for (const key in formCommandRef) { + if (Object.prototype.hasOwnProperty.call(formCommandRef, key)) { + const property = formCommandRef[key]; + if (property.value && typeof property.value.validate === "function") { + const isValid = property.value.validate(); + hasError.push(isValid); + } + } + } + if (hasError.every((result) => result === true)) { + saveStep2(); + } else { + console.log("ไม่ผ่าน"); + } +} + +async function saveStep1() { + console.log("Save 1"); +} +async function saveStep2() { + dialogConfirm( + $q, + () => { + store.step++; + }, + "ยืนยันการดำเนินการ", + "ต้องการยืนยันการดำเนินการต่อใช่หรือไม่?" + ); +} +async function saveStep3() { + console.log("Save 3"); +} +async function saveStep4() { + console.log("Save 4"); +} +async function saveStep5() { + console.log("Save 5"); +} +async function saveStep6() { + console.log("Save 6"); +} +async function saveStep7() { + console.log("Save 7"); +} +async function saveStep8() { + console.log("Save 8"); +} +async function saveStep9() { + console.log("Save 9"); +} + onMounted(() => { store.step = 1; }); @@ -87,7 +202,7 @@ onMounted(() => { - + diff --git a/src/modules/12_evaluatePersonal/components/Detail/step/step2.vue b/src/modules/12_evaluatePersonal/components/Detail/step/step2.vue index f4ea37d17..b66b0246b 100644 --- a/src/modules/12_evaluatePersonal/components/Detail/step/step2.vue +++ b/src/modules/12_evaluatePersonal/components/Detail/step/step2.vue @@ -1,11 +1,13 @@