From 07130bd70238537f13976862a0e9451cb29bad25 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Tue, 29 Oct 2024 10:27:08 +0700 Subject: [PATCH 1/2] =?UTF-8?q?=E0=B8=88=E0=B8=B1=E0=B8=94=E0=B8=81?= =?UTF-8?q?=E0=B8=B2=E0=B8=A3=E0=B8=95=E0=B8=B3=E0=B9=81=E0=B8=AB=E0=B8=99?= =?UTF-8?q?=E0=B9=88=E0=B8=87=E0=B8=95=E0=B8=B4=E0=B8=94=E0=B9=80=E0=B8=87?= =?UTF-8?q?=E0=B8=B7=E0=B9=88=E0=B8=AD=E0=B8=99=E0=B9=84=E0=B8=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/DialogCondition.vue | 96 +++ src/modules/19_condition/router.ts | 14 + src/modules/19_condition/view/Main.vue | 555 ++++++++++++++++++ src/router/index.ts | 2 + 4 files changed, 667 insertions(+) create mode 100644 src/modules/19_condition/components/DialogCondition.vue create mode 100644 src/modules/19_condition/router.ts create mode 100644 src/modules/19_condition/view/Main.vue diff --git a/src/modules/19_condition/components/DialogCondition.vue b/src/modules/19_condition/components/DialogCondition.vue new file mode 100644 index 000000000..6401d18f8 --- /dev/null +++ b/src/modules/19_condition/components/DialogCondition.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/src/modules/19_condition/router.ts b/src/modules/19_condition/router.ts new file mode 100644 index 000000000..8a51b1869 --- /dev/null +++ b/src/modules/19_condition/router.ts @@ -0,0 +1,14 @@ +const mainView = () => import("@/modules/19_condition/view/Main.vue"); + +export default [ + { + path: "/position-condition", + name: "positionCondition", + component: mainView, + meta: { + Auth: true, + Key: "COMMAND", + Role: "STAFF", + }, + }, +]; diff --git a/src/modules/19_condition/view/Main.vue b/src/modules/19_condition/view/Main.vue new file mode 100644 index 000000000..6da1a888c --- /dev/null +++ b/src/modules/19_condition/view/Main.vue @@ -0,0 +1,555 @@ + + + + + diff --git a/src/router/index.ts b/src/router/index.ts index 044391b25..40b972575 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -28,6 +28,7 @@ import ModuleDevelopment from "@/modules/15_development/router"; import ModuleSupport from "@/modules/00_support/router"; import ModuleActing from "@/modules/17_acting/router"; import ModuleCommand from "@/modules/18_command/router"; +import ModulePositionCondition from "@/modules/19_condition/router"; // TODO: ใช้หรือไม่? import { authenticated } from "@/plugins/auth"; @@ -76,6 +77,7 @@ const router = createRouter({ ...ModuleSupport, ...ModuleActing, ...ModuleCommand, + ...ModulePositionCondition, ], }, /** From 8964ea708af4b21dccd92d0ff06b7d4b03449443 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Tue, 29 Oct 2024 11:07:52 +0700 Subject: [PATCH 2/2] Permission Command --- .../18_command/components/Main/TableMain.vue | 36 +++++++++++++++---- src/modules/18_command/views/lists.vue | 6 ++-- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/src/modules/18_command/components/Main/TableMain.vue b/src/modules/18_command/components/Main/TableMain.vue index 90d016522..a0b61a8fc 100644 --- a/src/modules/18_command/components/Main/TableMain.vue +++ b/src/modules/18_command/components/Main/TableMain.vue @@ -2,11 +2,12 @@ import { onMounted, ref, watch } from "vue"; import { useQuasar } from "quasar"; -import http from "@/plugins/http"; -import config from "@/app.config"; import { useRouter } from "vue-router"; +import { checkPermission } from "@/utils/permissions"; import { useCounterMixin } from "@/stores/mixin"; import { useCommandListStore } from "@/modules/18_command/store/ListStore"; +import http from "@/plugins/http"; +import config from "@/app.config"; import type { QTableProps } from "quasar"; import type { Pagination } from "@/modules/18_command/interface/index/Main"; @@ -234,6 +235,18 @@ onMounted(() => { round color="secondary" icon="mdi-dots-horizontal-circle-outline" + v-if=" + store.tabsMain === 'DRAFT' || + store.tabsMain === 'PENDING' || + store.tabsMain === 'CANCEL' + ? checkPermission($route)?.attrIsGet || + checkPermission($route)?.attrIsCreate || + checkPermission($route)?.attrIsDelete + : store.tabsMain === 'WAITING' || store.tabsMain === 'REPORTED' + ? checkPermission($route)?.attrIsGet || + checkPermission($route)?.attrIsCreate + : '' + " > @@ -242,7 +255,9 @@ onMounted(() => { v-if=" store.tabsMain !== 'WAITING' && store.tabsMain !== 'CANCEL' && - store.tabsMain !== 'REPORTED' + store.tabsMain !== 'REPORTED' && + checkPermission($route)?.attrIsGet && + checkPermission($route)?.attrIsCreate " clickable v-close-popup @@ -263,6 +278,7 @@ onMounted(() => { { { v-if=" store.tabsMain !== 'WAITING' && store.tabsMain !== 'CANCEL' && - store.tabsMain !== 'REPORTED' + store.tabsMain !== 'REPORTED' && + checkPermission($route)?.attrIsDelete " clickable v-close-popup @@ -324,9 +342,12 @@ onMounted(() => { @@ -340,7 +361,10 @@ onMounted(() => { diff --git a/src/modules/18_command/views/lists.vue b/src/modules/18_command/views/lists.vue index 3ee6af06e..c48fef0cf 100644 --- a/src/modules/18_command/views/lists.vue +++ b/src/modules/18_command/views/lists.vue @@ -2,10 +2,11 @@ import { reactive, ref } from "vue"; import { useQuasar } from "quasar"; -import http from "@/plugins/http"; -import config from "@/app.config"; +import { checkPermission } from "@/utils/permissions"; import { useCounterMixin } from "@/stores/mixin"; import { useCommandListStore } from "@/modules/18_command/store/ListStore"; +import http from "@/plugins/http"; +import config from "@/app.config"; import type { ItemTabs } from "@/modules/18_command/interface/index/Main"; import type { FormQuery } from "@/modules/18_command/interface/request/Main"; @@ -101,6 +102,7 @@ async function fetchListCommand() {