WIP Добавил max и min парамметры для инпута

This commit is contained in:
DwCay
2023-05-17 10:54:07 +03:00
parent 9917efd2ae
commit 277681804d
2 changed files with 34 additions and 10 deletions

View File

@@ -52,7 +52,7 @@ import { v_model } from "@/shared/mixins/v-model";
import BaseInputContainer from "@/components/base/BaseInputContainer.vue"; import BaseInputContainer from "@/components/base/BaseInputContainer.vue";
export default { export default {
name: "BaseNumberInput", name: "BaseInputNumber",
components: { BaseInput, BaseInputContainer }, components: { BaseInput, BaseInputContainer },
mixins: [v_model], mixins: [v_model],
data() { data() {
@@ -65,6 +65,15 @@ export default {
type: Number, type: Number,
default: 1, default: 1,
}, },
max: {
type: Number,
default: 1,
},
min: {
type: Number,
default: 0,
},
reverseValue: Boolean,
multiple: Boolean, multiple: Boolean,
circle: Boolean, circle: Boolean,
doc: Boolean, doc: Boolean,
@@ -128,14 +137,26 @@ export default {
}, },
methods: { methods: {
increment() { increment() {
this.value = Number.parseFloat(Number(this.value) + this.step).toFixed( if (this.value < this.max) {
this.rounding this.value = Number.parseFloat(Number(this.value) + this.step).toFixed(
); this.rounding
);
} else {
if (this.reverseValue) {
this.value = this.min;
}
}
}, },
decrement() { decrement() {
this.value = Number.parseFloat(this.value - this.step).toFixed( if (this.min < this.value) {
this.rounding this.value = Number.parseFloat(this.value - this.step).toFixed(
); this.rounding
);
} else {
if (this.reverseValue) {
this.value = this.max;
}
}
}, },
fastIncrement() { fastIncrement() {
this.intervalId = setInterval(() => this.increment(), 100); this.intervalId = setInterval(() => this.increment(), 100);

View File

@@ -3,9 +3,12 @@
.thermometry-wrapper.grid.gap-x-20.gap-y-5 .thermometry-wrapper.grid.gap-x-20.gap-y-5
.flex.flex-col.gap-y-4.items-start(v-if="isEdit" v-for="(thermometry, key) in protocol[data.key]") .flex.flex-col.gap-y-4.items-start(v-if="isEdit" v-for="(thermometry, key) in protocol[data.key]")
span.font-semibold.text-smm {{ data.config.temperature[key].title }} span.font-semibold.text-smm {{ data.config.temperature[key].title }}
base-number-input.w-full( base-input-number.w-full(
v-model="thermometry.temperature", v-model="thermometry.temperature",
:step="1", :step="1",
:min="1",
:max="100",
reverse-value
label="Температура", label="Температура",
outlined, outlined,
shadow-text="º" shadow-text="º"
@@ -52,12 +55,12 @@
<script> <script>
import MedicalFormWrapper from "@/pages/newMedicalCard/components/MedicalFormWrapper.vue"; import MedicalFormWrapper from "@/pages/newMedicalCard/components/MedicalFormWrapper.vue";
import BaseInput from "@/components/base/BaseInput.vue"; import BaseInput from "@/components/base/BaseInput.vue";
import BaseNumberInput from "@/components/base/BaseNumberInput.vue"; import BaseInputNumber from "@/components/base/BaseInputNumber.vue";
import { mapState } from "vuex"; import { mapState } from "vuex";
export default { export default {
name: "ThermometryForm", name: "ThermometryForm",
components: { MedicalFormWrapper, BaseInput, BaseNumberInput }, components: { MedicalFormWrapper, BaseInput, BaseInputNumber },
props: { props: {
data: Object, data: Object,
}, },