From 44964b18f8cec2c6b354dd211b5ef2fe2a571d4e Mon Sep 17 00:00:00 2001 From: setthawutttty Date: Mon, 18 Dec 2023 13:51:21 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=A3=E0=B8=B2=E0=B8=A2=E0=B8=81=E0=B8=B2?= =?UTF-8?q?=E0=B8=A3=E0=B8=8A=E0=B8=B7=E0=B9=88=E0=B8=AD=E0=B8=81=E0=B8=A3?= =?UTF-8?q?=E0=B8=A3=E0=B8=A1=E0=B8=81=E0=B8=B2=E0=B8=A3=20/=E0=B8=9B?= =?UTF-8?q?=E0=B8=A3=E0=B8=B0=E0=B8=8A=E0=B8=B8=E0=B8=A1=20**=20=E0=B8=81?= =?UTF-8?q?=E0=B8=A3=E0=B8=A3=E0=B8=A1=E0=B8=81=E0=B8=B2=E0=B8=A3=20?= =?UTF-8?q?=E0=B8=A3=E0=B8=AD=20api=20=E0=B8=A2=E0=B8=B1=E0=B8=87=E0=B9=84?= =?UTF-8?q?=E0=B8=A1=E0=B9=88=E0=B9=84=E0=B8=94=E0=B9=89=E0=B8=9B=E0=B8=A3?= =?UTF-8?q?=E0=B8=B1=E0=B8=9A=20=E0=B8=A2=E0=B8=B1=E0=B8=87=E0=B9=80?= =?UTF-8?q?=E0=B8=9B=E0=B9=87=E0=B8=99=20=E0=B8=82=E0=B8=AD=E0=B8=87?= =?UTF-8?q?=E0=B8=A7=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 --- .../components/Director/AddPage.vue | 64 ++++ .../components/Director/EditPage.vue | 111 ++++++ .../components/Director/Form.vue | 297 +++++++++++++++ .../components/Director/MainPage.vue | 246 ++++++++++++ .../components/Meeting/AddPage.vue | 64 ++++ .../components/Meeting/EditPage.vue | 111 ++++++ .../components/Meeting/Form.vue | 349 ++++++++++++++++++ .../components/Meeting/MainPage.vue | 291 +++++++++++++++ .../interface/index/meeting.ts | 43 +++ src/modules/12_evaluatePersonal/router.ts | 71 +++- .../12_evaluatePersonal/store/MeetingStore.ts | 80 ++++ 11 files changed, 1725 insertions(+), 2 deletions(-) create mode 100644 src/modules/12_evaluatePersonal/components/Director/AddPage.vue create mode 100644 src/modules/12_evaluatePersonal/components/Director/EditPage.vue create mode 100644 src/modules/12_evaluatePersonal/components/Director/Form.vue create mode 100644 src/modules/12_evaluatePersonal/components/Director/MainPage.vue create mode 100644 src/modules/12_evaluatePersonal/components/Meeting/AddPage.vue create mode 100644 src/modules/12_evaluatePersonal/components/Meeting/EditPage.vue create mode 100644 src/modules/12_evaluatePersonal/components/Meeting/Form.vue create mode 100644 src/modules/12_evaluatePersonal/components/Meeting/MainPage.vue create mode 100644 src/modules/12_evaluatePersonal/interface/index/meeting.ts create mode 100644 src/modules/12_evaluatePersonal/store/MeetingStore.ts diff --git a/src/modules/12_evaluatePersonal/components/Director/AddPage.vue b/src/modules/12_evaluatePersonal/components/Director/AddPage.vue new file mode 100644 index 000000000..4abd3a368 --- /dev/null +++ b/src/modules/12_evaluatePersonal/components/Director/AddPage.vue @@ -0,0 +1,64 @@ + + diff --git a/src/modules/12_evaluatePersonal/components/Director/EditPage.vue b/src/modules/12_evaluatePersonal/components/Director/EditPage.vue new file mode 100644 index 000000000..98692b300 --- /dev/null +++ b/src/modules/12_evaluatePersonal/components/Director/EditPage.vue @@ -0,0 +1,111 @@ + + diff --git a/src/modules/12_evaluatePersonal/components/Director/Form.vue b/src/modules/12_evaluatePersonal/components/Director/Form.vue new file mode 100644 index 000000000..351cf92bf --- /dev/null +++ b/src/modules/12_evaluatePersonal/components/Director/Form.vue @@ -0,0 +1,297 @@ + + diff --git a/src/modules/12_evaluatePersonal/components/Director/MainPage.vue b/src/modules/12_evaluatePersonal/components/Director/MainPage.vue new file mode 100644 index 000000000..d3e648423 --- /dev/null +++ b/src/modules/12_evaluatePersonal/components/Director/MainPage.vue @@ -0,0 +1,246 @@ + + diff --git a/src/modules/12_evaluatePersonal/components/Meeting/AddPage.vue b/src/modules/12_evaluatePersonal/components/Meeting/AddPage.vue new file mode 100644 index 000000000..183dfd9c0 --- /dev/null +++ b/src/modules/12_evaluatePersonal/components/Meeting/AddPage.vue @@ -0,0 +1,64 @@ + + diff --git a/src/modules/12_evaluatePersonal/components/Meeting/EditPage.vue b/src/modules/12_evaluatePersonal/components/Meeting/EditPage.vue new file mode 100644 index 000000000..27c50fba8 --- /dev/null +++ b/src/modules/12_evaluatePersonal/components/Meeting/EditPage.vue @@ -0,0 +1,111 @@ + + diff --git a/src/modules/12_evaluatePersonal/components/Meeting/Form.vue b/src/modules/12_evaluatePersonal/components/Meeting/Form.vue new file mode 100644 index 000000000..e40f3a613 --- /dev/null +++ b/src/modules/12_evaluatePersonal/components/Meeting/Form.vue @@ -0,0 +1,349 @@ + + diff --git a/src/modules/12_evaluatePersonal/components/Meeting/MainPage.vue b/src/modules/12_evaluatePersonal/components/Meeting/MainPage.vue new file mode 100644 index 000000000..7d49ce0a3 --- /dev/null +++ b/src/modules/12_evaluatePersonal/components/Meeting/MainPage.vue @@ -0,0 +1,291 @@ + + diff --git a/src/modules/12_evaluatePersonal/interface/index/meeting.ts b/src/modules/12_evaluatePersonal/interface/index/meeting.ts new file mode 100644 index 000000000..0099dad4b --- /dev/null +++ b/src/modules/12_evaluatePersonal/interface/index/meeting.ts @@ -0,0 +1,43 @@ +interface DataResponseList { + id: string + rounded: string + title: string + dateStart: Date + dateEnd: Date +} + +interface MainList { + id: string + rounded: string + title: string + date: string +} + +interface FormData { + rounded: string + dateMeeting: string + consider: string + period: string + file: FileOj[] +} + +interface FileOj{ + id:string + pathName:string + fileName:string +} + +interface FormRef { + rounded: object | null; + dateMeeting: object | null; + consider: object | null; + period: object | null; + [key: string]: any; +} +export type { + DataResponseList, + MainList, + FormData, + FormRef, + FileOj +} \ No newline at end of file diff --git a/src/modules/12_evaluatePersonal/router.ts b/src/modules/12_evaluatePersonal/router.ts index 376c2328d..dd7e01cb3 100644 --- a/src/modules/12_evaluatePersonal/router.ts +++ b/src/modules/12_evaluatePersonal/router.ts @@ -1,6 +1,13 @@ const mainPage = () => import("@/modules/12_evaluatePersonal/views/MainPage.vue"); -const detailPage = () => - import("@/modules/12_evaluatePersonal/views/DetailPage.vue"); +const detailPage = () => import("@/modules/12_evaluatePersonal/views/DetailPage.vue"); + +const directorPage = () => import("@/modules/12_evaluatePersonal/components/Director/MainPage.vue"); +const directorAddPage = () => import("@/modules/12_evaluatePersonal/components/Director/AddPage.vue"); +const directorEditPage = () => import("@/modules/12_evaluatePersonal/components/Director/EditPage.vue"); + +const meetingPage = () => import("@/modules/12_evaluatePersonal/components/Meeting/MainPage.vue"); +const meetingAddPage = () => import("@/modules/12_evaluatePersonal/components/Meeting/AddPage.vue"); +const meetingEditPage = () => import("@/modules/12_evaluatePersonal/components/Meeting/EditPage.vue"); export default [ { @@ -23,4 +30,64 @@ export default [ Role: "discipline", }, }, + { + path: "/evaluate/director", + name: "evaluateDirector", + component: directorPage, + meta: { + Auth: true, + Key: [12.2], + Role: "discipline", + }, + }, + { + path: "/evaluate/director/add", + name: "evaluateDirectorAdd", + component: directorAddPage, + meta: { + Auth: true, + Key: [12.2], + Role: "discipline", + }, + }, + { + path: "/evaluate/director/:id", + name: "evaluateDirectorEdit", + component: directorEditPage, + meta: { + Auth: true, + Key: [12.2], + Role: "discipline", + }, + }, + { + path: "/evaluate/meeting", + name: "evaluateMeeting", + component: meetingPage, + meta: { + Auth: true, + Key: [12.2], + Role: "discipline", + }, + }, + { + path: "/evaluate/meeting/add", + name: "evaluateMeetingAdd", + component: meetingAddPage, + meta: { + Auth: true, + Key: [12.2], + Role: "discipline", + }, + }, + { + path: "/evaluate/meeting/:id", + name: "evaluateMeetingEdit", + component: meetingEditPage, + meta: { + Auth: true, + Key: [12.2], + Role: "discipline", + }, + }, ]; \ No newline at end of file diff --git a/src/modules/12_evaluatePersonal/store/MeetingStore.ts b/src/modules/12_evaluatePersonal/store/MeetingStore.ts new file mode 100644 index 000000000..cf675888d --- /dev/null +++ b/src/modules/12_evaluatePersonal/store/MeetingStore.ts @@ -0,0 +1,80 @@ +import { defineStore } from "pinia"; +import { ref } from "vue"; +import { useCounterMixin } from "@/stores/mixin"; +import type { DataResponseList, MainList } from "@/modules/12_evaluatePersonal/interface/index/meeting"; +import type { QTableProps } from "quasar"; + +// store ระบบวินัย >> ข้อมูลพื้นฐาน >> กรรมการ +export const useEvaluateMeetingDataStore = defineStore( + "evaluateMeeting", + () => { + const mixin = useCounterMixin() + const { date2Thai } = mixin + //ค้นหา คอลัมน์ คอลัมน์ที่แสดง + const visibleColumns = ref([ + "no", + "rounded", + "title", + "date", + ]); + + // หัวตาราง + const columns = ref([ + { + name: "no", + align: "left", + label: "ลำดับ", + sortable: false, + field: "no", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + }, + { + name: "rounded", + align: "left", + label: "ครั้งที่", + sortable: true, + field: "rounded", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + }, + { + name: "title", + align: "left", + label: "เรื่อง", + sortable: true, + field: "title", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + }, + { + name: "date", + align: "left", + label: "วันเวลาในการประชุม", + sortable: true, + field: "date", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + }, + ]); + + // ข้อมูลในตาราง + const rows = ref([]); + function fetchData(data: DataResponseList[]) { + const dataList: MainList[] = data.map((item: DataResponseList) => ({ + id: item.id, + rounded: item.rounded, + title: item.title, + date: `${date2Thai(item.dateStart as Date)} - ${date2Thai(item.dateEnd as Date)}` + })) + rows.value = dataList + } + + return { + visibleColumns, + columns, + rows, + fetchData + }; + } +);