user-edit.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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. 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.toString() === "1" && !data.womenSpecialPeriod) {
  32. if (submitBtn) submitBtn.resetState();
  33. return getTickleContext
  34. .call(this)
  35. .showWarnMessage("请至少选择一项女性特殊期");
  36. }
  37. if (!data.height) {
  38. if (submitBtn) submitBtn.resetState();
  39. return getTickleContext.call(this).showWarnMessage("请填写身高");
  40. }
  41. if (!data.weight) {
  42. if (submitBtn) submitBtn.resetState();
  43. return getTickleContext.call(this).showWarnMessage("请填写体重");
  44. }
  45. updateUserInfoMethod(<any>data)
  46. .then(() => wx.navigateBack())
  47. .then(() => {
  48. this.getOpenerEventChannel().emit("update2", event.detail.value);
  49. })
  50. .catch((error) => {
  51. // 请求失败时恢复按钮状态
  52. if (submitBtn) {
  53. submitBtn.resetState();
  54. }
  55. getTickleContext.call(this).showWarnMessage(error.errMsg);
  56. });
  57. },
  58. },
  59. });