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