feat(sep): add class form

This commit is contained in:
riefive
2025-10-23 12:15:55 +07:00
parent 891c67d6ff
commit 7f0e7bee4a
5 changed files with 318 additions and 103 deletions
+79
View File
@@ -36,6 +36,9 @@ const props = defineProps<{
procedures: any[]
assessments: any[]
supportCodes: any[]
classLevels: any[]
classLevelUpgrades: any[]
classPaySources: any[]
provinces: any[]
cities: any[]
districts: any[]
@@ -78,6 +81,10 @@ const [clinicExcecutive, clinicExcecutiveAttrs] = defineField('clinicExcecutive'
const [procedureType, procedureTypeAttrs] = defineField('procedureType')
const [supportCode, supportCodeAttrs] = defineField('supportCode')
const [note, noteAttrs] = defineField('note')
const [classLevel, classLevelAttrs] = defineField('classLevel')
const [classLevelUpgrade, classLevelUpgradeAttrs] = defineField('classLevelUpgrade')
const [classPaySource, classPaySourceAttrs] = defineField('classPaySource')
const [responsiblePerson, responsiblePersonAttrs] = defineField('responsiblePerson')
const [accident, accidentAttrs] = defineField('trafficAccident')
const [purposeOfVisit, purposeOfVisitAttrs] = defineField('purposeOfVisit')
const [serviceAssessment, serviceAssessmentAttrs] = defineField('serviceAssessment')
@@ -469,6 +476,78 @@ watch(props, (value) => {
</Cell>
</Block>
<Block
v-if="serviceType === '1'"
labelSize="thin"
class="!pt-0"
:colCount="3"
:cellFlex="false"
>
<Cell>
<Label height="dynamic">Kelas Rawat</Label>
<Field>
<Select
id="classLevel"
v-model="classLevel"
v-bind="classLevelAttrs"
:items="classLevels"
:disabled="isLoading || isReadonly"
placeholder="Pilih Kelas Rawat"
/>
</Field>
</Cell>
<Cell>
<Label height="dynamic">Kelas Rawat Naik</Label>
<Field>
<Select
id="classLevelUpgrade"
v-model="classLevelUpgrade"
v-bind="classLevelUpgradeAttrs"
:items="classLevelUpgrades"
:disabled="isLoading || isReadonly"
placeholder="Pilih Kelas Rawat Naik"
/>
</Field>
</Cell>
<Cell>
<Label height="dynamic">Pembiayaan</Label>
<Field>
<Select
id="classPaySource"
v-model="classPaySource"
v-bind="classPaySourceAttrs"
:items="classPaySources"
:disabled="isLoading || isReadonly"
placeholder="Pilih Pembiayaan"
/>
</Field>
</Cell>
</Block>
<Block
v-if="serviceType === '1' && classLevelUpgrade !== ''"
labelSize="thin"
class="!pt-0"
:colCount="1"
:cellFlex="false"
>
<Cell>
<Label height="dynamic">Penanggung Jawab</Label>
<Field>
<Input
id="responsiblePerson"
v-model="responsiblePerson"
v-bind="responsiblePersonAttrs"
:disabled="isLoading || isReadonly"
placeholder="Masukkan penanggung jawab"
/>
</Field>
</Cell>
</Block>
<Block
labelSize="thin"
class="!pt-0"
+21
View File
@@ -20,6 +20,9 @@ import {
supportCodes,
procedureTypes,
purposeOfVisits,
classLevels,
classLevelUpgrades,
classPaySources,
} from '~/lib/constants.vclaim'
// Services
@@ -60,6 +63,9 @@ const assessmentsList = ref<Array<{ value: string; label: string }>>([])
const provincesList = ref<Array<{ value: string; label: string }>>([])
const citiesList = ref<Array<{ value: string; label: string }>>([])
const districtsList = ref<Array<{ value: string; label: string }>>([])
const classLevelsList = ref<Array<{ value: string; label: string }>>([])
const classLevelUpgradesList = ref<Array<{ value: string; label: string }>>([])
const classPaySourcesList = ref<Array<{ value: string; label: string }>>([])
const isPatientsLoading = ref(false)
const paginationMeta = ref<PaginationMeta>({
recordCount: 0,
@@ -341,6 +347,18 @@ async function handleInit() {
value: item.toString(),
label: `${item.toString()} - ${supportCodes[item]}`,
})) as any
classLevelsList.value = Object.keys(classLevels).map((item) => ({
value: item.toString(),
label: classLevels[item],
})) as any
classLevelUpgradesList.value = Object.keys(classLevelUpgrades).map((item) => ({
value: item.toString(),
label: classLevelUpgrades[item],
})) as any
classPaySourcesList.value = Object.keys(classPaySources).map((item) => ({
value: item.toString(),
label: classPaySources[item],
})) as any
}
onMounted(async () => {
@@ -376,6 +394,9 @@ onMounted(async () => {
:provinces="provincesList"
:cities="citiesList"
:districts="districtsList"
:class-levels="classLevelsList"
:class-level-upgrades="classLevelUpgradesList"
:class-pay-sources="classPaySourcesList"
:patient="selectedPatientObject"
@fetch="handleFetch"
@event="handleEvent"