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, + }; +});