// components/button/button.ts Component({ behaviors: ["wx://form-field-button"], lifetimes: { attached() { console.log("[Button] attached, initializing..."); const mode = this.data.block ? "block" : "line"; const index = this.data.index; this.setData({ src: `../../assets/bg/button-${mode}-${index}.bg.png`, className: this.data.block ? "block" : `line-${index}`, isDisabled: false, }); console.log( "[Button] initialized with isDisabled:", this.data.isDisabled ); }, }, properties: { block: { type: Boolean, value: false }, index: { type: Number, value: 1 }, loading: { type: Boolean, value: false }, text: { type: String, value: "" }, }, data: { list: [ { name: "保存", value: "save", }, { name: "提交", value: "submit", }, { name: "确定", value: "confirm", }, { name: "取消", value: "cancel", }, ], src: "", isDisabled: false, _lastResetTime: 0, }, methods: { handleSubmit() { if (this.data.isDisabled) { return; } // 如果是刚刚重置的按钮(100ms内),不要立即禁用 const now = Date.now(); if (now - this.data._lastResetTime < 100) { this.triggerEvent("submit"); return; } if (this.data.text === "2") { this.setData({ isDisabled: false }); } else { this.setData({ isDisabled: true }); } this.triggerEvent("submit"); }, resetState() { this.setData({ isDisabled: false, _lastResetTime: Date.now(), }); }, valFailure() { // 处理失败逻辑 if (this) this.setData({ isDisabled: true }); // 重置按钮状态 }, }, });