refactor: Add conditions to edit
This commit is contained in:
parent
3ff42316cf
commit
de9551cd82
3 changed files with 57 additions and 67 deletions
|
|
@ -66,7 +66,7 @@ defineEmits<{
|
|||
(e: 'save', index: number): void;
|
||||
(e: 'edit', index: number): void;
|
||||
(e: 'delete', index: number): void;
|
||||
(e: 'undo'): void;
|
||||
(e: 'undo', index: number): void;
|
||||
}>();
|
||||
|
||||
async function fetchProvince() {
|
||||
|
|
@ -182,10 +182,10 @@ const insuranceCompanyFilter = selectFilterOptionRefMod(
|
|||
{{ `ครั้งที่ ${index + 1}` }}
|
||||
<div class="row items-center">
|
||||
<UndoButton
|
||||
v-if="!readonly"
|
||||
v-if="!readonly && !!checkup.id && !checkup.statusSave"
|
||||
id="btn-info-health-undo"
|
||||
icon-only
|
||||
@click="$emit('undo')"
|
||||
@click="$emit('undo', index)"
|
||||
type="button"
|
||||
/>
|
||||
<SaveButton
|
||||
|
|
@ -197,7 +197,7 @@ const insuranceCompanyFilter = selectFilterOptionRefMod(
|
|||
<EditButton
|
||||
icon-only
|
||||
id="btn-info-health-edit"
|
||||
v-if="readonly"
|
||||
v-if="!readonly && checkup.statusSave"
|
||||
@click="$emit('edit', index)"
|
||||
type="button"
|
||||
/>
|
||||
|
|
@ -209,25 +209,13 @@ const insuranceCompanyFilter = selectFilterOptionRefMod(
|
|||
type="button"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- <q-btn
|
||||
v-if="!readonly && !checkup.statusSave"
|
||||
type="submit"
|
||||
dense
|
||||
unelevated
|
||||
id="save-basic-info"
|
||||
:label="$t('save')"
|
||||
color="primary"
|
||||
class="q-px-md rounded"
|
||||
@click="$emit('save', index)"
|
||||
/> -->
|
||||
</span>
|
||||
|
||||
<q-input
|
||||
lazy-rules="ondemand"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || checkup.statusSave"
|
||||
hide-bottom-space
|
||||
class="col-5"
|
||||
:label="$t('formDialogInputCheckupRes')"
|
||||
|
|
@ -250,9 +238,9 @@ const insuranceCompanyFilter = selectFilterOptionRefMod(
|
|||
lazy-rules="ondemand"
|
||||
v-model="checkup.checkupType"
|
||||
:dense="dense"
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || checkup.statusSave"
|
||||
:options="checkupTypeOptions"
|
||||
:hide-dropdown-icon="readonly"
|
||||
:hide-dropdown-icon="readonly || checkup.statusSave"
|
||||
:for="`${prefixId}-select-checkup-type`"
|
||||
:label="$t('formDialogInputCheckupType')"
|
||||
@filter="checkupTypeFilter"
|
||||
|
|
@ -281,9 +269,9 @@ const insuranceCompanyFilter = selectFilterOptionRefMod(
|
|||
class="col-2"
|
||||
v-model="checkup.provinceId"
|
||||
:dense="dense"
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || checkup.statusSave"
|
||||
:label="$t('province')"
|
||||
:hide-dropdown-icon="readonly"
|
||||
:hide-dropdown-icon="readonly || checkup.statusSave"
|
||||
:for="`${prefixId}-select-province`"
|
||||
:options="provinceOptions"
|
||||
@filter="provinceFilter"
|
||||
|
|
@ -301,7 +289,7 @@ const insuranceCompanyFilter = selectFilterOptionRefMod(
|
|||
lazy-rules="ondemand"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || checkup.statusSave"
|
||||
hide-bottom-space
|
||||
class="col-5"
|
||||
:label="$t('formDialogInputHospital')"
|
||||
|
|
@ -324,8 +312,8 @@ const insuranceCompanyFilter = selectFilterOptionRefMod(
|
|||
lazy-rules="ondemand"
|
||||
v-model="checkup.medicalBenefitScheme"
|
||||
:dense="dense"
|
||||
:readonly="readonly"
|
||||
:hide-dropdown-icon="readonly"
|
||||
:readonly="readonly || checkup.statusSave"
|
||||
:hide-dropdown-icon="readonly || checkup.statusSave"
|
||||
:options="medicalBenefitOptions"
|
||||
:for="`${prefixId}-select-province`"
|
||||
:label="$t('formDialogInputMedicalBenefit')"
|
||||
|
|
@ -344,7 +332,7 @@ const insuranceCompanyFilter = selectFilterOptionRefMod(
|
|||
:label="$t('formDialogInputRemark')"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || checkup.statusSave"
|
||||
hide-bottom-space
|
||||
class="col-12"
|
||||
v-model="checkup.remark"
|
||||
|
|
@ -359,7 +347,7 @@ const insuranceCompanyFilter = selectFilterOptionRefMod(
|
|||
:dark="$q.dark.isActive"
|
||||
:locale="$i18n.locale === 'th-th' ? 'th' : 'en'"
|
||||
:enableTimePicker="false"
|
||||
:disabled="readonly"
|
||||
:disabled="readonly || checkup.statusSave"
|
||||
class="col"
|
||||
>
|
||||
<template #year="{ value }">
|
||||
|
|
@ -376,12 +364,12 @@ const insuranceCompanyFilter = selectFilterOptionRefMod(
|
|||
:label="$t('formDialogInputCoverageStartDate')"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || checkup.statusSave"
|
||||
placeholder="DD/MM/YYYY"
|
||||
:mask="readonly ? '' : '##/##/####'"
|
||||
:mask="readonly || checkup.statusSave ? '' : '##/##/####'"
|
||||
:model-value="
|
||||
checkup.coverageStartDate
|
||||
? readonly
|
||||
? readonly || checkup.statusSave
|
||||
? dateFormat(checkup.coverageStartDate)
|
||||
: dateFormat(checkup.coverageStartDate, false, false, true)
|
||||
: undefined
|
||||
|
|
@ -438,12 +426,12 @@ const insuranceCompanyFilter = selectFilterOptionRefMod(
|
|||
:label="$t('formDialogInputCoverageExpiretDate')"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || checkup.statusSave"
|
||||
placeholder="DD/MM/YYYY"
|
||||
:mask="readonly ? '' : '##/##/####'"
|
||||
:mask="readonly || checkup.statusSave ? '' : '##/##/####'"
|
||||
:model-value="
|
||||
checkup.coverageExpireDate
|
||||
? readonly
|
||||
? readonly || checkup.statusSave
|
||||
? dateFormat(checkup.coverageExpireDate)
|
||||
: dateFormat(checkup.coverageExpireDate, false, false, true)
|
||||
: undefined
|
||||
|
|
@ -493,8 +481,8 @@ const insuranceCompanyFilter = selectFilterOptionRefMod(
|
|||
lazy-rules="ondemand"
|
||||
v-model="checkup.insuranceCompany"
|
||||
:dense="dense"
|
||||
:readonly="readonly"
|
||||
:hide-dropdown-icon="readonly"
|
||||
:readonly="readonly || checkup.statusSave"
|
||||
:hide-dropdown-icon="readonly || checkup.statusSave"
|
||||
:options="insuranceCompanyOptions"
|
||||
:for="`${prefixId}-select-province`"
|
||||
:label="$t('formDialogInputInsuranceCompany')"
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ const employeeOther = defineModel<EmployeeOtherCreate>('employeeOther');
|
|||
:for="`${prefixId}-input-citizen-id`"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || employeeOther.statusSave"
|
||||
hide-bottom-space
|
||||
:label="$t('formDialogInputCitizenId')"
|
||||
class="col"
|
||||
|
|
@ -87,7 +87,7 @@ const employeeOther = defineModel<EmployeeOtherCreate>('employeeOther');
|
|||
:for="`${prefixId}-input-father-first-name`"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || employeeOther.statusSave"
|
||||
hide-bottom-space
|
||||
class="col-md-3 col-6"
|
||||
:label="$t('formDialogInputFirstName')"
|
||||
|
|
@ -98,7 +98,7 @@ const employeeOther = defineModel<EmployeeOtherCreate>('employeeOther');
|
|||
:for="`${prefixId}-input-father-last-name`"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || employeeOther.statusSave"
|
||||
hide-bottom-space
|
||||
class="col-md-3 col-6"
|
||||
:label="$t('formDialogInputLastName')"
|
||||
|
|
@ -109,7 +109,7 @@ const employeeOther = defineModel<EmployeeOtherCreate>('employeeOther');
|
|||
:for="`${prefixId}-input-father-first-name-en`"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || employeeOther.statusSave"
|
||||
hide-bottom-space
|
||||
class="col-md-3 col-6"
|
||||
:label="$t('formDialogInputFirstNameEN')"
|
||||
|
|
@ -120,7 +120,7 @@ const employeeOther = defineModel<EmployeeOtherCreate>('employeeOther');
|
|||
:for="`${prefixId}-input-father-last-name-en`"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || employeeOther.statusSave"
|
||||
hide-bottom-space
|
||||
class="col-md-3 col-6"
|
||||
:label="$t('formDialogInputLastNameEN')"
|
||||
|
|
@ -131,7 +131,7 @@ const employeeOther = defineModel<EmployeeOtherCreate>('employeeOther');
|
|||
:for="`${prefixId}-input-father-birthplace`"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || employeeOther.statusSave"
|
||||
hide-bottom-space
|
||||
class="col-6"
|
||||
:label="$t('formDialogInputFamilyBirthPlace')"
|
||||
|
|
@ -149,7 +149,7 @@ const employeeOther = defineModel<EmployeeOtherCreate>('employeeOther');
|
|||
:for="`${prefixId}-input-mother-first-name`"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || employeeOther.statusSave"
|
||||
hide-bottom-space
|
||||
class="col-md-3 col-6"
|
||||
:label="$t('formDialogInputFirstName')"
|
||||
|
|
@ -160,7 +160,7 @@ const employeeOther = defineModel<EmployeeOtherCreate>('employeeOther');
|
|||
:for="`${prefixId}-input-mother-last-name`"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || employeeOther.statusSave"
|
||||
hide-bottom-space
|
||||
class="col-md-3 col-6"
|
||||
:label="$t('formDialogInputLastName')"
|
||||
|
|
@ -171,7 +171,7 @@ const employeeOther = defineModel<EmployeeOtherCreate>('employeeOther');
|
|||
:for="`${prefixId}-input-mother-first-name-en`"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || employeeOther.statusSave"
|
||||
hide-bottom-space
|
||||
class="col-md-3 col-6"
|
||||
:label="$t('formDialogInputFirstNameEN')"
|
||||
|
|
@ -182,7 +182,7 @@ const employeeOther = defineModel<EmployeeOtherCreate>('employeeOther');
|
|||
:for="`${prefixId}-input-mother-last-name-en`"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || employeeOther.statusSave"
|
||||
hide-bottom-space
|
||||
class="col-md-3 col-6"
|
||||
:label="$t('formDialogInputLastNameEN')"
|
||||
|
|
@ -193,7 +193,7 @@ const employeeOther = defineModel<EmployeeOtherCreate>('employeeOther');
|
|||
:for="`${prefixId}-input-mother-birthplace`"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || employeeOther.statusSave"
|
||||
hide-bottom-space
|
||||
class="col-6"
|
||||
:label="$t('formDialogInputFamilyBirthPlace')"
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ defineEmits<{
|
|||
(e: 'save', index: number): void;
|
||||
(e: 'edit', index: number): void;
|
||||
(e: 'delete', index: number): void;
|
||||
(e: 'undo'): void;
|
||||
(e: 'undo', index: number): void;
|
||||
}>();
|
||||
|
||||
function addData() {
|
||||
|
|
@ -117,6 +117,7 @@ const workplaceFilter = selectFilterOptionRefMod(
|
|||
id="btn-add-bank"
|
||||
icon-only
|
||||
class="q-ml-sm"
|
||||
type="button"
|
||||
@click="addData"
|
||||
/>
|
||||
</div>
|
||||
|
|
@ -137,12 +138,13 @@ const workplaceFilter = selectFilterOptionRefMod(
|
|||
{{ `ครั้งที่ ${index + 1}` }}
|
||||
<div class="row items-center">
|
||||
<UndoButton
|
||||
v-if="!readonly"
|
||||
v-if="!readonly && !!work.id && !work.statusSave"
|
||||
id="btn-info-health-undo"
|
||||
icon-only
|
||||
@click="$emit('undo')"
|
||||
@click="$emit('undo', index)"
|
||||
type="button"
|
||||
/>
|
||||
|
||||
<SaveButton
|
||||
icon-only
|
||||
v-if="!readonly && !work.statusSave"
|
||||
|
|
@ -151,7 +153,7 @@ const workplaceFilter = selectFilterOptionRefMod(
|
|||
|
||||
<EditButton
|
||||
icon-only
|
||||
v-if="readonly"
|
||||
v-if="!readonly && work.statusSave"
|
||||
@click="$emit('edit', index)"
|
||||
type="button"
|
||||
/>
|
||||
|
|
@ -179,7 +181,7 @@ const workplaceFilter = selectFilterOptionRefMod(
|
|||
lazy-rules="ondemand"
|
||||
v-model="work.jobType"
|
||||
:dense="dense"
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || work.statusSave"
|
||||
:options="jobTypeOptions"
|
||||
:hide-dropdown-icon="readonly"
|
||||
:for="`${prefixId}-select-job-type`"
|
||||
|
|
@ -210,7 +212,7 @@ const workplaceFilter = selectFilterOptionRefMod(
|
|||
option-value="value"
|
||||
v-model="work.workplace"
|
||||
:dense="dense"
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || work.statusSave"
|
||||
:options="workplaceOptions"
|
||||
:hide-dropdown-icon="readonly"
|
||||
:for="`${prefixId}-select-province`"
|
||||
|
|
@ -231,7 +233,7 @@ const workplaceFilter = selectFilterOptionRefMod(
|
|||
:label="$t('formDialogInputRemark')"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || work.statusSave"
|
||||
hide-bottom-space
|
||||
class="col-12"
|
||||
v-model="work.remark"
|
||||
|
|
@ -246,7 +248,7 @@ const workplaceFilter = selectFilterOptionRefMod(
|
|||
:dark="$q.dark.isActive"
|
||||
:locale="$i18n.locale === 'th-th' ? 'th' : 'en'"
|
||||
:enableTimePicker="false"
|
||||
:disabled="readonly"
|
||||
:disabled="readonly || work.statusSave"
|
||||
class="col-3"
|
||||
>
|
||||
<template #year="{ value }">
|
||||
|
|
@ -262,12 +264,12 @@ const workplaceFilter = selectFilterOptionRefMod(
|
|||
:label="$t('formDialogInputWorkUntil')"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || work.statusSave"
|
||||
placeholder="DD/MM/YYYY"
|
||||
:mask="readonly ? '' : '##/##/####'"
|
||||
:model-value="
|
||||
work.workEndDate
|
||||
? readonly
|
||||
? readonly || work.statusSave
|
||||
? dateFormat(work.workEndDate)
|
||||
: dateFormat(work.workEndDate, false, false, true)
|
||||
: undefined
|
||||
|
|
@ -305,7 +307,7 @@ const workplaceFilter = selectFilterOptionRefMod(
|
|||
:for="`${prefixId}-input-work-permit-no`"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || work.statusSave"
|
||||
hide-bottom-space
|
||||
class="col-6"
|
||||
:label="$t('formDialogInputWorkPermitNo')"
|
||||
|
|
@ -320,7 +322,7 @@ const workplaceFilter = selectFilterOptionRefMod(
|
|||
:dark="$q.dark.isActive"
|
||||
:locale="$i18n.locale === 'th-th' ? 'th' : 'en'"
|
||||
:enableTimePicker="false"
|
||||
:disabled="readonly"
|
||||
:disabled="readonly || work.statusSave"
|
||||
class="col-3"
|
||||
>
|
||||
<template #year="{ value }">
|
||||
|
|
@ -336,12 +338,12 @@ const workplaceFilter = selectFilterOptionRefMod(
|
|||
:label="$t('formDialogInputWorkPermitIssueDate')"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || work.statusSave"
|
||||
placeholder="DD/MM/YYYY"
|
||||
:mask="readonly ? '' : '##/##/####'"
|
||||
:mask="readonly || work.statusSave ? '' : '##/##/####'"
|
||||
:model-value="
|
||||
work.workPermitIssuDate
|
||||
? readonly
|
||||
? readonly || work.statusSave
|
||||
? dateFormat(work.workPermitIssuDate)
|
||||
: dateFormat(work.workPermitIssuDate, false, false, true)
|
||||
: undefined
|
||||
|
|
@ -383,7 +385,7 @@ const workplaceFilter = selectFilterOptionRefMod(
|
|||
:dark="$q.dark.isActive"
|
||||
:locale="$i18n.locale === 'th-th' ? 'th' : 'en'"
|
||||
:enableTimePicker="false"
|
||||
:disabled="readonly"
|
||||
:disabled="readonly || work.statusSave"
|
||||
class="col-3"
|
||||
>
|
||||
<template #year="{ value }">
|
||||
|
|
@ -399,12 +401,12 @@ const workplaceFilter = selectFilterOptionRefMod(
|
|||
:label="$t('formDialogInputWorkPermitExpireDate')"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || work.statusSave"
|
||||
placeholder="DD/MM/YYYY"
|
||||
:mask="readonly ? '' : '##/##/####'"
|
||||
:mask="readonly || work.statusSave ? '' : '##/##/####'"
|
||||
:model-value="
|
||||
work.workPermitExpireDate
|
||||
? readonly
|
||||
? readonly || work.statusSave
|
||||
? dateFormat(work.workPermitExpireDate)
|
||||
: dateFormat(work.workPermitExpireDate, false, false, true)
|
||||
: undefined
|
||||
|
|
@ -442,7 +444,7 @@ const workplaceFilter = selectFilterOptionRefMod(
|
|||
:for="`${prefixId}-input-owner-name`"
|
||||
:dense="dense"
|
||||
outlined
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || work.statusSave"
|
||||
hide-bottom-space
|
||||
class="col-5"
|
||||
:label="$t('formDialogInputOwnerName')"
|
||||
|
|
@ -464,9 +466,9 @@ const workplaceFilter = selectFilterOptionRefMod(
|
|||
lazy-rules="ondemand"
|
||||
v-model="work.positionName"
|
||||
:dense="dense"
|
||||
:readonly="readonly"
|
||||
:readonly="readonly || work.statusSave"
|
||||
:options="positionNameOptions"
|
||||
:hide-dropdown-icon="readonly"
|
||||
:hide-dropdown-icon="readonly || work.statusSave"
|
||||
:for="`${prefixId}-select-position-name`"
|
||||
:label="$t('formDialogInputJobPosition')"
|
||||
@filter="positionNameFilter"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue