2025-12-15 18:19:04 +08:00

115 lines
3.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use strict";
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-number-keyboard",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$10],
data() {
return {
backspace: "backspace",
// 退格键内容
dot: ".",
// 点
timer: null,
// 长按多次删除的事件监听
cardX: "X"
// 身份证的X符号
};
},
computed: {
// 键盘需要显示的内容
numList() {
if (this.dotDisabled && this.mode == "number") {
if (!this.random) {
return [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];
} else {
return common_vendor.randomArray([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]);
}
} else if (!this.dotDisabled && this.mode == "number") {
if (!this.random) {
return [1, 2, 3, 4, 5, 6, 7, 8, 9, this.dot, 0];
} else {
return common_vendor.randomArray([1, 2, 3, 4, 5, 6, 7, 8, 9, this.dot, 0]);
}
} else if (this.mode == "card") {
if (!this.random) {
return [1, 2, 3, 4, 5, 6, 7, 8, 9, this.cardX, 0];
} else {
return common_vendor.randomArray([1, 2, 3, 4, 5, 6, 7, 8, 9, this.cardX, 0]);
}
}
},
// 按键的样式,在非乱序&&数字键盘&&不显示点按钮时index为9时按键占位两个空间
itemStyle() {
return (index) => {
let style = {};
if (this.mode == "number" && this.dotDisabled && index == 9)
style.width = "464rpx";
return style;
};
},
// 是否让按键显示灰色,只在非乱序&&数字键盘&&且允许点按键的时候
btnBgGray() {
return (index) => {
if (!this.random && index == 9 && (this.mode != "number" || this.mode == "number" && !this.dotDisabled))
return true;
else
return false;
};
}
},
created() {
},
emits: ["backspace", "change"],
methods: {
// 点击退格键
backspaceClick() {
this.$emit("backspace");
clearInterval(this.timer);
this.timer = null;
this.timer = setInterval(() => {
this.$emit("backspace");
}, 250);
},
clearTimer() {
clearInterval(this.timer);
this.timer = null;
},
// 获取键盘显示的内容
keyboardClick(val) {
if (!this.dotDisabled && val != this.dot && val != this.cardX)
val = Number(val);
this.$emit("change", val);
}
}
};
if (!Array) {
const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon");
_easycom_u_icon2();
}
const _easycom_u_icon = () => "../u-icon/u-icon.js";
if (!Math) {
_easycom_u_icon();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_vendor.f($options.numList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: common_vendor.s($options.itemStyle(index)),
c: common_vendor.o(($event) => $options.keyboardClick(item), index),
d: index
};
}),
b: common_vendor.p({
name: "backspace",
color: "#303133",
size: "28"
}),
c: common_vendor.o((...args) => $options.backspaceClick && $options.backspaceClick(...args)),
d: common_vendor.o((...args) => $options.clearTimer && $options.clearTimer(...args)),
e: common_vendor.o((...args) => _ctx.noop && _ctx.noop(...args))
};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-172328e1"], ["__file", "/Users/zsq/Sources/github/2025property-pay/pay-customer/node_modules/uview-plus/components/u-number-keyboard/u-number-keyboard.vue"]]);
wx.createComponent(Component);