// components/CarNumber/index.js
Component({
/**
* 自定义样式
*/
externalClasses: ['custom-input-class', 'custom-item-class', 'custom-energy-icon'],
/**
* 组件的属性列表
*/
properties: {
defaultNum: {
type: String,
default: ''
}
},
/**
* 页面展示
*/
pageLifetimes: {
show() {
if (this.data.defaultNum) {
// 存在默认车牌号
const length = this.data.defaultNum.length
if (length === 8) {
// 新能源车牌号
this.setData({
newEnergy: true
})
}
this.setData({
carNum: this.data.defaultNum.split('')
})
}
}
},
/**
* 组件的初始数据
*/
data: {
carNum: [],
currentInput: 0,
keyboard: false,
keyboardType: 1,
newEnergy: false,
// 省份输入
provinces: [
['京', '沪', '粤', '津', '冀', '晋', '蒙', '辽', '吉', '黑'],
['苏', '浙', '皖', '闽', '赣', '鲁', '豫', '鄂', '湘'],
['桂', '琼', '渝', '川', '贵', '云', '藏'],
['陕', '甘', '青', '宁', '新'],
],
// 地区输入
areas: [
["A", "B", "C", "D", "E", "F", "G", "H", "J", "K"],
["L", "M", "N", "P", "Q", "R", "S", "T", "U", "V"],
["W", "X", "Y", "Z"]
],
// 车牌输入
numbers: [
["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"],
["A", "B", "C", "D", "E", "F", "G", "H", "J", "K"],
["L", "M", "N", "P", "Q", "R", "S", "T", "U", "V"],
["W", "X", "Y", "Z"]
],
// 最后一位输入
last: [
["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"],
["A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", ],
["N", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"],
["港", "澳", "学", "挂", "警"]
]
},
/**
* 组件的方法列表
*/
methods: {
/**
* 关闭键盘
*/
closeKeyboard() {
this.setData({
keyboard: false
})
},
/**
* 显示省份键盘
*/
showProvinceBoard() {
this.setData({
keyboard: true,
currentInput: 0,
keyboardType: 1
})
},
/**
* 确定选择省份
*/
chooseProvince(event) {
const { val } = event.currentTarget.dataset
this.setData({
'carNum[0]': val,
currentInput: 1,
keyboardType: 2
})
this.props.onCounterPlusOne(this.data.carNum.join("")); // axml中的事件只能由methods中的方法响应
},
/**
* 删除选定省份
*/
delProvince() {
this.setData({
'carNum[0]': ''
})
// 每次都触发 change 事件,通知父组件
this.props.onCounterPlusOne(this.data.carNum.join("")); // axml中的事件只能由methods中的方法响应
},
/**
* 显示地区键盘
*/
showAreaBoard() {
this.setData({
keyboard: true,
currentInput: 1,
keyboardType: 2
})
},
/**
* 选定地区
*/
chooseArea(event) {
const { val } = event.currentTarget.dataset
this.setData({
'carNum[1]': val,
currentInput: 2,
keyboardType: 3
})
// 每次都触发 change 事件,通知父组件
this.props.onCounterPlusOne(this.data.carNum.join("")); // axml中的事件只能由methods中的方法响应
},
/**
* 删除选定区域
*/
delArea() {
this.setData({
'carNum[1]': '',
currentInput: 0,
keyboardType: 1
})
// 每次都触发 change 事件,通知父组件
this.props.onCounterPlusOne(this.data.carNum.join("")); // axml中的事件只能由methods中的方法响应
},
/**
* 显示普通键盘
*/
showNumberBoard(event) {
const { index } = event.currentTarget.dataset
const keyboardType = index === 6 && !this.data.newEnergy ? 4 : 3
this.setData({
keyboard: true,
currentInput: index,
keyboardType: keyboardType
})
},
/**
* 选定车牌
*/
chooseNumber(event) {
const { val } = event.currentTarget.dataset
const name = 'carNum[' + this.data.currentInput + ']'
this.setData({
[name]: val,
currentInput: this.data.currentInput + 1,
keyboardType: 3
})
// 跳到最后一位时,键盘不一样
if (this.data.currentInput === 6 && !this.data.newEnergy) {
this.setData({
keyboardType: 4
})
} else if (this.data.currentInput === 7 && this.data.newEnergy) {
this.setData({
keyboardType: 4
})
}
// 每次都触发 change 事件,通知父组件
this.props.onCounterPlusOne(this.data.carNum.join("")); // axml中的事件只能由methods中的方法响应
},
/**
* 删除车牌
*/
delNumber() {
const name = 'carNum[' + this.data.currentInput + ']'
this.setData({
[name]: '',
currentInput: this.data.currentInput - 1,
keyboardType: 3
})
// 如果删除到地区时,切换键盘类型
if (this.data.currentInput === 1) {
this.setData({
keyboardType: 2
})
}
// 每次都触发 change 事件,通知父组件
this.props.onCounterPlusOne(this.data.carNum.join("")); // axml中的事件只能由methods中的方法响应
},
/**
* 显示最后一位键盘
*/
showLastBoard() {
if (this.data.newEnergy) {
// 新能源
this.setData({
keyboard: true,
currentInput: 7,
keyboardType: 4
})
} else {
this.setData({
keyboard: true,
currentInput: 6,
keyboardType: 4
})
}
},
/**
* 选定最后一位
*/
chooseLast(event) {
const { val } = event.currentTarget.dataset
if (this.data.newEnergy) {
// 新能源
this.setData({
'carNum[7]': val,
currentInput: this.data.currentInput + 1,
keyboard: false
})
} else {
this.setData({
'carNum[6]': val,
currentInput: this.data.currentInput + 1,
keyboard: false
})
}
// 每次都触发 change 事件,通知父组件
this.props.onCounterPlusOne(this.data.carNum.join("")); // axml中的事件只能由methods中的方法响应
},
/**
* 删除最后一位
*/
delLast() {
if (this.data.newEnergy) {
this.setData({
'carNum[7]': '',
currentInput: this.data.currentInput - 1,
keyboardType: 3
})
} else {
this.setData({
'carNum[6]': '',
currentInput: this.data.currentInput - 1,
keyboardType: 3
})
}
// 每次都触发 change 事件,通知父组件
this.props.onCounterPlusOne(this.data.carNum.join("")); // axml中的事件只能由methods中的方法响应
},
/**
* 切换输入新能源车牌号
*/
changeCarToNewEnergy() {
this.setData({
newEnergy: true
})
}
}
})
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
alipay.zip (15个子文件)
pages
index
index.acss 1KB
index.axml 183B
index.js 5KB
index.json 76B
app.json 152B
app.js 229B
snapshot.png 16KB
app.acss 0B
components
.DS_Store 6KB
CarNumber
index.acss 2KB
index.axml 3KB
index.js 7KB
index.json 48B
img
new_energy.png 7KB
mini.project.json 26B
共 15 条
- 1
资源评论
可口可乐Vip
- 粉丝: 915
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 精选微信小程序源码:汤总便利小程序(门店店铺类)小程序(含源码+源码导入视频教程&文档教程,亲测可用)
- Excel弹窗“此工作簿包含到一个或多个可能不安全的外部源的链接” 场景范例
- C语言《基于ROS melodic,底盘控制器基于STM32的一个2D激光SLAM自主导小车》+项目源码+文档说明
- winform上位机图像采集控件.zip
- 工具变量全国供应链创新试点城市DID数据集(2007-2023年).xlsx
- SasAppsUserKeyBarUserTech_86_1.0.0.1.kop
- 项目售后服务及培训.docx
- 贪心算法介绍及入门案例
- 项目实施管理方案.docx
- 精选微信小程序源码:熊猫签证小程序(含源码+源码导入视频教程&文档教程,亲测可用)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功