"use strict"; const common_vendor = require("../../../../../common/vendor.js"); const _sfc_main = { name: "UniNumberBox", emits: ["change", "input", "update:modelValue", "blur", "focus"], props: { value: { type: [Number, String], default: 1 }, modelValue: { type: [Number, String], default: 1 }, min: { type: Number, default: 0 }, max: { type: Number, default: 100 }, step: { type: Number, default: 1 }, background: { type: String, default: "#f5f5f5" }, color: { type: String, default: "#333" }, disabled: { type: Boolean, default: false }, activity: { type: String, default: "none" } }, data() { return { inputValue: 0 }; }, watch: { value(val) { this.inputValue = +val; }, modelValue(val) { this.inputValue = +val; } }, created() { if (this.value === 1) { this.inputValue = +this.modelValue; } if (this.modelValue === 1) { this.inputValue = +this.value; } }, methods: { _calcValue(type) { if (this.disabled) { return; } const scale = this._getDecimalScale(); let value = this.inputValue * scale; const step = this.step * scale; if (type === "minus") { value -= step; if (value < this.min * scale) { return; } if (value > this.max * scale) { value = this.max * scale; } } if (type === "plus") { value += step; if (value > this.max * scale) { return; } if (value < this.min * scale) { value = this.min * scale; } } this.inputValue = (value / scale).toFixed(String(scale).length - 1); this.$emit("change", +this.inputValue); this.$emit("input", +this.inputValue); this.$emit("update:modelValue", +this.inputValue); }, _getDecimalScale() { let scale = 1; if (~~this.step !== this.step) { scale = Math.pow(10, String(this.step).split(".")[1].length); } return scale; }, _onBlur(event) { this.$emit("blur", event); let value = event.detail.value; if (!value) { return; } value = +value; if (value > this.max) { value = this.max; } else if (value < this.min) { value = this.min; } const scale = this._getDecimalScale(); this.inputValue = value.toFixed(String(scale).length - 1); this.$emit("change", +this.inputValue); this.$emit("input", +this.inputValue); }, _onFocus(event) { this.$emit("focus", event); } } }; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { return { a: $data.inputValue <= $props.min || $props.disabled ? 1 : "", b: $props.activity === "groupon" ? 1 : "", c: $props.activity === "seckill" ? 1 : "", d: common_vendor.o(($event) => $options._calcValue("minus")), e: $props.disabled, f: common_vendor.o((...args) => $options._onFocus && $options._onFocus(...args)), g: common_vendor.o((...args) => $options._onBlur && $options._onBlur(...args)), h: $props.color, i: $data.inputValue, j: common_vendor.o(($event) => $data.inputValue = $event.detail.value), k: $data.inputValue >= $props.max || $props.disabled ? 1 : "", l: $props.activity === "groupon" ? 1 : "", m: $props.activity === "seckill" ? 1 : "", n: common_vendor.o(($event) => $options._calcValue("plus")) }; } const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-bedb7c33"]]); wx.createComponent(Component);