From d2c6837a86d491eb9aed460adacd70b3ff0d5af4 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Mon, 18 Dec 2023 18:12:38 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=AD=E0=B8=AD=E0=B8=81=E0=B8=84=E0=B8=B3?= =?UTF-8?q?=E0=B8=AA=E0=B8=B1=E0=B9=88=E0=B8=87=E0=B8=A5=E0=B8=87=E0=B9=82?= =?UTF-8?q?=E0=B8=97=E0=B8=A9=E0=B8=97=E0=B8=B2=E0=B8=87=E0=B8=A7=E0=B8=B4?= =?UTF-8?q?=E0=B8=99=E0=B8=B1=E0=B8=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/10_order/components/Detail.vue | 2 +- .../components/9_Order/MainPage.vue | 591 +++++++++++++++--- .../components/9_Order/TableOrder.vue | 104 ++- .../11_discipline/interface/response/order.ts | 48 +- src/modules/11_discipline/router.ts | 14 +- src/modules/11_discipline/store/OrderStore.ts | 110 +++- 6 files changed, 699 insertions(+), 170 deletions(-) diff --git a/src/modules/10_order/components/Detail.vue b/src/modules/10_order/components/Detail.vue index ee0574808..f9bad1bd8 100644 --- a/src/modules/10_order/components/Detail.vue +++ b/src/modules/10_order/components/Detail.vue @@ -88,7 +88,7 @@ onMounted(() => { flat color="primary" class="q-mr-sm" - @click="router.push('/order'), destroyLocalStorage()" + @click="router.go(-1), destroyLocalStorage()" /> ออกคำสั่ง diff --git a/src/modules/11_discipline/components/9_Order/MainPage.vue b/src/modules/11_discipline/components/9_Order/MainPage.vue index ea54f4e37..a75b6ffcb 100644 --- a/src/modules/11_discipline/components/9_Order/MainPage.vue +++ b/src/modules/11_discipline/components/9_Order/MainPage.vue @@ -1,113 +1,512 @@ - + diff --git a/src/modules/11_discipline/components/9_Order/TableOrder.vue b/src/modules/11_discipline/components/9_Order/TableOrder.vue index af1b6247a..046e16740 100644 --- a/src/modules/11_discipline/components/9_Order/TableOrder.vue +++ b/src/modules/11_discipline/components/9_Order/TableOrder.vue @@ -1,5 +1,6 @@ diff --git a/src/modules/11_discipline/interface/response/order.ts b/src/modules/11_discipline/interface/response/order.ts index b0957c850..26b27a7c5 100644 --- a/src/modules/11_discipline/interface/response/order.ts +++ b/src/modules/11_discipline/interface/response/order.ts @@ -1,25 +1,35 @@ interface DataList { - subject: string - ordernumber: string - dateOrder: string | null; - orderby: string - signer: string - statusorder: string - + fiscalYear: string; + orderBy: string; + orderById: string; + orderByOrganization: string; + orderDate: string | null; + orderId: string; + orderName: string; + orderNo: string; + orderStatusName: string; + orderStatusValue: string; + orderTypeName: string; + orderTypeValue: string; + signatoryBy: string; + signatoryPosition: string; } interface DataListRes { - subject: string - ordernumber: string - dateOrder: Date - orderby: string - signer: string - statusorder: string + fiscalYear: string; + orderBy: string; + orderById: string; + orderByOrganization: string; + orderDate: Date; + orderId: string; + orderName: string; + orderNo: string; + orderStatusName: string; + orderStatusValue: string; + orderTypeName: string; + orderTypeValue: string; + signatoryBy: string; + signatoryPosition: string; } - - -export type { - DataList, - DataListRes -} \ No newline at end of file +export type { DataList, DataListRes }; diff --git a/src/modules/11_discipline/router.ts b/src/modules/11_discipline/router.ts index 7d05cc5fe..544eae904 100644 --- a/src/modules/11_discipline/router.ts +++ b/src/modules/11_discipline/router.ts @@ -73,6 +73,8 @@ const appealComplainAdd = () => import("@/modules/11_discipline/components/8_AppealComplain/AddPage.vue"); const appealComplainEdit = () => import("@/modules/11_discipline/components/8_AppealComplain/EditPage.vue"); + +const DetailPage = () => import("@/modules/10_order/components/Detail.vue"); export default [ { path: "/discipline/complaints", @@ -329,7 +331,17 @@ export default [ { path: "/discipline-order/add", name: "disciplineOrderAdd", - component: orderPage, + component: DetailPage, + meta: { + Auth: true, + Key: [11.4], + Role: "discipline", + }, + }, + { + path: "/discipline-order/detail/:orderid", + name: "disciplineOrderDatail", + component: DetailPage, meta: { Auth: true, Key: [11.4], diff --git a/src/modules/11_discipline/store/OrderStore.ts b/src/modules/11_discipline/store/OrderStore.ts index c0278653a..daef1bf0e 100644 --- a/src/modules/11_discipline/store/OrderStore.ts +++ b/src/modules/11_discipline/store/OrderStore.ts @@ -4,30 +4,94 @@ import { ref } from "vue"; import { useCounterMixin } from "@/stores/mixin"; import type { QTableProps } from "quasar"; -import type { DataList, DataListRes } from "@/modules/11_discipline/interface/response/order" +import type { + DataList, + DataListRes, +} from "@/modules/11_discipline/interface/response/order"; -const mixin = useCounterMixin() -const { date2Thai } = mixin +const mixin = useCounterMixin(); +const { date2Thai } = mixin; export const useOrderStore = defineStore("DisciplineOrder", () => { - const rows = ref([]) - const columns = ref([]); - const visibleColumns = ref([]); - async function fetchOrder(data: DataListRes[]) { - let datalist: DataList[] = data.map((e: DataListRes) => ({ - subject: e.subject, - ordernumber: e.ordernumber, - dateOrder: date2Thai(e.dateOrder), - orderby: e.orderby, - signer: e.signer, - statusorder: e.statusorder - })) - rows.value = datalist - } + const columns = ref([]); + const visibleColumns = ref([]); - return { - rows, - columns, - visibleColumns, - fetchOrder + const mainData = ref([]); + const rows = ref([]); + + async function fetchOrder(data: DataListRes[]) { + let datalist: DataList[] = data.map((e: DataListRes) => ({ + fiscalYear: e.fiscalYear, + orderBy: e.orderBy, + orderById: e.orderById, + orderByOrganization: e.orderByOrganization, + orderDate: e.orderDate ? date2Thai(e.orderDate) : "", + orderId: e.orderId, + orderName: e.orderName, + orderNo: e.orderNo, + orderStatusName: e.orderStatusName, + orderStatusValue: e.orderStatusValue, + orderTypeName: e.orderTypeName, + orderTypeValue: e.orderTypeValue, + signatoryBy: e.signatoryBy, + signatoryPosition: e.signatoryPosition, + })); + mainData.value = datalist; + filterListOrder("", "ทั้งหมด", 0); + } + + function filterListOrder( + filter_1: string, + filter_2: string, + filterYear: number | null + ) { + rows.value = []; + if (filter_1 === "" && filter_2 === "ทั้งหมด" && filterYear === 0) { + rows.value = mainData.value; + } else if (filter_1 !== "" && filter_2 === "ทั้งหมด" && filterYear === 0) { + rows.value = mainData.value.filter( + (item) => item.orderTypeValue === filter_1 + ); + } else if (filter_1 === "" && filter_2 !== "ทั้งหมด" && filterYear === 0) { + rows.value = mainData.value.filter( + (item) => item.orderStatusName === filter_2 + ); + } else if (filter_1 === "" && filter_2 === "ทั้งหมด" && filterYear !== 0) { + rows.value = mainData.value.filter( + (item) => Number(item.fiscalYear) === filterYear + ); + } else if (filter_1 !== "" && filter_2 !== "ทั้งหมด" && filterYear === 0) { + rows.value = mainData.value.filter( + (item) => + item.orderTypeValue === filter_1 && item.orderStatusName === filter_2 + ); + } else if (filter_1 !== "" && filter_2 === "ทั้งหมด" && filterYear !== 0) { + rows.value = mainData.value.filter( + (item) => + item.orderTypeValue === filter_1 && + Number(item.fiscalYear) === filterYear + ); + } else if (filter_1 === "" && filter_2 !== "ทั้งหมด" && filterYear !== 0) { + rows.value = mainData.value.filter( + (item) => + item.orderStatusName === filter_2 && + Number(item.fiscalYear) === filterYear + ); + } else if (filter_1 !== "" && filter_2 !== "ทั้งหมด" && filterYear !== 0) { + rows.value = mainData.value.filter( + (item) => + item.orderTypeValue === filter_1 && + item.orderStatusName === filter_2 && + Number(item.fiscalYear) === filterYear + ); } -}) \ No newline at end of file + } + + return { + rows, + mainData, + columns, + visibleColumns, + fetchOrder, + filterListOrder, + }; +});