message-analysis.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. interface Gallery {
  2. label?: string;
  3. src: string;
  4. }
  5. // module/chats/components/message-analysis/message-analysis.ts
  6. const defaultGallery = {
  7. 'tongueImgUrl': '',
  8. 'tongueBackImgUrl': '',
  9. 'faceImgUrl': '',
  10. }
  11. Component({
  12. properties: {
  13. payload: { type: Object, value: { title: '', description: '' } },
  14. active: { type: Boolean, value: false },
  15. },
  16. data: {
  17. examples: [
  18. { label: '舌面举例', src: '../../assets/tongue-1.png' },
  19. { label: '舌下举例', src: '../../assets/tongue-2.png' },
  20. { label: '面部举例', src: '../../assets/face-1.png' },
  21. ] as Gallery[],
  22. source: [] as Gallery[],
  23. },
  24. /**
  25. * 组件的方法列表
  26. */
  27. methods: {
  28. onConfirm() {
  29. if (this.data.source.length) return;
  30. wx.navigateTo({
  31. url: '/module/chats/pages/analysis/analysis',
  32. events: { update: (data: any[]) => this._update(data) }
  33. });
  34. },
  35. onCancel() {
  36. this.triggerEvent('next', defaultGallery);
  37. },
  38. _update(source: (Gallery & { target: string; })[]) {
  39. this.setData({ source });
  40. const data = {} as AnyObject;
  41. for (const item of source) { data[item.target] = item.src; }
  42. this.triggerEvent('next', {
  43. ...defaultGallery,
  44. ...data,
  45. });
  46. }
  47. }
  48. })