user-edit.ts 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import tickleBehavior, { getTickleContext } from "../../../../core/behavior/tickle.behavior";
  2. import DictionariesBehavior from "../../../../core/behavior/dictionaries.behavior";
  3. import PageContainerBehavior from "../../../../core/behavior/page-container.behavior";
  4. import { PageLoadBehavior } from "../../../../core/behavior/page-loading.behavior";
  5. import { getUserInfoMethod, updateUserInfoMethod } from "../../request"
  6. // module/user/pages/user-edit/user-edit.ts
  7. Component({
  8. behaviors: [
  9. PageContainerBehavior,
  10. PageLoadBehavior<App.Patient.Model>(getUserInfoMethod),
  11. DictionariesBehavior,
  12. tickleBehavior
  13. ],
  14. lifetimes: {
  15. attached() { }
  16. },
  17. properties: {},
  18. data: {
  19. model: null as App.Patient.Model | null,
  20. dirty: false,
  21. },
  22. methods: {
  23. onSubmit(event: WechatMiniprogram.FormSubmit) {
  24. this.setData({ dirty: true })
  25. const data = { ...this.data.model, ...event.detail.value };
  26. if (!data.patientId) data.patientId = wx.getStorageSync('patientId');
  27. // 在调用接口前设置按钮为禁用状态
  28. const submitBtn = this.selectComponent('#submitBtn');
  29. if (submitBtn) {
  30. submitBtn.setData({ isDisabled: true });
  31. }
  32. // 表单验证
  33. if (data.sex.toString() === '1' && !data.womenSpecialPeriod) {
  34. if (submitBtn) submitBtn.setData({ isDisabled: false });
  35. return getTickleContext.call(this).showWarnMessage('请至少选择一项女性特殊期');
  36. }
  37. if (!data.height) {
  38. if (submitBtn) submitBtn.setData({ isDisabled: false });
  39. return getTickleContext.call(this).showWarnMessage('请填写身高');
  40. }
  41. if (!data.weight) {
  42. if (submitBtn) submitBtn.setData({ isDisabled: false });
  43. return getTickleContext.call(this).showWarnMessage('请填写体重');
  44. }
  45. updateUserInfoMethod(<any>data)
  46. .then(() => wx.navigateBack())
  47. .then(() => { this.getOpenerEventChannel().emit('update2', event.detail.value); })
  48. .catch((error) => {
  49. // 请求失败时恢复按钮状态
  50. if (submitBtn) {
  51. submitBtn.setData({ isDisabled: false });
  52. }
  53. getTickleContext.call(this).showWarnMessage(error.errMsg)
  54. })
  55. },
  56. },
  57. })