feat: add validation for SEP number and member input in encounter entry

This commit is contained in:
riefive
2025-11-28 12:45:41 +07:00
parent 7605493d09
commit a2e8f04304
3 changed files with 24 additions and 17 deletions
+12 -15
View File
@@ -162,12 +162,12 @@ watch(
if (!value) return
const objects = props.objects
if (objects && Object.keys(objects).length > 0) {
sepReference.value = objects?.sepReference || ''
sepReference.value = objects?.sepReference || ''
sepControlDate.value = objects?.sepControlDate || ''
sepTrafficStatus.value = objects?.sepTrafficStatus || ''
diagnosis.value = objects?.diagnosis || ''
}
}
},
)
function onAddSep() {
@@ -532,21 +532,18 @@ defineExpose({
class="h-4 w-4"
/>
</Button>
<Button
v-if="isSepValid"
variant="outline"
type="button"
class="bg-green-500 text-white hover:bg-green-600"
size="sm"
disabled
>
<Icon
name="i-lucide-check"
class="h-4 w-4"
/>
</Button>
</div>
</Field>
<div
v-if="isSepValid"
class="mt-1 flex items-center gap-2"
>
<Icon
name="i-lucide-badge-check"
class="h-4 w-4 bg-green-500 text-white"
/>
<span class="text-sm text-green-500">Aktif</span>
</div>
<span class="text-sm text-gray-500">
{{ noteReference }}
</span>
+8 -2
View File
@@ -93,9 +93,15 @@ async function handleEvent(menu: string, value?: any) {
...value,
})
} else if (menu === 'sep-number-changed') {
await getValidateSepNumber(String(value || ''))
const sepNumberText = String(value || '').trim()
if (sepNumberText.length > 5) {
await getValidateSepNumber(sepNumberText)
}
} else if (menu === 'member-changed') {
await getValidateMember(String(value || ''))
const memberText = String(value || '').trim()
if (memberText.length > 5) {
await getValidateMember(memberText)
}
} else if (menu === 'save') {
await handleSaveEncounter(value)
} else if (menu === 'cancel') {
+4
View File
@@ -209,6 +209,10 @@ export function useEncounterEntry(props: {
try {
const result = await getMemberList({ mode: 'by-card', number: member, date: new Date().toISOString().split('T')[0] })
if (result.success && result.body?.response !== null) {
const response = result.body?.response || {}
if (Object.keys(response).length > 0) {
formObjects.value.nationalIdentity = response.peserta?.nik || ''
}
isMemberValid.value = result.body?.metaData?.code === '200'
}
} catch (error) {