From f72984775bbfcb4e81a4729f23bc72a9713adbeb Mon Sep 17 00:00:00 2001 From: Yusron alamsyah Date: Thu, 5 Feb 2026 08:12:34 +0700 Subject: [PATCH] change color theme --- components/layout/full/Main.vue | 25 +++ components/pendaftaran/RencanaOperasi.vue | 8 +- components/pendaftaran/TableAntrian.vue | 185 +++++++++++++++------- config.ts | 4 +- data/users.db | Bin 16384 -> 16384 bytes nuxt.config.ts | 2 +- pages/antrean/kategori/[id].vue | 2 +- pages/antrean/list-kategori.vue | 16 +- pages/antrean/pendaftaran.vue | 27 +--- plugins/vuetify.ts | 4 +- theme/LightTheme.ts | 37 ++++- types/antrean.ts | 6 + 12 files changed, 212 insertions(+), 104 deletions(-) diff --git a/components/layout/full/Main.vue b/components/layout/full/Main.vue index b81a1a2..9b769ca 100644 --- a/components/layout/full/Main.vue +++ b/components/layout/full/Main.vue @@ -5,8 +5,15 @@ import sidebarItems from "~/components/layout/full/vertical-sidebar/sidebarItem" import Customizer from "~/components/layout/full/customizer/Customizer.vue"; import { Menu2Icon } from "vue-tabler-icons"; import { useCustomizerStore } from "~/store/customizer"; +import { usePendaftaranStore } from "~/store/pendaftaran"; +import { storeToRefs } from 'pinia'; + const sidebarMenu = shallowRef(sidebarItems); const customizer = useCustomizerStore(); +const pendaftaranStore = usePendaftaranStore(); + +const { snackbar, snackbarMessage, snackbarColor } = storeToRefs(pendaftaranStore); + const { mdAndDown } = useDisplay(); const sDrawer = ref(true); onMounted(() => { @@ -66,6 +73,24 @@ watch(mdAndDown, (val) => {

© 2026 RSUD Dr. Saiful Anwar Provinsi Jawa Timur. All rights reserved.

+ + + + {{ snackbarMessage }} + + diff --git a/components/pendaftaran/RencanaOperasi.vue b/components/pendaftaran/RencanaOperasi.vue index d566131..8a86f4e 100644 --- a/components/pendaftaran/RencanaOperasi.vue +++ b/components/pendaftaran/RencanaOperasi.vue @@ -59,7 +59,7 @@ const kategoriOperasiOptions = computed(() => { const fetchSubSpesialis = async (idSpesialis: number) => { try { isLoadingSubSpesialis.value = true; - const response = await api.get(`/sub-spesialis?id_spesialis=${idSpesialis}`); + const response = await api.get(`/reference/sub-spesialis?id_spesialis=${idSpesialis}`); if (response.data.success && response.data.data) { subSpesialisList.value = response.data.data; @@ -86,7 +86,7 @@ watch(() => rencanaOperasiData.value.spesialis, (newSpesialis) => { const fetchSpesialis = async () => { try { isLoadingSpesialis.value = true; - const response = await api.get('/spesialis'); + const response = await api.get('/reference/spesialis'); if (response.data.success && response.data.data) { spesialisList.value = response.data.data; @@ -103,7 +103,7 @@ const fetchSpesialis = async () => { const fetchKategoriOperasi = async () => { try { isLoadingKategori.value = true; - const response = await api.get('/kategori'); + const response = await api.get('/reference/kategori'); if (response.data.success && response.data.data) { kategoriOperasiList.value = response.data.data; @@ -145,7 +145,7 @@ const fetchDokter = async () => { offset: offset.toString() }); - const response = await api.get(`/dokter?${params}`); + const response = await api.get(`/reference/dokter?${params}`); if (response.data.success && response.data.data) { dokterList.value = response.data.data; diff --git a/components/pendaftaran/TableAntrian.vue b/components/pendaftaran/TableAntrian.vue index ee458f8..0c81ef2 100644 --- a/components/pendaftaran/TableAntrian.vue +++ b/components/pendaftaran/TableAntrian.vue @@ -72,78 +72,143 @@ watch(itemsPerPageLocal, (newVal) => { diff --git a/config.ts b/config.ts index 062e7ec..9274c18 100644 --- a/config.ts +++ b/config.ts @@ -1,4 +1,4 @@ -import {CYAN_THEME} from "~/theme/LightTheme"; +import {RSSA_THEME} from "~/theme/LightTheme"; export type ConfigProps = { Sidebar_drawer: any; @@ -17,7 +17,7 @@ const config: ConfigProps = { mini_sidebar: false, setHorizontalLayout: false, // Horizontal layout setRTLLayout: false, // RTL layout - actTheme: 'BLUE_THEME', + actTheme: 'RSSA_THEME', boxed: true, setBorderCard: false }; diff --git a/data/users.db b/data/users.db index 45f6817c781905846e5a18616680b1428b67f741..20722f7f742152d825541e19b79326da420c66ef 100644 GIT binary patch delta 38 scmZo@U~Fh$oFL8UF;T{u(PLx60y*ZUKNBWb$lFeKklzbpFH%qd00A=&82|tP delta 38 scmZo@U~Fh$oFL6;Hc`fz(QISF0y*Z!8S0ZO { try { isLoadingKategori.value = true; - const response = await api.get('/kategori'); + const response = await api.get('/reference/kategori'); if (response.data.success && response.data.data) { kategoriInfo.value = response.data.data.find((k: KategoriOperasi) => k.id === parseInt(idKategori)); diff --git a/pages/antrean/list-kategori.vue b/pages/antrean/list-kategori.vue index eb50ea9..a0e465a 100644 --- a/pages/antrean/list-kategori.vue +++ b/pages/antrean/list-kategori.vue @@ -1,7 +1,7 @@ \ No newline at end of file diff --git a/plugins/vuetify.ts b/plugins/vuetify.ts index 697ae0f..3134517 100644 --- a/plugins/vuetify.ts +++ b/plugins/vuetify.ts @@ -8,6 +8,7 @@ import "@mdi/font/css/materialdesignicons.css"; import "~/scss/style.scss"; import { BLUE_THEME, + RSSA_THEME, AQUA_THEME, PURPLE_THEME, GREEN_THEME, @@ -27,8 +28,9 @@ export default defineNuxtPlugin((nuxtApp) => { components, directives, theme: { - defaultTheme: "BLUE_THEME", + defaultTheme: "RSSA_THEME", themes: { + RSSA_THEME, BLUE_THEME, AQUA_THEME, PURPLE_THEME, diff --git a/theme/LightTheme.ts b/theme/LightTheme.ts index bb754fa..cec4de6 100644 --- a/theme/LightTheme.ts +++ b/theme/LightTheme.ts @@ -210,4 +210,39 @@ const ORANGE_THEME: ThemeTypes = { } }; -export { BLUE_THEME, AQUA_THEME, ORANGE_THEME, PURPLE_THEME, GREEN_THEME, CYAN_THEME }; +const RSSA_THEME: ThemeTypes = { + name: 'RSSA_THEME', + dark: false, + variables: { + 'border-color': '#e0e6eb', + 'border-opacity': 1 + }, + colors: { + primary: '#4C71CF', + secondary: '#F06D02', + info: '#3B82F6', + success: '#10B981', + warning: '#FFAE1F', + error: '#EF4444', + lightprimary: '#B7C6EC', + lightsecondary: '#F9C59A', + lightsuccess: '#9FE3CD', + lighterror: '#F9B4B4', + lightinfo: '#B1CDFB', + lightwarning: '#FEF5E5', + textPrimary: '#29343D', + textSecondary: '#6B7F93', + borderColor: '#e0e6eb', + containerBg: '#ffffff', + background: '#F4F7FB', + hoverColor: '#f6f9fc', + surface: '#fff', + grey100: '#F6F7F9', + grey200: '#29343d', + darkgray: '#0a2540', + light: '#EFF4FA', + muted:'#6B7F93' + } +}; + +export { BLUE_THEME, AQUA_THEME, ORANGE_THEME, PURPLE_THEME, GREEN_THEME, CYAN_THEME, RSSA_THEME }; diff --git a/types/antrean.ts b/types/antrean.ts index f76d969..8c56778 100644 --- a/types/antrean.ts +++ b/types/antrean.ts @@ -40,3 +40,9 @@ export interface KategoriOperasi { id: number; kategori: string; } + +export interface AntreanKategoriOperasi { + id_kategori: number; + kategori: string; + jumlah_antrean: number; +}