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() { +import { reactive } from "vue"; +import { useQuasar } from "quasar"; + +import { useCounterMixin } from "@/stores/mixin"; +import config from "@/app.config"; +import http from "@/plugins/http"; + +import DialogHeader from "@/components/DialogHeader.vue"; + +const $q = useQuasar(); +const { showLoader, hideLoader, messageError, success, dialogConfirm } = + useCounterMixin(); + +const modal = defineModel("modal", { required: true }); +const props = defineProps({ + fetchData: { type: Function, required: true }, + dataCondition: { type: Object, required: true }, +}); + +const formData = reactive({ + isCondition: false, + conditionReason: "", +}); + +function onCloseDialog() { + modal.value = false; + formData.isCondition = false; + formData.conditionReason = ""; +} + +function onSubmit() { + dialogConfirm($q, async () => { + // showLoader(); + // await http + // .put(config.API.รอAPI, formData) + // .then(async () => { + // await props.fetchData?.(); + // onCloseDialog(); + // success($q, "บันทึกข้อมูลสำเร็จ"); + // }) + // .catch((err) => { + // messageError($q, err); + // }) + // .finally(() => { + // hideLoader(); + // }); + }); +} + + + + + 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, ], }, /**