field-radio.ts 698 B

12345678910111213141516171819202122232425
  1. // module/user/components/field-radio/field-radio.ts
  2. Component({
  3. behaviors: ['wx://form-field'],
  4. lifetimes: {},
  5. properties: {
  6. name: { type: String },
  7. value: { type: String },
  8. defaultValue: { type: String },
  9. options: { type: Array, value: [] },
  10. },
  11. data: {},
  12. observers: {
  13. 'defaultValue'(value) {
  14. setTimeout(() => { if (!this.data.value) this.setData({ value }); }, 1000)
  15. }
  16. },
  17. methods: {
  18. onChange(event: { detail: { value: any } }) {
  19. const value = event.detail.value;
  20. this.setData({ value });
  21. const name = this.data.name;
  22. if (name) this.triggerEvent('change', { [name]: value }, { bubbles: true, composed: true });
  23. }
  24. }
  25. })