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.

region-picker.vue 1.0 KiB

4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <template>
  2. <view class="cu-form-group">
  3. <view class="title">
  4. <text v-if="required" class="lr-required">*</text>
  5. {{ title }}
  6. </view>
  7. <picker
  8. @change="change"
  9. :customitem="customitem"
  10. :value="value"
  11. :disabled="disabled"
  12. :class="[arrow ? 'picker-arrow' : '']"
  13. mode="region"
  14. >
  15. <view class="picker">
  16. <slot>{{ display || placeholder }}</slot>
  17. </view>
  18. </picker>
  19. </view>
  20. </template>
  21. <script>
  22. export default {
  23. name: 'l-region-picker',
  24. props: {
  25. title: {},
  26. disabled: {},
  27. required: {},
  28. placeholder: { default: '请选择地区…' },
  29. multiple: {},
  30. customitem: {},
  31. value: {},
  32. arrow: { default: true }
  33. },
  34. methods: {
  35. change(e) {
  36. this.$emit('change', e.detail.value)
  37. this.$emit('input', e.detail.value)
  38. }
  39. },
  40. computed: {
  41. display() {
  42. if (!this.value || !this.value.length) {
  43. return this.placeholder || ''
  44. }
  45. return this.value.join(' ')
  46. }
  47. }
  48. }
  49. </script>