You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

UserType.vue 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <template>
  2. <picker color="uni-picker-container" :disabled="dataList.disabled" range-key="lable" mode="selector"
  3. @change="bindPickerChange($event)" :range="selectorObj">
  4. <view class="text">
  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. const props = defineProps(['dataList'])
  22. const emit = defineEmits(['useUserType'])
  23. const handleTxt = computed(() => {
  24. if (props.dataList[props.dataList.value] !== undefined) {
  25. return selectorObj.find(item => item.value == props.dataList[props.dataList.value])?.lable
  26. } else {
  27. return props.dataList.hint ? props.dataList.hint : '请选择' + props.dataList.title
  28. }
  29. })
  30. const bindPickerChange = (e) => {
  31. let select = e.target.value
  32. // #ifdef H5
  33. select = e.detail.value
  34. // #endif
  35. const data = selectorObj.find((item, index) => index === select).value
  36. emit('useUserType', data)
  37. }
  38. </script>
  39. <style>
  40. .text{
  41. padding:10rpx;
  42. }
  43. </style>