diff --git a/src/components/shared/select/SelectBase.vue b/src/components/shared/select/SelectBase.vue new file mode 100644 index 00000000..c5715957 --- /dev/null +++ b/src/components/shared/select/SelectBase.vue @@ -0,0 +1,97 @@ + + diff --git a/src/components/shared/select/SelectBusinessType.vue b/src/components/shared/select/SelectBusinessType.vue index 211ed07e..9bb30c13 100644 --- a/src/components/shared/select/SelectBusinessType.vue +++ b/src/components/shared/select/SelectBusinessType.vue @@ -2,11 +2,11 @@ import { ref, onMounted } from 'vue'; import { createSelect, SelectProps } from './select'; -import SelectInput from '../SelectInput.vue'; import { BusinessType } from 'src/stores/business-type/types'; import useStore from 'src/stores/business-type'; +import SelectBase from './SelectBase.vue'; type SelectOption = BusinessType; @@ -74,17 +74,15 @@ function setDefaultValue() { } - - - + diff --git a/src/pages/03_customer-management/components/employer/EmployerFormBusiness.vue b/src/pages/03_customer-management/components/employer/EmployerFormBusiness.vue index 0717d54f..1278af50 100644 --- a/src/pages/03_customer-management/components/employer/EmployerFormBusiness.vue +++ b/src/pages/03_customer-management/components/employer/EmployerFormBusiness.vue @@ -4,11 +4,12 @@ import { commaInput, formatNumberWithCommas, } from 'stores/utils'; -import { onMounted, watch } from 'vue'; -import { ref } from 'vue'; +import { onMounted, watch, reactive, ref } from 'vue'; import { useI18n } from 'vue-i18n'; import ThaiBahtText from 'thai-baht-text'; import SelectBusinessType from 'src/components/shared/select/SelectBusinessType.vue'; +import BusinessTypeDialog from 'src/pages/16_business-type-management/BusinessTypeDialog.vue'; +import useBusinessTypeStore, { BusinessType } from 'src/stores/business-type'; const { locale } = useI18n({ useScope: 'global' }); @@ -24,8 +25,12 @@ const wageRateText = defineModel('wageRateText', { default: '0' }); const rate = ref(commaInput(wageRate.value?.toString() || '0')); -const typeBusinessOption = ref([]); -const typeBusinessENOption = ref([]); +const businessTypeDialog = ref(false); +const businessTypeForm = reactive({ + name: '', + nameEN: '', +}); + const jobPositionOption = ref([]); const jobPositionENOption = ref([]); @@ -40,15 +45,12 @@ defineProps<{ onMounted(async () => { const resultOption = await fetch('/option/option.json'); - rawOption.value = await resultOption.json(); - jobPositionENOption.value = rawOption.value.eng.position; - if (locale.value === 'eng') { - jobPositionOption.value = rawOption.value.eng.position; - } - if (locale.value === 'tha') { - jobPositionOption.value = rawOption.value.tha.position; - } + rawOption.value = await resultOption.json(); + + jobPositionOption.value = + rawOption.value[locale.value === 'tha' ? 'tha' : 'eng'].position; + jobPositionENOption.value = rawOption.value.eng.position; }); watch( @@ -75,13 +77,6 @@ watch([jobPositionOption, jobPositionENOption], () => { ); }); -const typeBusinessOptions = ref[]>([]); -let typeBusinessFilter = selectFilterOptionRefMod( - typeBusinessOption, - typeBusinessOptions, - 'label', -); - const jobPositionOptions = ref[]>([]); let jobPositionFilter = selectFilterOptionRefMod( jobPositionOption, @@ -89,19 +84,29 @@ let jobPositionFilter = selectFilterOptionRefMod( 'label', ); -const typeBusinessENOptions = ref[]>([]); -let typeBusinessENFilter = selectFilterOptionRefMod( - typeBusinessENOption, - typeBusinessENOptions, - 'label', -); - const jobPositionENOptions = ref[]>([]); let jobPositionENFilter = selectFilterOptionRefMod( jobPositionENOption, jobPositionENOptions, 'label', ); + +// NOTE: ~ BUSINESS TYPE SECTION + +const businessType = useBusinessTypeStore(); + +async function createBusinessType() { + const created = await businessType.create(businessTypeForm); + + if (created) { + businessTypeId.value = created.id; + businessTypeDialog.value = false; + } + + businessTypeForm.name = businessTypeForm.nameEN = ''; +} + +// NOTE: ~ BUSINESS TYPE SECTION END