diff --git a/.env b/.env new file mode 100644 index 00000000..a6347f86 --- /dev/null +++ b/.env @@ -0,0 +1,3 @@ +VITE_REALM_KEYCLOAK: "bma-ehr" +VITE_CLIENTID_KEYCLOAK: "HRIS_ADMIN" +VITE_URL_KEYCLOAK: "https://id.frappet.synology.me/" \ No newline at end of file diff --git a/src/api/manage/api.management.ts b/src/api/manage/api.management.ts new file mode 100644 index 00000000..8c37eac8 --- /dev/null +++ b/src/api/manage/api.management.ts @@ -0,0 +1,7 @@ +import env from "../index"; + +const management = `${env.API_URI}/org/keycloak`; + +export default { + managementUser: `${management}/user`, +}; diff --git a/src/app.config.ts b/src/app.config.ts index e77dc80e..6e0175fd 100644 --- a/src/app.config.ts +++ b/src/app.config.ts @@ -29,6 +29,9 @@ import organization from "./api/02_organizational/api.organization"; import file from "./api/file/api.file"; +/** API ManagementUsers*/ +import menagement from "./api/manage/api.management"; + // environment variables export const compettitivePanel = import.meta.env.VITE_COMPETITIVE_EXAM_PANEL; export const qualifyDisableExamPanel = import.meta.env @@ -63,6 +66,9 @@ const API = { /*file*/ ...file, + + /** menagement*/ + ...menagement, }; export default { diff --git a/src/modules/02_users/components/Users/DialogAddUser.vue b/src/modules/02_users/components/Users/DialogAddUser.vue new file mode 100644 index 00000000..c68bba40 --- /dev/null +++ b/src/modules/02_users/components/Users/DialogAddUser.vue @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + บันทึกข้อมูล + + + + + + + diff --git a/src/modules/02_users/interface/index/Main.ts b/src/modules/02_users/interface/index/Main.ts index 1aeb5a4b..e6dd68b5 100644 --- a/src/modules/02_users/interface/index/Main.ts +++ b/src/modules/02_users/interface/index/Main.ts @@ -2,4 +2,11 @@ interface Pagination { rowsPerPage: number; } -export type { Pagination }; +interface ItemsMenu { + label: string; + icon: string; + color: string; + type: string; +} + +export type { Pagination, ItemsMenu }; diff --git a/src/modules/02_users/interface/request/Main.ts b/src/modules/02_users/interface/request/Main.ts index 02867600..39e3e0cb 100644 --- a/src/modules/02_users/interface/request/Main.ts +++ b/src/modules/02_users/interface/request/Main.ts @@ -1,7 +1,8 @@ -interface DataListsObject { - id: number; - count: number; - name: string; +interface FormUser { + username: string; + password: string; + firstName: string; + lastName: string; + email: string; } - -export type { DataListsObject }; +export type { FormUser }; diff --git a/src/modules/02_users/interface/response/Main.ts b/src/modules/02_users/interface/response/Main.ts index da7e9293..fefdf1ba 100644 --- a/src/modules/02_users/interface/response/Main.ts +++ b/src/modules/02_users/interface/response/Main.ts @@ -1,14 +1,9 @@ -interface ResRound { - createdAt: Date; - createdFullName: string; - createdUserId: Date; - durationKPI: string; - endDate: Date; - id: Date; - lastUpdateFullName: string; - lastUpdateUserId: Date; - lastUpdatedAt: Date; - startDate: Date; +interface Users { + email: string; + firstName: string; + id: string; + lastName: string; + username: string; } -export type { ResRound }; +export type { Users }; diff --git a/src/modules/02_users/router.ts b/src/modules/02_users/router.ts index 0fd9f8be..ba9c8dcb 100644 --- a/src/modules/02_users/router.ts +++ b/src/modules/02_users/router.ts @@ -1,10 +1,11 @@ -const ListsPage = () => import("@/modules/02_users/views/lists.vue"); +const ListsPageUser = () => import("@/modules/02_users/views/listsUser.vue"); +const ListsPageRole = () => import("@/modules/02_users/views/listsRole.vue"); export default [ { path: "/users", name: "manageUsers", - component: ListsPage, + component: ListsPageUser, meta: { Auth: true, Key: [7], @@ -15,4 +16,15 @@ export default [ path: "/users/:id", name: "masterInsignia", }, + + { + path: "/roles", + name: "manageRoles", + component: ListsPageRole, + meta: { + Auth: true, + Key: [7], + Role: "user_role", + }, + }, ]; diff --git a/src/modules/02_users/views/lists.vue b/src/modules/02_users/views/lists.vue deleted file mode 100644 index 8b137891..00000000 --- a/src/modules/02_users/views/lists.vue +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/modules/02_users/views/listsRole.vue b/src/modules/02_users/views/listsRole.vue new file mode 100644 index 00000000..3f2a4645 --- /dev/null +++ b/src/modules/02_users/views/listsRole.vue @@ -0,0 +1,7 @@ + + + + manageRoles + + + diff --git a/src/modules/02_users/views/listsUser.vue b/src/modules/02_users/views/listsUser.vue new file mode 100644 index 00000000..5d34491d --- /dev/null +++ b/src/modules/02_users/views/listsUser.vue @@ -0,0 +1,287 @@ + + + + + + จัดการผู้ใช้งาน + + + + + + + เพิ่มผู้ใช้งาน + + + + + + + + + + + + + + + + + {{ col.label }} + + + + + + + + + {{ col.value ? col.value : "-" }} + + + + + + + + + + + {{ item.label }} + + + + + + + + + + + + + + + + + diff --git a/src/router/index.ts b/src/router/index.ts index 257dc09d..927bf3eb 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -5,6 +5,7 @@ const Dashboard = () => import("@/views/Dashboard.vue"); const Error404NotFound = () => import("@/views/Error404NotFound.vue"); import ModuleMetadata from "@/modules/01_metadata/router"; +import ModuleUser from "@/modules/02_users/router"; // TODO: ใช้หรือไม่? import keycloak from "@/plugins/keycloak"; @@ -28,6 +29,7 @@ const router = createRouter({ }, }, ...ModuleMetadata, + ...ModuleUser, ], }, /**