import tickleBehavior, { getTickleContext, } from "../../../../core/behavior/tickle.behavior"; import DictionariesBehavior from "../../../../core/behavior/dictionaries.behavior"; import PageContainerBehavior from "../../../../core/behavior/page-container.behavior"; import { PageLoadBehavior } from "../../../../core/behavior/page-loading.behavior"; import { getUserInfoMethod, updateUserInfoMethod } from "../../request"; // module/user/pages/user-edit/user-edit.ts Component({ behaviors: [ PageContainerBehavior, PageLoadBehavior(getUserInfoMethod), DictionariesBehavior, tickleBehavior, ], lifetimes: { attached() {}, }, properties: {}, data: { model: null as App.Patient.Model | null, dirty: false, }, methods: { async onSubmit(event: WechatMiniprogram.FormSubmit) { const submitBtn = this.selectComponent("#submitBtn"); this.setData({ dirty: true }); const data = { ...this.data.model, ...event.detail.value }; if (!data.patientId) data.patientId = wx.getStorageSync("patientId"); // 表单验证 if (!data.sex) { if (submitBtn) submitBtn.resetState(); } if (data.sex.toString() === "1" && !data.womenSpecialPeriod) { if (submitBtn) submitBtn.resetState(); return getTickleContext .call(this) .showWarnMessage("请至少选择一项女性特殊期"); } if (!data.height) { if (submitBtn) submitBtn.resetState(); return getTickleContext.call(this).showWarnMessage("请填写身高"); } if (!data.weight) { if (submitBtn) submitBtn.resetState(); return getTickleContext.call(this).showWarnMessage("请填写体重"); } try { await updateUserInfoMethod(data) .then(() => wx.navigateBack()) .then(() => { this.getOpenerEventChannel().emit("update2", event.detail.value); }) .catch((error) => { // 请求失败时恢复按钮状态 if (submitBtn) { submitBtn.resetState(); } getTickleContext.call(this).showWarnMessage(error.errMsg); }); } catch (error) { if (submitBtn) submitBtn.resetState(); getTickleContext.call(this).showWarnMessage(error.errMsg); } }, }, });