const _my = require("../../__antmove/api/index.js")(my); const wx = _my; // components/addCarNumber/index.js Component({ options: { observers: true, lifetimes: true }, /** * 组件的属性列表 */ properties: { value: { //输入值 value: null }, placeholder: { type: String, value: "请输入车牌号" }, isAudit: { //是否禁用 type: Boolean, value: false }, disabled: { //是否禁用 type: Boolean, value: false } }, /** * 组件的初始数据 */ data: { areaWordList: ["浙", "京", "沪", "苏", "粤", "鲁", "晋", "冀", "豫", "川", "渝", "辽", "吉", "黑", "皖", "鄂", "湘", "赣", "闽", "陕", "甘", "宁", "蒙", "津", "贵", "云", "桂", "琼", "青", "新", "藏", "港", "澳", "台"], //地域中文表 numberList: [], //数字表 wordList: [], //字母表 show: false, //是否显示键盘弹窗 showAreaWord: true, //是否显示地域中文表 showCompleteButton: false //是否显示完成按钮 }, /** * 组件的方法列表 */ methods: { // 点击拉起键盘输入 showpopup() { if (!this.data.isAudit && !this.data.disabled) { this.setData({ show: true }); } }, // 获得初始化英文数字数组 getNumberList() { let numberArr = Array.from(new Array(10)).map((item, index) => { return index.toString(); }); let wordArr = Array.from(new Array(26)).map((item, index) => { return String.fromCharCode(index + 65); }); wordArr = wordArr.concat(["挂", "领", "港", "澳", "学", "警"]); this.setData({ numberList: numberArr, wordList: wordArr }); }, // 点击获得输入值 getValue(e) { let word = e.currentTarget.dataset.value; let { value } = this.data; value = value ? value + word : word; if (value.length == 2) { let charCode = word.charCodeAt(); if (charCode < 65 || charCode > 90) { wx.showToast({ title: "车牌号的第二位必需是字母", icon: "none" }); return; } } this.matchValue(value); }, // 判断输入值操作 matchValue(value) { if (value && value.length > 8) return; this.setData({ value }); this.triggerEvent("change", value); if (!this.data.showCompleteButton && value && value.length >= 7) { this.setData({ showCompleteButton: true }); } else if (this.data.showCompleteButton && value && value.length < 7) { this.setData({ showCompleteButton: false }); } }, // 删除 delete() { let { value } = this.data; value = value.slice(0, value.length - 1); this.matchValue(value); }, // 关闭键盘 onClose() { this.setData({ show: false }); }, antmoveAction: function () { //执行时动态赋值,请勿删除 } }, observers: { value: function (value) { let showAreaWord = value ? false : true; this.setData({ showAreaWord: showAreaWord }); }, show: function (value) { this.triggerEvent("showChange", value) } }, lifetimes: { attached() { this.getNumberList(); this.matchValue(this.data.value); } } });