Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

keyboard.js 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. import Api from "../../api/index.js"
  2. import { requestFnc } from "../../utils/request.js"
  3. Component({
  4. properties: {
  5. province: {
  6. type: String,
  7. value: "京津沪冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤川青藏琼宁渝",
  8. },
  9. natural: {
  10. type: String,
  11. value: "1234567890",
  12. },
  13. baseBorder: {
  14. type: String,
  15. value: "#cccccc",
  16. },
  17. activeBorder: {
  18. type: String,
  19. value: "#ff7149",
  20. },
  21. extraKey: {
  22. type: String,
  23. value: "完成",
  24. },
  25. plateNum: {
  26. type: String,
  27. value: "",
  28. },
  29. plateColor: {
  30. type: Number,
  31. value: 0,
  32. },
  33. disabled: {
  34. type: Boolean,
  35. value: false
  36. }
  37. },
  38. data: {
  39. isNum: false, // 显示数字字母键盘 是否可选数字
  40. isAlph: false, // 显示数字字母键盘
  41. textArr: [""],
  42. tapVal: "",
  43. },
  44. lifetimes: {
  45. ready: function () {
  46. let plateNum = this.properties.plateNum
  47. if (plateNum) {
  48. this.setData({
  49. textArr: plateNum.split('')
  50. })
  51. }
  52. }
  53. },
  54. methods: {
  55. showKeyboard() {
  56. if (!this.properties.disabled) return
  57. this.setData({
  58. show: true,
  59. })
  60. },
  61. closeKeyboard() {
  62. this.setData({
  63. show: false,
  64. })
  65. },
  66. tapKeyboard(e) {
  67. this.setData({
  68. tapVal: e.currentTarget.dataset.val,
  69. })
  70. if (this.data.tapVal === "-") {
  71. if (this.data.textArr.length == 1) {
  72. this.setData({
  73. isAlph: false,
  74. textArr: [],
  75. })
  76. } else {
  77. this.setData({
  78. textArr: this.data.textArr.slice(
  79. 0,
  80. this.data.textArr.length - 2
  81. ),
  82. })
  83. }
  84. } else {
  85. this.data.textArr[this.data.textArr.length - 1] =
  86. this.data.tapVal
  87. this.setData({
  88. textArr: this.data.textArr,
  89. })
  90. }
  91. if (this.data.textArr.length === 1) {
  92. this.setData({
  93. isAlph: true,
  94. isNum:false
  95. })
  96. } else if (this.data.textArr.length === 0) {
  97. this.setData({
  98. isAlph: false,
  99. isNum:false
  100. })
  101. } else {
  102. this.setData({
  103. isNum:true
  104. })
  105. }
  106. this.setData({
  107. textArr:[...this.data.textArr, ""]
  108. })
  109. this.triggerEvent("updatePlateNum", this.data.textArr.join(""))
  110. },
  111. tapFinished(e) {
  112. let textValue = this.data.textArr.join("")
  113. this.triggerEvent("keyboard", textValue)
  114. this.closeKeyboard()
  115. },
  116. },
  117. })