您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

FeeVehicleType.vue 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <template>
  2. <picker color="uni-picker-container" :disabled="props.dataList.disabled" range-key="lable" mode="selector"
  3. @change="bindPickerChange($event)" :range="selectorObj" :class='{isText: !dataList[dataList.value]}'>
  4. <view class="text" :class='{isText: !dataList[dataList.value]}'>
  5. {{handleTxt}}
  6. </view>
  7. </picker>
  8. </template>
  9. <script setup lang='ts'>
  10. import {
  11. computed,
  12. ref
  13. } from 'vue'
  14. const selectorObj = [{
  15. 'lable': '一型客车',
  16. 'value': 1
  17. }, {
  18. 'lable': '二型客车',
  19. 'value': 2
  20. }, {
  21. 'lable': '三型客车',
  22. 'value': 3
  23. }, {
  24. 'lable': '四型客车',
  25. 'value': 4
  26. }, {
  27. 'lable': '一型货车',
  28. 'value': 11
  29. }, {
  30. 'lable': '二型货车',
  31. 'value': 12
  32. }, {
  33. 'lable': '三型货车',
  34. 'value': 13
  35. }, {
  36. 'lable': '四型货车',
  37. 'value': 14
  38. }, {
  39. 'lable': '五型货车',
  40. 'value': 15
  41. }, {
  42. 'lable': '六型货车',
  43. 'value': 16
  44. }, {
  45. 'lable': '一型专项作业车',
  46. 'value': 21
  47. }, {
  48. 'lable': '二型专项作业车',
  49. 'value': 22
  50. }, {
  51. 'lable': '三型专项作业车',
  52. 'value': 23
  53. }, {
  54. 'lable': '四型专项作业车',
  55. 'value': 24
  56. }, {
  57. 'lable': '五型专项作业车',
  58. 'value': 25
  59. }, {
  60. 'lable': '六型专项作业车',
  61. 'value': 26
  62. }, ]
  63. const props = defineProps(['dataList'])
  64. const emit = defineEmits(['feeVehicleType'])
  65. const handleTxt = computed(() => {
  66. if (props.dataList[props.dataList.value] !== undefined) {
  67. return selectorObj.find(item => item.value == props.dataList[props.dataList.value]).lable
  68. } else {
  69. return props.dataList.hint ? props.dataList.hint : '请选择' + props.dataList.title
  70. }
  71. })
  72. const bindPickerChange = (e) => {
  73. let select = e.target.value
  74. // #ifdef H5
  75. select = e.detail.value
  76. // #endif
  77. const data = selectorObj.find((item, index) => index === select).value
  78. emit('feeVehicleType', data)
  79. }
  80. </script>
  81. <style>
  82. .text {
  83. padding: 10rpx;
  84. }
  85. .text.isText {
  86. color: #a8a8a8;
  87. }
  88. </style>