diff --git a/src/components/Dialogs/AddPersonal.vue b/src/components/Dialogs/AddPersonal.vue index 7c58fb619..2581a16c7 100644 --- a/src/components/Dialogs/AddPersonal.vue +++ b/src/components/Dialogs/AddPersonal.vue @@ -7,7 +7,7 @@ import config from "@/app.config"; import { useCounterMixin } from "@/stores/mixin"; import type { QTableProps } from "quasar"; import type { ResponsePreson } from "@/interface/response/listPerson"; -import { useDisciplineMainStore } from "@/modules/11_discipline/store"; +import { useDisciplineMainStore } from "@/modules/11_discipline/store/main"; const mainStore = useDisciplineMainStore(); @@ -303,3 +303,4 @@ watch(()=>props.selectedData,()=>{ +@/modules/11_discipline/store/store \ No newline at end of file diff --git a/src/modules/09_leave/components/2_Leave/DetailLeaveReject.vue b/src/modules/09_leave/components/2_Leave/DetailLeaveReject.vue index d2d2021e5..4122b9b6b 100644 --- a/src/modules/09_leave/components/2_Leave/DetailLeaveReject.vue +++ b/src/modules/09_leave/components/2_Leave/DetailLeaveReject.vue @@ -53,27 +53,38 @@ function upLoadFile() { /** Form รายละเอียดข้อมูล*/ const formData = reactive({ id: "", //Id การยื่นขอลา + reasonCommander: "", //เหตุผลผู้บังคับบัญชา + reasonOligarch: "", //เหตุผลผู้มีอำนาจ + positionName: "", //ตำแหน่งผู้ยื่นขอ + positionLevelName: "", //ระดับผู้ยื่นขอ + organizationName: "", //สังกัดผู้ยื่นขอ leaveTypeName: "", // Name ประเภทการลา leaveTypeId: "", //Id ประเภทการลา fullname: "", //คำนำหน้า ชื่อ นามสกุล คนขอลา dateSendLeave: new Date(), // วันที่ยืนใบลา + leaveDateStart: new Date(), //วันเริ่มการลา + leaveDateEnd: new Date(), //วันสิ้นสุดการลา + leaveCount: 0, //จำนวนวันลา status: "", //สถานะการของลา leaveLimit: 0, //โควต้าลา(แต่ละประเภท)หน่วยเป็นวัน - leaveTotal: 0, //ลาป่วยไปแล้ว(แต่ละประเภท)หน่วยเป็นวัน + leaveSummary: 0, //ลาป่วยไปแล้ว(แต่ละประเภท)หน่วยเป็นวัน leaveRemain: 0, //คงเหลือโควต้า(แต่ละประเภท)หน่วยเป็นวัน - leaveStartDate: new Date(), //*วัน เดือน ปีเริ่มต้นลา - leaveEndDate: new Date(), //*วัน เดือน ปีสิ้นสุดลา + // leaveStartDate: new Date(), //*วัน เดือน ปีเริ่มต้นลา + // leaveEndDate: new Date(), //*วัน เดือน ปีสิ้นสุดลา leaveWrote: "", //เขียนที่ leaveAddress: "", //สถานที่ติดต่อขณะลา leaveNumber: "", //หมายเลขที่ติดต่อขณะลา leaveDetail: "", //รายละเอียดการลา leaveDocument: "", //อัปโหลดเอกสารประกอบรายละเอียด - leaveLast: new Date(), //ลาครั้งสุดท้ายในประเภทนั้น ๆ เมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto) - leaveDateTotal: 0, //จำนวนวันที่ลา(Auto) + leaveDraftDocument: "", //อัปโหลดแบบฟอร์มการลา + leaveLastStart: new Date(), //ลาครั้งสุดท้ายในประเภทนั้น ๆ เริ่มเมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto) + leaveLastEnd: new Date(), //ลาครั้งสุดท้ายในประเภทนั้น ๆ สิ้นสุดเมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto) + leaveTotal: 0, //จำนวนวันที่ลา(Auto) leavebirthDate: new Date(), //วันเดือนปีเกิด(Auto) leavegovernmentDate: new Date(), //วันที่เข้ารับราชการ(Auto) leaveSalary: 0, //เงินเดือนปัจจุบัน(Auto) leaveSalaryText: "", //เงินเดือนปัจจุบัน(เขียนเป็นคำอ่าน) + leaveTypeDay: "", //ประเภทการลาในวันนั้นเช่น wifeDayName: "", //ชื่อภรรยา(ลาไปช่วยเหลือภริยาที่คลอดบุตร) wifeDayDateBorn: new Date(), //วันที่คลอด(ลาไปช่วยเหลือภริยาที่คลอดบุตร) restDayOldTotal: 0, //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา(ลาพักผ่อน)(Auto) @@ -127,31 +138,40 @@ function fetchDetailLeave(paramsId: string) { console.log(data); data.map((e: any) => { formData.id = e.id; + formData.reasonCommander = e.reasonCommander; + formData.reasonOligarch = e.reasonOligarch; + formData.positionName = e.positionName; + formData.positionLevelName = e.positionLevelName; + formData.organizationName = e.organizationName; formData.leaveTypeName = e.leaveTypeName ? e.leaveTypeName : stores.convertLeave(e.leaveTypeId); formData.leaveTypeId = e.leaveTypeId; formData.fullname = e.fullname; formData.dateSendLeave = e.dateSendLeave && date2Thai(e.dateSendLeave); + formData.leaveDateStart = e.leaveDateStart && date2Thai(e.leaveDateStart); + formData.leaveDateEnd = e.leaveDateEnd && date2Thai(e.leaveDateEnd); + formData.leaveCount = e.leaveCount; formData.status = e.status && e.status; formData.leaveLimit = e.leaveLimit; - formData.leaveTotal = e.leaveTotal; + formData.leaveSummary = e.leaveSummary; formData.leaveRemain = e.leaveRemain; - formData.leaveStartDate = e.leaveStartDate && date2Thai(e.leaveStartDate); - formData.leaveEndDate = e.leaveEndDate && date2Thai(e.leaveEndDate); - formData.status = e.status; formData.leaveWrote = e.leaveWrote; formData.leaveAddress = e.leaveAddress; formData.leaveNumber = e.leaveNumber; formData.leaveDetail = e.leaveDetail; formData.leaveDocument = e.leaveDocument; - formData.leaveLast = e.leaveLast && date2Thai(e.leaveLast); - formData.leaveDateTotal = e.leaveDateTotal; + formData.leaveDraftDocument = e.leaveDraftDocument; + formData.leaveLastStart = e.leaveLastStart && date2Thai(e.leaveLastStart); + formData.leaveLastEnd = e.leaveLastStart && date2Thai(e.leaveLastEnd); + formData.leaveTotal = e.leaveTotal; formData.leavebirthDate = e.leavebirthDate && date2Thai(e.leavebirthDate); formData.leavegovernmentDate = e.leavegovernmentDate && date2Thai(e.leavegovernmentDate); formData.leaveSalary = e.leaveSalary; formData.leaveSalaryText = e.leaveSalaryText; + formData.leaveTypeDay = + e.leaveTypeDay && stores.convertLeaveDaytype(e.leaveTypeDay); formData.wifeDayName = e.wifeDayName; formData.wifeDayDateBorn = e.wifeDayDateBorn && date2Thai(e.wifeDayDateBorn); diff --git a/src/modules/09_leave/components/3_Report/DetailReport.vue b/src/modules/09_leave/components/3_Report/DetailReport.vue new file mode 100644 index 000000000..7762359a6 --- /dev/null +++ b/src/modules/09_leave/components/3_Report/DetailReport.vue @@ -0,0 +1,480 @@ + + + + diff --git a/src/modules/09_leave/interface/index/Main.ts b/src/modules/09_leave/interface/index/Main.ts index e76abc1f2..58ada0de4 100644 --- a/src/modules/09_leave/interface/index/Main.ts +++ b/src/modules/09_leave/interface/index/Main.ts @@ -6,4 +6,8 @@ interface DataOption2 { id: number; name: string; } -export type { DataOption, DataOption2 }; +interface DataDateMonthObject { + month: number; + year: number; +} +export type { DataOption, DataOption2, DataDateMonthObject }; diff --git a/src/modules/09_leave/router.ts b/src/modules/09_leave/router.ts index 9724f3d98..57d06f504 100644 --- a/src/modules/09_leave/router.ts +++ b/src/modules/09_leave/router.ts @@ -1,6 +1,8 @@ const workMain = () => import("@/modules/09_leave/views/WorkingMain.vue"); const leaveMain = () => import("@/modules/09_leave/views/LeaveListMain.vue"); const reportMain = () => import("@/modules/09_leave/views/ReportMain.vue"); +const reportDetail = () => + import("@/modules/09_leave/components/3_Report/DetailReport.vue"); const leaveDetail = () => import("@/modules/09_leave/components/2_Leave/DetailLeave.vue"); const leaveDetailReject = () => @@ -102,4 +104,14 @@ export default [ Role: "coin", }, }, + { + path: "/statistics-report/:type", + name: "/statistics-report-detail", + component: reportDetail, + meta: { + Auth: true, + Key: [9], + Role: "coin", + }, + }, ]; diff --git a/src/modules/09_leave/views/ReportMain.vue b/src/modules/09_leave/views/ReportMain.vue index d57fa0695..4892317d7 100644 --- a/src/modules/09_leave/views/ReportMain.vue +++ b/src/modules/09_leave/views/ReportMain.vue @@ -1,9 +1,66 @@ - + - + diff --git a/src/modules/11_discipline/components/1_Complaint/EditPage.vue b/src/modules/11_discipline/components/1_Complaint/EditPage.vue index d146070de..961952540 100644 --- a/src/modules/11_discipline/components/1_Complaint/EditPage.vue +++ b/src/modules/11_discipline/components/1_Complaint/EditPage.vue @@ -15,7 +15,7 @@ import type { } from "@/modules/11_discipline/interface/request/complaint"; import { useCounterMixin } from "@/stores/mixin"; import { useComplainstDataStore } from "@/modules/11_discipline/store/ComplaintsStore"; -import { useDisciplineMainStore } from "@/modules/11_discipline/store"; +import { useDisciplineMainStore } from "@/modules/11_discipline/store/main"; const complainstStore = useComplainstDataStore(); const mainStore = useDisciplineMainStore(); @@ -378,3 +378,4 @@ onMounted(() => { /> +@/modules/11_discipline/store/store \ No newline at end of file diff --git a/src/modules/11_discipline/components/1_Complaint/Form.vue b/src/modules/11_discipline/components/1_Complaint/Form.vue index 15526f584..6ffb3223f 100644 --- a/src/modules/11_discipline/components/1_Complaint/Form.vue +++ b/src/modules/11_discipline/components/1_Complaint/Form.vue @@ -12,7 +12,7 @@ import type { /** importStroe*/ import { useCounterMixin } from "@/stores/mixin"; import { useComplainstDataStore } from "@/modules/11_discipline/store/ComplaintsStore"; -import { useDisciplineMainStore } from "@/modules/11_discipline/store"; +import { useDisciplineMainStore } from "@/modules/11_discipline/store/main"; import DialogAddPersonal from "@/components/Dialogs/AddPersonal.vue"; import config from "@/app.config"; @@ -366,7 +366,7 @@ onMounted(() => {
-
+
{
@@ -425,7 +425,7 @@ onMounted(() => { />
-
+
{ min-height: 25px; } +@/modules/11_discipline/store/store \ No newline at end of file diff --git a/src/modules/11_discipline/components/1_Complaint/TableComplaint.vue b/src/modules/11_discipline/components/1_Complaint/TableComplaint.vue index 16f9f8b54..2b9eaff7f 100644 --- a/src/modules/11_discipline/components/1_Complaint/TableComplaint.vue +++ b/src/modules/11_discipline/components/1_Complaint/TableComplaint.vue @@ -4,7 +4,7 @@ import { ref, onMounted, watch } from "vue"; import type { QTableProps } from "quasar"; // importStroe import { useComplainstDataStore } from "@/modules/11_discipline/store/ComplaintsStore"; -import { useRoute, useRouter } from "vue-router"; +import { useRouter } from "vue-router"; const currentPage = ref(1); const router = useRouter(); const complainstStore = useComplainstDataStore(); diff --git a/src/modules/11_discipline/components/2_InvestigateFacts/EditPage.vue b/src/modules/11_discipline/components/2_InvestigateFacts/EditPage.vue index a3b5101f5..563328d3a 100644 --- a/src/modules/11_discipline/components/2_InvestigateFacts/EditPage.vue +++ b/src/modules/11_discipline/components/2_InvestigateFacts/EditPage.vue @@ -5,7 +5,7 @@ import FormInvestigatefacts from "@/modules/11_discipline/components/2_Investiga import { useRoute } from "vue-router"; import { useCounterMixin } from "@/stores/mixin"; import { useInvestigateFactStore } from "@/modules/11_discipline/store/InvestigateFactStore"; -import { useDisciplineMainStore } from "@/modules/11_discipline/store"; +import { useDisciplineMainStore } from "@/modules/11_discipline/store/main"; import { useQuasar } from "quasar"; import PopupSendToNext from "@/modules/11_discipline/components/PopupSendToNext.vue"; import type { FormData } from "@/modules/11_discipline/interface/request/investigateFact"; @@ -14,7 +14,6 @@ import type { ArrayPerson, ArrayFileList, } from "@/modules/11_discipline/interface/request/complaint"; -import type { QTableProps } from "quasar"; import config from "@/app.config"; import http from "@/plugins/http"; @@ -382,4 +381,4 @@ watch( padding: 0; background-color: #f0f3f3; } - + \ No newline at end of file diff --git a/src/modules/11_discipline/components/2_InvestigateFacts/Form.vue b/src/modules/11_discipline/components/2_InvestigateFacts/Form.vue index edf07e8fd..819e7b350 100644 --- a/src/modules/11_discipline/components/2_InvestigateFacts/Form.vue +++ b/src/modules/11_discipline/components/2_InvestigateFacts/Form.vue @@ -2,14 +2,13 @@ import { useRouter, useRoute } from "vue-router"; import { onMounted, ref, watch, reactive, computed } from "vue"; import { useQuasar } from "quasar"; -import type { QTableProps } from "quasar"; import DialogDirector from "@/modules/11_discipline/components/DialogDirector.vue"; import DialogAddPersonal from "@/components/Dialogs/AddPersonal.vue"; -import Table from "@/modules/11_discipline/components/3_InvestigateDisciplinary/DirectorTable.vue"; +import Table from "@/modules/11_discipline/components/DirectorTable.vue"; import { useCounterMixin } from "@/stores/mixin"; import { useInvestigateDisStore } from "@/modules/11_discipline/store/InvestigateDisStore"; import { useInvestigateFactStore } from "@/modules/11_discipline/store/InvestigateFactStore"; -import { useDisciplineMainStore } from "@/modules/11_discipline/store"; +import { useDisciplineMainStore } from "@/modules/11_discipline/store/main"; import type { FormData, @@ -1333,3 +1332,4 @@ onMounted(async () => { min-height: 25px; } +@/modules/11_discipline/store/store \ No newline at end of file diff --git a/src/modules/11_discipline/components/2_InvestigateFacts/MainPage.vue b/src/modules/11_discipline/components/2_InvestigateFacts/MainPage.vue index 508b5650d..e2486664d 100644 --- a/src/modules/11_discipline/components/2_InvestigateFacts/MainPage.vue +++ b/src/modules/11_discipline/components/2_InvestigateFacts/MainPage.vue @@ -11,15 +11,8 @@ import http from "@/plugins/http"; import { useInvestigateFactStore } from "@/modules/11_discipline/store/InvestigateFactStore"; const dataInvestigate = useInvestigateFactStore(); const mixin = useCounterMixin(); -const { - date2Thai, - success, - messageError, - showLoader, - hideLoader, - dialogConfirm, - dialogRemove, -} = mixin; +const { messageError, showLoader, hideLoader } = mixin; + const $q = useQuasar(); //ใช้ noti quasar /** ค้นหาข้อมูลในตาราง */ diff --git a/src/modules/11_discipline/components/3_InvestigateDisciplinary/EditPage.vue b/src/modules/11_discipline/components/3_InvestigateDisciplinary/EditPage.vue index 9fa98b97d..2af0d5d41 100644 --- a/src/modules/11_discipline/components/3_InvestigateDisciplinary/EditPage.vue +++ b/src/modules/11_discipline/components/3_InvestigateDisciplinary/EditPage.vue @@ -5,7 +5,6 @@ import { useRouter, useRoute } from "vue-router"; import type { QTableProps } from "quasar"; import http from "@/plugins/http"; import config from "@/app.config"; -import DialogDirector from "@/modules/11_discipline/components/DialogDirector.vue"; /**import component*/ import FormComplaints from "@/modules/11_discipline/components/1_Complaint/Form.vue"; //เรื่องร้องเรียน import FormInvestigatefacts from "@/modules/11_discipline/components/2_InvestigateFacts/Form.vue"; //สืบสวนข้อเท็จจริง diff --git a/src/modules/11_discipline/components/3_InvestigateDisciplinary/Form.vue b/src/modules/11_discipline/components/3_InvestigateDisciplinary/Form.vue index 8fa299b48..f0db9c131 100644 --- a/src/modules/11_discipline/components/3_InvestigateDisciplinary/Form.vue +++ b/src/modules/11_discipline/components/3_InvestigateDisciplinary/Form.vue @@ -24,15 +24,14 @@ import type { DataOptionRes } from "@/modules/11_discipline/interface/response/M /** import components*/ import DialogAddPersonal from "@/components/Dialogs/AddPersonal.vue"; import DialogDirector from "@/modules/11_discipline/components/DialogDirector.vue"; -import Table from "@/modules/11_discipline/components/3_InvestigateDisciplinary/DirectorTable.vue"; +import Table from "@/modules/11_discipline/components/DirectorTable.vue"; import UploadFile from "@/modules/11_discipline/components/UploadFile.vue"; /** import store*/ import { useCounterMixin } from "@/stores/mixin"; import { useComplainstDataStore } from "@/modules/11_discipline/store/ComplaintsStore"; import { useInvestigateDisStore } from "@/modules/11_discipline/store/InvestigateDisStore"; -import { useDisciplineMainStore } from "@/modules/11_discipline/store"; -import { co } from "@fullcalendar/core/internal-common"; +import { useDisciplineMainStore } from "@/modules/11_discipline/store/main"; const complainstStore = useComplainstDataStore(); const investigateDis = useInvestigateDisStore(); @@ -1388,3 +1387,4 @@ onMounted(async () => { /> +@/modules/11_discipline/store/store \ No newline at end of file diff --git a/src/modules/11_discipline/components/4_Result/Form.vue b/src/modules/11_discipline/components/4_Result/Form.vue index e9be65818..f94590047 100644 --- a/src/modules/11_discipline/components/4_Result/Form.vue +++ b/src/modules/11_discipline/components/4_Result/Form.vue @@ -8,7 +8,7 @@ import { useRouter, useRoute } from "vue-router"; import { useCounterMixin } from "@/stores/mixin"; import { useInvestigateDisStore } from "@/modules/11_discipline/store/InvestigateDisStore"; import { useDisciplineResultStore } from "@/modules/11_discipline/store/ResultStore"; -import { useDisciplineMainStore } from "@/modules/11_discipline/store"; +import { useDisciplineMainStore } from "@/modules/11_discipline/store/main"; import type { FormData, @@ -144,7 +144,6 @@ watch( async () => { console.log(props.data); respondentType.value = props.data.respondentType; - mainStore.rowsAdd = props.data.persons await fetchDatadetail(); await fetchOrganization(); } diff --git a/src/modules/11_discipline/components/3_InvestigateDisciplinary/DirectorTable.vue b/src/modules/11_discipline/components/DirectorTable.vue similarity index 100% rename from src/modules/11_discipline/components/3_InvestigateDisciplinary/DirectorTable.vue rename to src/modules/11_discipline/components/DirectorTable.vue diff --git a/src/modules/11_discipline/interface/request/complaint.ts b/src/modules/11_discipline/interface/request/complaint.ts index 6f7d00b5e..d4d3e10d9 100644 --- a/src/modules/11_discipline/interface/request/complaint.ts +++ b/src/modules/11_discipline/interface/request/complaint.ts @@ -33,6 +33,7 @@ interface ArrayPerson { salary:number|null organization:string } + interface ArrayFileList { id:string pathName:string diff --git a/src/modules/11_discipline/store/ComplaintsStore.ts b/src/modules/11_discipline/store/ComplaintsStore.ts index dd8a51d2f..00b8d11d3 100644 --- a/src/modules/11_discipline/store/ComplaintsStore.ts +++ b/src/modules/11_discipline/store/ComplaintsStore.ts @@ -10,7 +10,7 @@ import type { } from "@/modules/11_discipline/interface/response/complaint"; import type { ArrayPerson } from "@/modules/11_discipline/interface/request/complaint"; import type { QTableProps } from "quasar"; -import { useDisciplineMainStore } from "@/modules/11_discipline/store"; +import { useDisciplineMainStore } from "@/modules/11_discipline/store/main"; const mainStore = useDisciplineMainStore(); const mixin = useCounterMixin(); diff --git a/src/modules/11_discipline/store/InvestigateFactStore.ts b/src/modules/11_discipline/store/InvestigateFactStore.ts index 488a6bdd8..ae88f08a0 100644 --- a/src/modules/11_discipline/store/InvestigateFactStore.ts +++ b/src/modules/11_discipline/store/InvestigateFactStore.ts @@ -12,7 +12,7 @@ import type { ListData, ocListType, } from "@/modules/11_discipline/interface/response/investigate"; -import { useDisciplineMainStore } from "@/modules/11_discipline/store"; +import { useDisciplineMainStore } from "@/modules/11_discipline/store/main"; const mainStore = useDisciplineMainStore(); const mixin = useCounterMixin(); diff --git a/src/modules/11_discipline/store/ResultStore.ts b/src/modules/11_discipline/store/ResultStore.ts index 7ec74aa53..d8657eb57 100644 --- a/src/modules/11_discipline/store/ResultStore.ts +++ b/src/modules/11_discipline/store/ResultStore.ts @@ -12,8 +12,13 @@ import type { } from "@/modules/11_discipline/interface/response/result"; import { useCounterMixin } from "@/stores/mixin"; +<<<<<<< HEAD import { useDisciplineMainStore } from "@/modules/11_discipline/store"; +======= +import { useDisciplineMainStore } from "@/modules/11_discipline/store/main"; +import { useCounterMixin } from "@/stores/mixin"; +>>>>>>> develop const mixin = useCounterMixin(); const storeMain = useDisciplineMainStore(); const { date2Thai } = mixin; @@ -251,7 +256,6 @@ export const useDisciplineResultStore = defineStore( fetchList, rows, rows2, - fecthDirector, visibleColumns, columns, visibleColumnsDirector, diff --git a/src/modules/11_discipline/store.ts b/src/modules/11_discipline/store/main.ts similarity index 100% rename from src/modules/11_discipline/store.ts rename to src/modules/11_discipline/store/main.ts