import { models, db } from '../../utils/cloudbase.js' Page({ data: { phone: '', // 用户输入的手机号码 code: '' // 用户输入的验证码 }, // 监听手机号码输入 onInputPhone(e) { this.setData({ phone: e.detail.value }); }, // 监听验证码输入 onInputCode(e) { this.setData({ code: e.detail.value }); }, // 获取验证码 getCode() { const { phone } = this.data; if (!phone || !/^1[3-9]\d{9}$/.test(phone)) { wx.showToast({ title: '请输入有效的手机号码', icon: 'none' }); return; } const code = this.generateCode(); // 本地生成验证码(用于发送) // 保存验证码到 data this.setData({ code }); console.log(code, 'codecode'); }, generateCode() { return Math.floor(100000 + Math.random() * 900000).toString(); }, // 确定按钮点击事件 async onConfirm() { const { phone, code } = this.data; if (!phone || !code) { wx.showToast({ title: '请输入手机号码和验证码', icon: 'none' }); return; } const { data } = await models.wx_user.list({ filter: { where: { phone: this.data.phone } }, pageSize: 100, // 分页大小,建议指定,如需设置为其它值,需要和 pageNumber 配合使用,两者同时指定才会生效 pageNumber: 1, // 第几页 getCount: true, // 开启用来获取总数 // envType: pre 体验环境, prod 正式环境 envType: "prod", }); const users = data.records || []; // 如果查不到任何数据 if (users.length === 0) { wx.showToast({ title: '该手机号未注册,请换其他手机号登录', icon: 'none' }); return; } // ✅ 如果查到了,但全部都是 delete === 1,则视为无有效账号 const allDeleted = users.every(user => user.delete === 1); if (allDeleted) { wx.showToast({ title: '该手机号未注册,请换其他手机号登录', icon: 'none' }); return; } // ✅ 只要有一个 delete === 0,就继续登录 const validUser = users.find(user => user.delete === 0); wx.setStorageSync('userInfo', validUser); wx.showToast({ title: '登录成功', icon: 'success' }); wx.switchTab({ url: '/pages/index/index' }); } })