update: move file into more manageable folder
This commit is contained in:
parent
433e6889cd
commit
f7bffa86d5
|
|
@ -3,23 +3,23 @@ import { createRouter, createWebHistory } from "vue-router";
|
|||
import DashboardView from "../views/dashboard/DashboardView.vue";
|
||||
import Login from "../views/auth/Login.vue";
|
||||
import NotFoundView from "../views/NotFoundView.vue";
|
||||
import RekamMedisView from "../views/dashboard/RekamMedisView.vue";
|
||||
import ObatView from "../views/dashboard/ObatView.vue";
|
||||
import TindakanView from "../views/dashboard/TindakanView.vue";
|
||||
import UsersView from "../views/dashboard/UsersView.vue";
|
||||
import RekamMedisDetailsView from "../views/dashboard/RekamMedisDetailsView.vue";
|
||||
import PemberianObatDetailView from "../views/dashboard/PemberianObatDetailView.vue";
|
||||
import PemberianObatEditView from "../views/dashboard/PemberianObatEditView.vue";
|
||||
import CreateRekamMedisView from "../views/dashboard/CreateRekamMedisView.vue";
|
||||
import RekamMedisEditView from "../views/dashboard/RekamMedisEditView.vue";
|
||||
import CreateObatView from "../views/dashboard/CreateObatView.vue";
|
||||
import CreateTindakanDokterView from "../views/dashboard/CreateTindakanDokterView.vue";
|
||||
import TindakanDokterEditView from "../views/dashboard/TindakanDokterEditView.vue";
|
||||
import TindakanDokterDetailsView from "../views/dashboard/TindakanDokterDetailsView.vue";
|
||||
import AuditTrailView from "../views/dashboard/AuditTrailView.vue";
|
||||
import RekamMedisView from "../views/dashboard/rekam-medis/RekamMedisView.vue";
|
||||
import ObatView from "../views/dashboard/obat/ObatView.vue";
|
||||
import TindakanView from "../views/dashboard/pemberian-tindakan/TindakanView.vue";
|
||||
import UsersView from "../views/dashboard/users/UsersView.vue";
|
||||
import RekamMedisDetailsView from "../views/dashboard/rekam-medis/DetailRekamMedisView.vue";
|
||||
import PemberianObatDetailView from "../views/dashboard/obat/DetailObatView.vue";
|
||||
import PemberianObatEditView from "../views/dashboard/obat/UpdateObatView.vue";
|
||||
import CreateRekamMedisView from "../views/dashboard/rekam-medis/CreateRekamMedisView.vue";
|
||||
import RekamMedisEditView from "../views/dashboard/rekam-medis/UpdateRekamMedisView.vue";
|
||||
import CreateObatView from "../views/dashboard/obat/CreateObatView.vue";
|
||||
import CreateTindakanDokterView from "../views/dashboard/pemberian-tindakan/CreateTindakanDokterView.vue";
|
||||
import TindakanDokterEditView from "../views/dashboard/pemberian-tindakan/TindakanDokterEditView.vue";
|
||||
import TindakanDokterDetailsView from "../views/dashboard/pemberian-tindakan/DetailTindakanDokterView.vue";
|
||||
import ValidasiView from "../views/dashboard/validasi/ValidasiView.vue";
|
||||
import ReviewValidasiView from "../views/dashboard/validasi/ReviewValidasiView.vue";
|
||||
import CreateUserView from "../views/dashboard/users/CreateUserView.vue";
|
||||
import AuditTrailView from "../views/dashboard/audit-trail/AuditTrailView.vue";
|
||||
|
||||
const routes = [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -293,17 +293,19 @@ onMounted(() => {
|
|||
</div>
|
||||
</div>
|
||||
<div class="flex gap-x-4 w-full">
|
||||
<div class="flex-2 mt-4 bg-white p-4 rounded-lg shadow-md min-w-0">
|
||||
<h5 class="text-lg font-semibold mb-2 text-center">
|
||||
<div
|
||||
class="flex flex-col flex-2 mt-4 bg-white p-4 rounded-lg shadow-md min-w-0"
|
||||
>
|
||||
<h5 class="flex-1 text-lg font-semibold text-center">
|
||||
Jumlah Rekam Medis Baru 7 Hari Terakhir
|
||||
</h5>
|
||||
<div class="w-full">
|
||||
<div class="flex-5 w-full">
|
||||
<Line
|
||||
:data="rekamMedisCountLineChartData"
|
||||
:options="rekamMedisLineChartOptions"
|
||||
/>
|
||||
</div>
|
||||
<div class="flex justify-center mt-4">
|
||||
<div class="flex flex-1 justify-center mt-4">
|
||||
<RouterLink
|
||||
to="/rekam-medis"
|
||||
class="text-sm hover:opacity-75 transition-all"
|
||||
|
|
|
|||
|
|
@ -1,24 +1,27 @@
|
|||
<script setup lang="ts">
|
||||
import { onBeforeUnmount, onMounted, ref, watch } from "vue";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import Sidebar from "../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../components/dashboard/PageHeader.vue";
|
||||
import SearchInput from "../../components/dashboard/SearchInput.vue";
|
||||
import DataTable from "../../components/dashboard/DataTable.vue";
|
||||
import { useApi } from "../../composables/useApi";
|
||||
import { usePagination } from "../../composables/usePagination";
|
||||
import { useDebounce } from "../../composables/useDebounce";
|
||||
import Sidebar from "../../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../../components/dashboard/PageHeader.vue";
|
||||
import SearchInput from "../../../components/dashboard/SearchInput.vue";
|
||||
import DataTable from "../../../components/dashboard/DataTable.vue";
|
||||
import { useApi } from "../../../composables/useApi";
|
||||
import { usePagination } from "../../../composables/usePagination";
|
||||
import { useDebounce } from "../../../composables/useDebounce";
|
||||
import {
|
||||
DEFAULT_PAGE_SIZE,
|
||||
DEBOUNCE_DELAY,
|
||||
ITEMS_PER_PAGE_OPTIONS,
|
||||
AUDIT_TABLE_COLUMNS,
|
||||
} from "../../constants/pagination";
|
||||
import ButtonDark from "../../components/dashboard/ButtonDark.vue";
|
||||
import DialogConfirm from "../../components/DialogConfirm.vue";
|
||||
import PaginationControls from "../../components/dashboard/PaginationControls.vue";
|
||||
import type { AuditLogEntry, AuditLogType } from "../../constants/interfaces";
|
||||
} from "../../../constants/pagination";
|
||||
import ButtonDark from "../../../components/dashboard/ButtonDark.vue";
|
||||
import DialogConfirm from "../../../components/DialogConfirm.vue";
|
||||
import PaginationControls from "../../../components/dashboard/PaginationControls.vue";
|
||||
import type {
|
||||
AuditLogEntry,
|
||||
AuditLogType,
|
||||
} from "../../../constants/interfaces";
|
||||
import { io, Socket } from "socket.io-client";
|
||||
|
||||
interface AuditLogResponse {
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
<script setup lang="ts">
|
||||
import Sidebar from "../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../components/dashboard/PageHeader.vue";
|
||||
import FieldInput from "../../components/dashboard/FieldInput.vue";
|
||||
import ButtonDark from "../../components/dashboard/ButtonDark.vue";
|
||||
import Sidebar from "../../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../../components/dashboard/PageHeader.vue";
|
||||
import FieldInput from "../../../components/dashboard/FieldInput.vue";
|
||||
import ButtonDark from "../../../components/dashboard/ButtonDark.vue";
|
||||
import { onMounted, ref, watch } from "vue";
|
||||
import { useApi, type ApiError } from "../../composables/useApi";
|
||||
import { useDebounce } from "../../composables/useDebounce";
|
||||
import { DEBOUNCE_DELAY } from "../../constants/pagination";
|
||||
import { useApi, type ApiError } from "../../../composables/useApi";
|
||||
import { useDebounce } from "../../../composables/useDebounce";
|
||||
import { DEBOUNCE_DELAY } from "../../../constants/pagination";
|
||||
|
||||
interface CreateObatFormData {
|
||||
id_visit: string;
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
<script setup lang="ts">
|
||||
import Sidebar from "../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../components/dashboard/PageHeader.vue";
|
||||
import Sidebar from "../../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../../components/dashboard/PageHeader.vue";
|
||||
import { onMounted, ref } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import type { BlockchainLog, Obat } from "../../constants/interfaces";
|
||||
import { useApi } from "../../composables/useApi";
|
||||
import DataTable from "../../components/dashboard/DataTable.vue";
|
||||
import { LOG_TABLE_COLUMNS } from "../../constants/pagination";
|
||||
import type { BlockchainLog, Obat } from "../../../constants/interfaces";
|
||||
import { useApi } from "../../../composables/useApi";
|
||||
import DataTable from "../../../components/dashboard/DataTable.vue";
|
||||
import { LOG_TABLE_COLUMNS } from "../../../constants/pagination";
|
||||
|
||||
const data = ref<Obat>();
|
||||
const dataLog = ref<BlockchainLog[]>([]);
|
||||
|
|
@ -1,22 +1,22 @@
|
|||
<script setup lang="ts">
|
||||
import Sidebar from "../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../components/dashboard/PageHeader.vue";
|
||||
import SearchInput from "../../components/dashboard/SearchInput.vue";
|
||||
import SortDropdown from "../../components/dashboard/SortDropdown.vue";
|
||||
import DataTable from "../../components/dashboard/DataTable.vue";
|
||||
import PaginationControls from "../../components/dashboard/PaginationControls.vue";
|
||||
import Sidebar from "../../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../../components/dashboard/PageHeader.vue";
|
||||
import SearchInput from "../../../components/dashboard/SearchInput.vue";
|
||||
import SortDropdown from "../../../components/dashboard/SortDropdown.vue";
|
||||
import DataTable from "../../../components/dashboard/DataTable.vue";
|
||||
import PaginationControls from "../../../components/dashboard/PaginationControls.vue";
|
||||
import { onMounted, ref, watch } from "vue";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import { usePagination } from "../../composables/usePagination";
|
||||
import { useDebounce } from "../../composables/useDebounce";
|
||||
import { useApi } from "../../composables/useApi";
|
||||
import { usePagination } from "../../../composables/usePagination";
|
||||
import { useDebounce } from "../../../composables/useDebounce";
|
||||
import { useApi } from "../../../composables/useApi";
|
||||
import {
|
||||
DEFAULT_PAGE_SIZE,
|
||||
DEBOUNCE_DELAY,
|
||||
ITEMS_PER_PAGE_OPTIONS,
|
||||
SORT_OPTIONS,
|
||||
} from "../../constants/pagination";
|
||||
} from "../../../constants/pagination";
|
||||
|
||||
interface ObatData {
|
||||
id: number;
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
<script setup lang="ts">
|
||||
import Sidebar from "../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../components/dashboard/PageHeader.vue";
|
||||
import Sidebar from "../../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../../components/dashboard/PageHeader.vue";
|
||||
import { onMounted, ref } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import type { BlockchainLog, Obat } from "../../constants/interfaces";
|
||||
import { useApi } from "../../composables/useApi";
|
||||
import DataTable from "../../components/dashboard/DataTable.vue";
|
||||
import { LOG_TABLE_COLUMNS } from "../../constants/pagination";
|
||||
import FieldInput from "../../components/dashboard/FieldInput.vue";
|
||||
import ButtonDark from "../../components/dashboard/ButtonDark.vue";
|
||||
import type { BlockchainLog, Obat } from "../../../constants/interfaces";
|
||||
import { useApi } from "../../../composables/useApi";
|
||||
import DataTable from "../../../components/dashboard/DataTable.vue";
|
||||
import { LOG_TABLE_COLUMNS } from "../../../constants/pagination";
|
||||
import FieldInput from "../../../components/dashboard/FieldInput.vue";
|
||||
import ButtonDark from "../../../components/dashboard/ButtonDark.vue";
|
||||
|
||||
interface PostObat {
|
||||
obat: string;
|
||||
|
|
@ -1,18 +1,18 @@
|
|||
<script setup lang="ts">
|
||||
import Sidebar from "../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../components/dashboard/PageHeader.vue";
|
||||
import FieldInput from "../../components/dashboard/FieldInput.vue";
|
||||
import ButtonDark from "../../components/dashboard/ButtonDark.vue";
|
||||
import Sidebar from "../../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../../components/dashboard/PageHeader.vue";
|
||||
import FieldInput from "../../../components/dashboard/FieldInput.vue";
|
||||
import ButtonDark from "../../../components/dashboard/ButtonDark.vue";
|
||||
import { onMounted, ref, watch } from "vue";
|
||||
import { useApi, type ApiError } from "../../composables/useApi";
|
||||
import { useDebounce } from "../../composables/useDebounce";
|
||||
import { DEBOUNCE_DELAY, FILTER } from "../../constants/pagination";
|
||||
import { useApi, type ApiError } from "../../../composables/useApi";
|
||||
import { useDebounce } from "../../../composables/useDebounce";
|
||||
import { DEBOUNCE_DELAY, FILTER } from "../../../constants/pagination";
|
||||
import {
|
||||
validateTindakanForm,
|
||||
type TindakanFormInput,
|
||||
type TindakanFormErrors,
|
||||
} from "../../validation/tindakan";
|
||||
} from "../../../validation/tindakan";
|
||||
|
||||
type CreateTindakanFormErrors = Partial<TindakanFormErrors>;
|
||||
|
||||
|
|
@ -1,13 +1,16 @@
|
|||
<script setup lang="ts">
|
||||
import Sidebar from "../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../components/dashboard/PageHeader.vue";
|
||||
import DataTable from "../../components/dashboard/DataTable.vue";
|
||||
import Sidebar from "../../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../../components/dashboard/PageHeader.vue";
|
||||
import DataTable from "../../../components/dashboard/DataTable.vue";
|
||||
import { onMounted, ref } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import type { BlockchainLog, TindakanDokter } from "../../constants/interfaces";
|
||||
import { useApi } from "../../composables/useApi";
|
||||
import { LOG_TABLE_COLUMNS } from "../../constants/pagination";
|
||||
import type {
|
||||
BlockchainLog,
|
||||
TindakanDokter,
|
||||
} from "../../../constants/interfaces";
|
||||
import { useApi } from "../../../composables/useApi";
|
||||
import { LOG_TABLE_COLUMNS } from "../../../constants/pagination";
|
||||
|
||||
// Prevent TypeScript false positives for template-only usage.
|
||||
const componentsInTemplate = { Sidebar, Footer, PageHeader, DataTable };
|
||||
|
|
@ -1,25 +1,28 @@
|
|||
<script setup lang="ts">
|
||||
import Sidebar from "../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../components/dashboard/PageHeader.vue";
|
||||
import FieldInput from "../../components/dashboard/FieldInput.vue";
|
||||
import ButtonDark from "../../components/dashboard/ButtonDark.vue";
|
||||
import DataTable from "../../components/dashboard/DataTable.vue";
|
||||
import Sidebar from "../../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../../components/dashboard/PageHeader.vue";
|
||||
import FieldInput from "../../../components/dashboard/FieldInput.vue";
|
||||
import ButtonDark from "../../../components/dashboard/ButtonDark.vue";
|
||||
import DataTable from "../../../components/dashboard/DataTable.vue";
|
||||
import { onMounted, ref, watch } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import { useApi, type ApiError } from "../../composables/useApi";
|
||||
import { useDebounce } from "../../composables/useDebounce";
|
||||
import { useApi, type ApiError } from "../../../composables/useApi";
|
||||
import { useDebounce } from "../../../composables/useDebounce";
|
||||
import {
|
||||
DEBOUNCE_DELAY,
|
||||
FILTER,
|
||||
LOG_TABLE_COLUMNS,
|
||||
} from "../../constants/pagination";
|
||||
import type { BlockchainLog, TindakanDokter } from "../../constants/interfaces";
|
||||
} from "../../../constants/pagination";
|
||||
import type {
|
||||
BlockchainLog,
|
||||
TindakanDokter,
|
||||
} from "../../../constants/interfaces";
|
||||
import {
|
||||
validateTindakanForm,
|
||||
type TindakanFormErrors,
|
||||
type TindakanFormInput,
|
||||
} from "../../validation/tindakan";
|
||||
} from "../../../validation/tindakan";
|
||||
|
||||
// Prevent TypeScript false positives for template-only usage.
|
||||
const componentsInTemplate = {
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
<script setup lang="ts">
|
||||
import Sidebar from "../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../components/dashboard/PageHeader.vue";
|
||||
import SearchInput from "../../components/dashboard/SearchInput.vue";
|
||||
import SortDropdown from "../../components/dashboard/SortDropdown.vue";
|
||||
import DataTable from "../../components/dashboard/DataTable.vue";
|
||||
import PaginationControls from "../../components/dashboard/PaginationControls.vue";
|
||||
import Sidebar from "../../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../../components/dashboard/PageHeader.vue";
|
||||
import SearchInput from "../../../components/dashboard/SearchInput.vue";
|
||||
import SortDropdown from "../../../components/dashboard/SortDropdown.vue";
|
||||
import DataTable from "../../../components/dashboard/DataTable.vue";
|
||||
import PaginationControls from "../../../components/dashboard/PaginationControls.vue";
|
||||
import { onMounted, ref, watch } from "vue";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import { usePagination } from "../../composables/usePagination";
|
||||
import { useDebounce } from "../../composables/useDebounce";
|
||||
import { useApi } from "../../composables/useApi";
|
||||
import { usePagination } from "../../../composables/usePagination";
|
||||
import { useDebounce } from "../../../composables/useDebounce";
|
||||
import { useApi } from "../../../composables/useApi";
|
||||
import {
|
||||
DEFAULT_PAGE_SIZE,
|
||||
DEBOUNCE_DELAY,
|
||||
|
|
@ -18,8 +18,8 @@ import {
|
|||
SORT_OPTIONS,
|
||||
TINDAKAN_TABLE_COLUMNS,
|
||||
FILTER,
|
||||
} from "../../constants/pagination";
|
||||
import type { TindakanDokter } from "../../constants/interfaces";
|
||||
} from "../../../constants/pagination";
|
||||
import type { TindakanDokter } from "../../../constants/interfaces";
|
||||
|
||||
interface ApiResponse {
|
||||
data: TindakanDokter[];
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
<script setup lang="ts">
|
||||
import Sidebar from "../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../components/dashboard/PageHeader.vue";
|
||||
import Sidebar from "../../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../../components/dashboard/PageHeader.vue";
|
||||
import { onMounted, ref, watch } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import FieldInput from "../../components/dashboard/FieldInput.vue";
|
||||
import { FILTER } from "../../constants/pagination";
|
||||
import FieldInput from "../../../components/dashboard/FieldInput.vue";
|
||||
import { FILTER } from "../../../constants/pagination";
|
||||
import {
|
||||
validateRekamMedisForm,
|
||||
type RekamMedisFormErrors,
|
||||
} from "../../validation/rekamMedis";
|
||||
import { useApi } from "../../composables/useApi";
|
||||
} from "../../../validation/rekamMedis";
|
||||
import { useApi } from "../../../composables/useApi";
|
||||
|
||||
const route = useRoute();
|
||||
const api = useApi();
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
<script setup lang="ts">
|
||||
import Sidebar from "../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../components/dashboard/PageHeader.vue";
|
||||
import Sidebar from "../../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../../components/dashboard/PageHeader.vue";
|
||||
import { onMounted, ref } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import type { BlockchainLog, RekamMedis } from "../../constants/interfaces";
|
||||
import { useApi } from "../../composables/useApi";
|
||||
import DataTable from "../../components/dashboard/DataTable.vue";
|
||||
import { LOG_TABLE_COLUMNS } from "../../constants/pagination";
|
||||
import type { BlockchainLog, RekamMedis } from "../../../constants/interfaces";
|
||||
import { useApi } from "../../../composables/useApi";
|
||||
import DataTable from "../../../components/dashboard/DataTable.vue";
|
||||
import { LOG_TABLE_COLUMNS } from "../../../constants/pagination";
|
||||
|
||||
const data = ref<RekamMedis>();
|
||||
const dataLog = ref<BlockchainLog[]>([]);
|
||||
|
|
@ -21,7 +21,7 @@ const fetchData = async () => {
|
|||
const result = await api.get<RekamMedis>(`/rekammedis/${route.params.id}`);
|
||||
data.value = result;
|
||||
} catch (error) {
|
||||
console.error("Error fetching obat data:", error);
|
||||
console.error("Error fetching rekam medis data:", error);
|
||||
data.value = undefined;
|
||||
}
|
||||
};
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
<script setup lang="ts">
|
||||
import Sidebar from "../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../components/dashboard/PageHeader.vue";
|
||||
import SearchInput from "../../components/dashboard/SearchInput.vue";
|
||||
import SortDropdown from "../../components/dashboard/SortDropdown.vue";
|
||||
import DataTable from "../../components/dashboard/DataTable.vue";
|
||||
import PaginationControls from "../../components/dashboard/PaginationControls.vue";
|
||||
import Sidebar from "../../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../../components/dashboard/PageHeader.vue";
|
||||
import SearchInput from "../../../components/dashboard/SearchInput.vue";
|
||||
import SortDropdown from "../../../components/dashboard/SortDropdown.vue";
|
||||
import DataTable from "../../../components/dashboard/DataTable.vue";
|
||||
import PaginationControls from "../../../components/dashboard/PaginationControls.vue";
|
||||
import { onBeforeUnmount, onMounted, ref, watch } from "vue";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import { usePagination } from "../../composables/usePagination";
|
||||
import { useDebounce } from "../../composables/useDebounce";
|
||||
import { useApi } from "../../composables/useApi";
|
||||
import { usePagination } from "../../../composables/usePagination";
|
||||
import { useDebounce } from "../../../composables/useDebounce";
|
||||
import { useApi } from "../../../composables/useApi";
|
||||
import {
|
||||
DEFAULT_PAGE_SIZE,
|
||||
DEBOUNCE_DELAY,
|
||||
|
|
@ -18,11 +18,11 @@ import {
|
|||
SORT_OPTIONS,
|
||||
FILTER,
|
||||
REKAM_MEDIS_TABLE_COLUMNS,
|
||||
} from "../../constants/pagination";
|
||||
} from "../../../constants/pagination";
|
||||
import "cally";
|
||||
import noUiSlider from "nouislider";
|
||||
import "nouislider/dist/nouislider.css";
|
||||
import type { RekamMedis } from "../../constants/interfaces";
|
||||
import type { RekamMedis } from "../../../constants/interfaces";
|
||||
|
||||
interface ApiResponse {
|
||||
data: RekamMedis[];
|
||||
|
|
@ -274,16 +274,12 @@ const handleUpdate = (item: RekamMedis) => {
|
|||
};
|
||||
|
||||
const handleDelete = async (item: RekamMedis) => {
|
||||
if (
|
||||
confirm(`Apakah Anda yakin ingin menghapus rekam medis "${item.id_visit}"?`)
|
||||
) {
|
||||
try {
|
||||
await api.delete(`/rekammedis/${item.id_visit}`);
|
||||
await fetchData();
|
||||
} catch (error) {
|
||||
console.error("Error deleting rekam medis:", error);
|
||||
alert("Gagal menghapus data rekam medis");
|
||||
}
|
||||
try {
|
||||
await api.delete(`/rekammedis/${item.id_visit}`);
|
||||
await fetchData();
|
||||
} catch (error) {
|
||||
console.error("Error deleting rekam medis:", error);
|
||||
alert("Gagal menghapus data rekam medis");
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -1,17 +1,17 @@
|
|||
<script setup lang="ts">
|
||||
import Sidebar from "../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../components/dashboard/PageHeader.vue";
|
||||
import Sidebar from "../../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../../components/dashboard/PageHeader.vue";
|
||||
import { onMounted, ref, watch } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import FieldInput from "../../components/dashboard/FieldInput.vue";
|
||||
import { FILTER } from "../../constants/pagination";
|
||||
import type { RekamMedis } from "../../constants/interfaces";
|
||||
import FieldInput from "../../../components/dashboard/FieldInput.vue";
|
||||
import { FILTER } from "../../../constants/pagination";
|
||||
import type { RekamMedis } from "../../../constants/interfaces";
|
||||
import {
|
||||
validateRekamMedisForm,
|
||||
type RekamMedisFormErrors,
|
||||
} from "../../validation/rekamMedis";
|
||||
import { useApi } from "../../composables/useApi";
|
||||
} from "../../../validation/rekamMedis";
|
||||
import { useApi } from "../../../composables/useApi";
|
||||
|
||||
const route = useRoute();
|
||||
const api = useApi();
|
||||
|
|
@ -1,24 +1,24 @@
|
|||
<script setup lang="ts">
|
||||
import Sidebar from "../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../components/dashboard/PageHeader.vue";
|
||||
import SearchInput from "../../components/dashboard/SearchInput.vue";
|
||||
import SortDropdown from "../../components/dashboard/SortDropdown.vue";
|
||||
import DataTable from "../../components/dashboard/DataTable.vue";
|
||||
import PaginationControls from "../../components/dashboard/PaginationControls.vue";
|
||||
import Sidebar from "../../../components/dashboard/Sidebar.vue";
|
||||
import Footer from "../../../components/dashboard/Footer.vue";
|
||||
import PageHeader from "../../../components/dashboard/PageHeader.vue";
|
||||
import SearchInput from "../../../components/dashboard/SearchInput.vue";
|
||||
import SortDropdown from "../../../components/dashboard/SortDropdown.vue";
|
||||
import DataTable from "../../../components/dashboard/DataTable.vue";
|
||||
import PaginationControls from "../../../components/dashboard/PaginationControls.vue";
|
||||
import { onMounted, ref, watch } from "vue";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import { usePagination } from "../../composables/usePagination";
|
||||
import { useDebounce } from "../../composables/useDebounce";
|
||||
import { useApi } from "../../composables/useApi";
|
||||
import { usePagination } from "../../../composables/usePagination";
|
||||
import { useDebounce } from "../../../composables/useDebounce";
|
||||
import { useApi } from "../../../composables/useApi";
|
||||
import {
|
||||
DEFAULT_PAGE_SIZE,
|
||||
DEBOUNCE_DELAY,
|
||||
ITEMS_PER_PAGE_OPTIONS,
|
||||
SORT_OPTIONS,
|
||||
USERS_TABLE_COLUMNS,
|
||||
} from "../../constants/pagination";
|
||||
import type { Users } from "../../constants/interfaces";
|
||||
} from "../../../constants/pagination";
|
||||
import type { Users } from "../../../constants/interfaces";
|
||||
|
||||
interface ApiResponse {
|
||||
data: Users[];
|
||||
Loading…
Reference in New Issue
Block a user