@@ -67,20 +82,35 @@ onMounted(async () => {
/>
+ :dense="dense"
+ :readonly="readonly"
+ :label="$t('businessType')"
+ :options="typeBusinessOptions"
+ :id="`${prefixId}-select-business-type`"
+ @filter="typeBusinessFilter"
+ >
+
+
+
+ {{ $t('noResults') }}
+
+
+
+
{
/>
+ :dense="dense"
+ :readonly="readonly"
+ :label="$t('jobPosition')"
+ :options="jobPositionOptions"
+ :id="`${prefixId}-select-job-position`"
+ :for="`${prefixId}-select-job-position`"
+ @filter="jobPositionFilter"
+ >
+
+
+
+ {{ $t('noResults') }}
+
+
+
+
('employeeCheckup');
-const checkupTypeOption =
- defineModel<{ label: string; value: string }[]>('checkupTypeOption');
+const checkupTypeOption = defineModel<{ label: string; value: string }[]>(
+ 'checkupTypeOption',
+ { required: true },
+);
const medicalBenefitOption = defineModel<{ label: string; value: string }[]>(
'medicalBenefitOption',
+ { required: true },
);
const insuranceCompanyOption = defineModel<{ label: string; value: string }[]>(
'insuranceCompanyOption',
+ { required: true },
);
const tab = ref();
@@ -81,6 +86,34 @@ onMounted(async () => {
await fetchProvince();
tab.value = 'tab0';
});
+
+// const provinceOps = ref[]>([]);
+// const provinceFilter = selectFilterOptionRefMod(
+// addrOptions.provinceOps,
+// provinceOps,
+// 'label',
+// );
+
+const checkupTypeOptions = ref[]>([]);
+const checkupTypeFilter = selectFilterOptionRefMod(
+ checkupTypeOption,
+ checkupTypeOptions,
+ 'label',
+);
+
+const medicalBenefitOptions = ref[]>([]);
+const medicalBenefitFilter = selectFilterOptionRefMod(
+ medicalBenefitOption,
+ medicalBenefitOptions,
+ 'label',
+);
+
+const insuranceCompanyOptions = ref[]>([]);
+const insuranceCompanyFilter = selectFilterOptionRefMod(
+ insuranceCompanyOption,
+ insuranceCompanyOptions,
+ 'label',
+);
@@ -156,39 +189,67 @@ onMounted(async () => {
v-model="checkup.checkupResult"
/>
-
+
+
+
+ {{ $t('noResults') }}
+
+
+
+
+
+ >
+
+
+
+ {{ $t('noResults') }}
+
+
+
+
+
{
type="textarea"
/>
-
+
+
+
+ {{ $t('noResults') }}
+
+
+
+
+
+ input-debounce="0"
+ option-label="label"
+ option-value="value"
+ lazy-rules="ondemand"
+ v-model="checkup.insuranceCompany"
+ :dense="dense"
+ :readonly="readonly"
+ :hide-dropdown-icon="readonly"
+ :options="insuranceCompanyOptions"
+ :id="`${prefixId}-select-province`"
+ :label="$t('formDialogInputInsuranceCompany')"
+ @filter="insuranceCompanyFilter"
+ >
+
+
+
+ {{ $t('noResults') }}
+
+
+
+
+import { QSelect } from 'quasar';
+import { selectFilterOptionRefMod } from 'src/stores/utils';
import { dateFormat, parseAndFormatDate } from 'src/utils/datetime';
+import { ref } from 'vue';
import { useI18n } from 'vue-i18n';
const { locale } = useI18n();
@@ -17,11 +20,13 @@ const passportIssuingPlace = defineModel('passportIssuingPlace');
const previousPassportReference = defineModel(
'previousPassportReference',
);
-const passportTypeOption =
- defineModel<{ label: string; value: string }[]>('passportTypeOption');
+const passportTypeOption = defineModel<{ label: string; value: string }[]>(
+ 'passportTypeOption',
+ { required: true },
+);
const passportIssuingCountryOption = defineModel<
{ label: string; value: string }[]
->('passportIssuingCountryOption');
+>('passportIssuingCountryOption', { required: true });
defineProps<{
title?: string;
@@ -31,6 +36,20 @@ defineProps<{
separator?: boolean;
prefixId: string;
}>();
+
+const passportTypeOptions = ref[]>([]);
+const passportTypeFilter = selectFilterOptionRefMod(
+ passportTypeOption,
+ passportTypeOptions,
+ 'label',
+);
+
+const passportIssuingCountryOptions = ref[]>([]);
+const passportIssuingCountryFilter = selectFilterOptionRefMod(
+ passportIssuingCountryOption,
+ passportIssuingCountryOptions,
+ 'label',
+);
@@ -39,26 +58,40 @@ defineProps<{
+ @filter="passportTypeFilter"
+ >
+
+
+
+ {{ $t('noResults') }}
+
+
+
+
+ @filter="passportIssuingCountryFilter"
+ >
+
+
+
+ {{ $t('noResults') }}
+
+
+
+
-import { onMounted, reactive } from 'vue';
+import { onMounted, reactive, ref } from 'vue';
import { dateFormat, parseAndFormatDate } from 'src/utils/datetime';
import useAddressStore, {
District,
@@ -7,6 +7,7 @@ import useAddressStore, {
SubDistrict,
} from 'src/stores/address';
import { useI18n } from 'vue-i18n';
+import { selectFilterOptionRefMod } from 'src/stores/utils';
const { locale } = useI18n();
const adrressStore = useAddressStore();
@@ -32,8 +33,10 @@ const visaStayUntilDate = defineModel(
const tm6Number = defineModel('tm6Number');
const entryDate = defineModel('entryDate');
-const visaTypeOption =
- defineModel<{ label: string; value: string }[]>('visaTypeOption');
+const visaTypeOption = defineModel<{ label: string; value: string }[]>(
+ 'visaTypeOption',
+ { required: true },
+);
defineProps<{
title?: string;
@@ -54,6 +57,13 @@ async function fetchProvince() {
onMounted(async () => {
await fetchProvince();
});
+
+const visaTypeOptions = ref[]>([]);
+const visaTypeFilter = selectFilterOptionRefMod(
+ visaTypeOption,
+ visaTypeOptions,
+ 'label',
+);
@@ -62,22 +72,36 @@ onMounted(async () => {
+ :dense="dense"
+ :readonly="readonly"
+ :options="visaTypeOptions"
+ :hide-dropdown-icon="readonly"
+ :id="`${prefixId}-select-visa-type`"
+ :label="$t('formDialogInputVisaType')"
+ @filter="visaTypeFilter"
+ >
+
+
+
+ {{ $t('noResults') }}
+
+
+
+