From 4987a3ae0914697b350050f93878020190226543 Mon Sep 17 00:00:00 2001 From: Daria Golova Date: Tue, 22 Aug 2023 15:19:28 +0300 Subject: [PATCH 1/4] =?UTF-8?q?WIP=20=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB=D0=B0=20=D0=B8=D0=BD=D0=BF=D1=83=D1=82,=20=D1=81=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D0=B0=D0=BB=D0=B0=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/base/BaseInputDate.vue | 36 ++-- .../BasicDataForms/DocumentsForm.vue | 204 ++++++++---------- .../components/MedicalBasicDataWrapper.vue | 2 +- .../newMedicalCard/utils/medicalConfig.js | 14 +- src/shared/utils/rulesInputs.js | 7 +- src/store/modules/medicalCard.js | 52 +++-- 6 files changed, 146 insertions(+), 169 deletions(-) diff --git a/src/components/base/BaseInputDate.vue b/src/components/base/BaseInputDate.vue index 5ba1975..dfeed42 100644 --- a/src/components/base/BaseInputDate.vue +++ b/src/components/base/BaseInputDate.vue @@ -9,7 +9,7 @@ :readonly="readonly", :disable="disabled", mask="##.##.####", - :rules="[checkInput]", + :rules="[(val) => rule ? rule(val) : defaultRule(val)]", :lazy-rules="lazyRule", :item-aligned="itemAligned", no-error-icon, @@ -60,7 +60,8 @@ export default { width: Number, lazyRule: [Boolean, String], itemAligned: Boolean, - modelValue: Date, + rule: Function, + modelValue: String, placeholder: String, disabled: Boolean, label: String, @@ -74,32 +75,21 @@ export default { return { calendarVisibility: false, internalDate: null, + //internalValue: null, }; }, computed: { value: { get() { - if ( - moment(this.modelValue).isValid() && - typeof this.modelValue === "object" - ) { - this.changeInternalDate(moment(this.modelValue)); - return moment(this.modelValue).format("DD.MM.YYYY"); - } - if (moment(this.convertFormat(this.modelValue)).isValid()) { - this.changeInternalDate(moment(this.modelValue)); - return this.modelValue; - } - this.changeInternalDate(null); - return null; - }, - set(value) { - this.$emit( - "update:modelValue", - moment(this.convertFormat(value)).isValid() - ? new Date(moment(this.convertFormat(value))) + this.changeInternalDate( + moment(this.convertFormat(this.modelValue)).isValid() + ? moment(this.convertFormat(this.modelValue)) : null ); + return this.modelValue; + }, + set(value) { + this.$emit("update:modelValue", value); }, }, sizeVariable() { @@ -153,8 +143,8 @@ export default { ? date.split(".").reverse().join("-") : null; }, - checkInput(val) { - return moment(this.convertFormat(val)).isValid(); + defaultRule(val) { + return !val || moment(this.convertFormat(val)).isValid(); }, closeCalendar() { this.calendarVisibility = false; diff --git a/src/pages/newMedicalCard/components/BasicDataForms/DocumentsForm.vue b/src/pages/newMedicalCard/components/BasicDataForms/DocumentsForm.vue index 5032fd6..50e0ef0 100644 --- a/src/pages/newMedicalCard/components/BasicDataForms/DocumentsForm.vue +++ b/src/pages/newMedicalCard/components/BasicDataForms/DocumentsForm.vue @@ -29,9 +29,10 @@ floating, v-if="isEdit", rounded, - @click="removeImage(data?.dataKey, field?.key)" + @click="removeImage(data?.dataKey, field?.key)", + :style="{padding: 0}" ) - q-icon.icon-cancel(name="app:cancel", size="8px") + q-icon.cancel-icon(name="app:cancel-mini", size="16px") .replace-photo.font-medium.text-base.cursor-pointer( v-if="isEdit", @click="openModal(data.dataKey)", @@ -44,46 +45,30 @@ base-input-date( v-if="field.type === 'date'", v-model="docData[data.dataKey][field.key]", - :name="field.key", + :name="data.dataKey + ':' + field.key", @update:model-value="checkChangeDocData", :readonly="!isEdit", :width="302", :mask="field?.inputMask", - :rule="[(val) => !personDataField.includes(field.key) ? checkPassportFields(val, field.rules) : field.rules(val)]", - :autogrow="field.key === 'issued_by_org'", - size="M" + :rule="(val) => !personDataField.includes(data.dataKey + ':' + field.key) ? checkPassportFields(val, field.rules) : field.rules(val)", + size="M", ) base-input( - v-if="field.type === 'text' && field.key !== 'issued_by_org'", + v-if="field.type === 'text'", v-model="docData[data.dataKey][field.key]", - :name="field.key", + :name="data.dataKey + ':' + field.key", @update:model-value="checkChangeDocData", :readonly="!isEdit", :type="field.type", :width="302", :mask="field?.inputMask", - :rule="[(val) => !personDataField.includes(field.key) ? checkPassportFields(val, field.rules) : field.rules(val)]", + :rule="[(val) => !personDataField.includes(data.dataKey + ':' + field.key) ? checkPassportFields(val, field.rules) : field.rules(val)]", size="M" ) .icon-copy.my-auto.text-lg.label-field.cursor-pointer( v-if="checkCopiedFields(field.key) && !!docData[data.dataKey][field.key]", @click="copyValue(docData[data.dataKey][field.key])" ) - base-textarea( - v-if="field.type === 'text' && field.key === 'issued_by_org'", - v-model="docData[data.dataKey][field.key]", - :name="field.key", - @update:model-value="checkChangeDocData", - :readonly="!isEdit", - :type="field.type", - :width="302", - :mask="field?.inputMask", - :rule="[(val) => !personDataField.includes(field.key) ? checkPassportFields(val, field.rules) : field.rules(val)]", - autogrow, - size="auto", - height="57px" - padding="10px 16px" - ) diff --git a/src/pages/newMedicalCard/components/MedicalBasicDataWrapper.vue b/src/pages/newMedicalCard/components/MedicalBasicDataWrapper.vue index eb822c8..acd6a0a 100644 --- a/src/pages/newMedicalCard/components/MedicalBasicDataWrapper.vue +++ b/src/pages/newMedicalCard/components/MedicalBasicDataWrapper.vue @@ -3,7 +3,7 @@ basic-data-form //contacts-form documents-form - insurance-form + //insurance-form