// 是否 mock 配网成功,false 则走失败态 const MOCK_CONFIG_SUCCESS = true // 模拟配网耗时(毫秒) const MOCK_CONFIG_DURATION = 2000 Page({ data: { /** * 页面状态 * - idle: 未配网(进入页面默认态) * - configuring: 配网中 * - success: 配网成功 * - failed: 配网失败 */ status: 'idle', /* 配网表单 */ form: { ssid: '', // WiFi 名称 password: '', // WiFi 密码 showPwd: false, // 是否明文显示密码 }, }, onLoad() { }, onUnload() { /* 清除配网定时器,防止页面卸载后还触发 setData */ if (this._configTimer) { clearTimeout(this._configTimer) this._configTimer = null } }, /* 输入 WiFi 名称 */ onInputSsid(e) { this.setData({ 'form.ssid': e.detail.value }) }, /* 输入 WiFi 密码 */ onInputPwd(e) { this.setData({ 'form.password': e.detail.value }) }, /* 切换密码明文/密文 */ onTogglePwd() { this.setData({ 'form.showPwd': !this.data.form.showPwd }) }, /* 主按钮:根据 status 路由到不同动作 */ onSubmit() { const { status } = this.data if (status === 'configuring') return if (status === 'success') { this.onFinish() return } /* idle / failed 均触发开始配网 */ this.onStartConfig() }, /* 开始配网 / 重新配网 */ onStartConfig() { const { ssid, password } = this.data.form if (!ssid) { wx.showToast({ title: '请输入 WiFi 名称', icon: 'none' }) return } if (!password) { wx.showToast({ title: '请输入 WiFi 密码', icon: 'none' }) return } this.setData({ status: 'configuring' }) /* 模拟配网,后续接入真实配网 API 时删除 */ this._configTimer = setTimeout(() => { this.setData({ status: MOCK_CONFIG_SUCCESS ? 'success' : 'failed' }) }, MOCK_CONFIG_DURATION) }, /* 配网成功后点击完成 */ onFinish() { /* TODO: 接入真实跳转逻辑,例如回到设备首页 */ wx.navigateBack({ delta: 1 }) }, /* 查看帮助 */ onOpenHelp() { console.log('查看帮助') /* TODO: 跳帮助页 */ }, })