feat/procedure-room-order: wip #2

+ procedure-room
This commit is contained in:
Andrian Roshandy
2025-12-03 09:43:36 +07:00
parent 4444e87cb3
commit ce93f996d9
6 changed files with 116 additions and 11 deletions
@@ -0,0 +1,9 @@
<template>
<div class="mb-5">
<div class="font-semibold text-sm 2xl:text-base mb-2">
Daftar Ruang Tindakan
</div>
<div class="-mx-1 [&_button]:mx-1 ">
</div>
</div>
</template>
@@ -0,0 +1,9 @@
<template>
<div class="mb-5">
<div class="font-semibold text-sm 2xl:text-base mb-2">
Daftar Ruang Operasi
</div>
<div class="-mx-1 [&_button]:mx-1 ">
</div>
</div>
</template>
@@ -0,0 +1,29 @@
<script setup lang="ts">
import { procedureRoomTypeCodes } from '~/const/key-val/clinical'
const model = defineModel()
model.value = 'procedure'
const emit = defineEmits<{
pick: [type_code: string]
}>()
function pick(type_code: string) {
model.value = type_code
emit('pick', type_code)
}
</script>
<template>
<div class="mb-5">
<div class="font-semibold text-sm 2xl:text-base mb-2">
Jenis Ruang Tindakan
</div>
<div class="-mx-1 [&_button]:mx-1 ">
<Button v-for="item, key in procedureRoomTypeCodes" :variant="model === key ? 'default' : 'outline'" @click="pick(key)">
{{ item }}
</Button>
</div>
</div>
</template>
+24
View File
@@ -0,0 +1,24 @@
import { type Base, genBase } from "./_base";
import type { Infra } from "./infra";
export interface ProcedureRoom extends Base {
code: string
infra_code: string
infra?: Infra
type_code: string
unit_code: string
specialist_code?: string | null
subspecialist_code?: string | null
}
export function genProcedureRoom(): ProcedureRoom {
return {
...genBase(),
code: '',
infra_code: '',
type_code: '',
unit_code: '',
specialist_code: null,
subspecialist_code: null,
}
}
+19 -11
View File
@@ -1,14 +1,11 @@
// Base
import * as base from './_crud-base'
// Types
import type { Infra } from '~/models/infra'
const path = '/api/v1/infra'
const name = 'infra'
const path = `/api/v1/${name}`
export function create(data: any) {
export function create(data: Infra) {
return base.create(path, data, name)
}
@@ -20,7 +17,7 @@ export function getDetail(id: number | string) {
return base.getDetail(path, id, name)
}
export function update(id: number | string, data: any) {
export function update(id: number | string, data: Infra) {
return base.update(path, id, data, name)
}
@@ -28,15 +25,26 @@ export function remove(id: number | string) {
return base.remove(path, id, name)
}
export async function getValueLabelList(params: any = null): Promise<{ value: string; label: string }[]> {
export async function getValueLabelList(params: any = null, useId = false): Promise<{ value: string; label: string }[]> {
let data: { value: string; label: string }[] = []
const result = await getList(params)
if (result.success) {
const resultData = result.body?.data || []
data = resultData.map((item: Infra) => ({
value: item.id ? Number(item.id) : item.code,
label: item.name,
}))
data = !useId ?
resultData.map((item: Infra) => ({ value: item.code, label: item.name })) :
resultData.map((item: Infra) => ({ value: item.id, label: item.name }))
}
return data
}
// export async function getProcedureRoomValueLabelList(params: any = null, useId = false): Promise<{ value: string; label: string }[]> {
// let data: { value: string; label: string }[] = []
// const result = await getList({ 'infraGroup_code': 'procedure-room' ,...params})
// if (result.success) {
// const resultData = result.body?.data || []
// data = !useId ?
// resultData.map((item: Infra) => ({ value: item.code, label: item.name })) :
// resultData.map((item: Infra) => ({ value: item.id, label: item.name }))
// }
// return data
// }
+26
View File
@@ -0,0 +1,26 @@
// Base
import type { ProcedureRoom } from '~/models/procedure-room'
import * as base from './_crud-base'
const name = 'procedure-room'
const path = `/api/v1/${name}`
export function create(data: ProcedureRoom) {
return base.create(path, data, name)
}
export function getList(params: any = null) {
return base.getList(path, params, name)
}
export function getDetail(id: number | string) {
return base.getDetail(path, id, name)
}
export function update(id: number | string, data: ProcedureRoom) {
return base.update(path, id, data, name)
}
export function remove(id: number | string) {
return base.remove(path, id, name)
}