index.js 988 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // commpents/picker/index.js
  2. Component({
  3. /**
  4. * 组件的属性列表
  5. */
  6. properties: {
  7. label: { type: String },
  8. model: { type: String },
  9. columns: { type: Array },
  10. valueKey: { type: String, value: 'value' },
  11. labelKey: { type: String, value: 'label' }
  12. },
  13. /**
  14. * 组件的初始数据
  15. */
  16. data: {
  17. text: '请选择',
  18. show: false,
  19. },
  20. /**
  21. * 组件的方法列表
  22. */
  23. methods: {
  24. onChange(event) {
  25. const obj = event?.detail?.value;
  26. const label = obj[this.properties.labelKey]
  27. const value = obj[this.properties.valueKey]
  28. this.setData({ text: label })
  29. this.triggerEvent('selected', { value, model: this.properties.model })
  30. this.toClose();
  31. },
  32. toOpen() {
  33. this.setData({ show: true })
  34. },
  35. toClose() {
  36. this.setData({ show: false })
  37. }
  38. }
  39. })