user-edit.ts 2.3 KB

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