feat: add validation for SEP number and member input in encounter entry
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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') {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user