field-ruler.ts 890 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // module/health/components/field-ruler/field-ruler.ts
  2. Component({
  3. behaviors: ['wx://form-field-group'],
  4. lifetimes: {
  5. attached() { }
  6. },
  7. properties: {
  8. title: { type: String, value: '' },
  9. options: { type: Array, value: [] },
  10. closeOnOverlayClick: { type: Boolean, value: true },
  11. },
  12. /**
  13. * 组件的初始数据
  14. */
  15. data: {
  16. visible: false,
  17. selected: [] as (number | undefined)[],
  18. scrollValue: [] as number[],
  19. },
  20. observers: {
  21. 'options'(options: { value?: number }[]) {
  22. const selected = options.map(option => option.value)
  23. this.setData({ selected })
  24. }
  25. },
  26. methods: {
  27. onShow() {
  28. this.setData({ visible: true });
  29. },
  30. onConfirm() {
  31. this.setData({
  32. visible: false,
  33. selected: [...this.data.scrollValue],
  34. })
  35. },
  36. onCancel() {
  37. this.setData({ visible: false })
  38. },
  39. }
  40. })