// add-person.js const storage = require('../../utils/storage') Page({ data: { personId: null, formData: { avatar: '', name: '', nickname: '', remark: '' } }, onLoad(options) { // 如果是编辑模式 if (options.id) { this.setData({ personId: options.id }) this.loadPerson(options.id) } }, /** * 加载人员信息(编辑模式) */ loadPerson(id) { const person = storage.getPersonById(id) if (person) { this.setData({ formData: person }) wx.setNavigationBarTitle({ title: '编辑人员' }) } }, /** * 输入框变化 */ onInputChange(e) { const field = e.currentTarget.dataset.field const value = e.detail.value this.setData({ [`formData.${field}`]: value }) }, /** * 文本框变化 */ onTextareaChange(e) { this.setData({ 'formData.remark': e.detail.value }) }, /** * 选择头像 */ chooseAvatar() { wx.chooseImage({ count: 1, sizeType: ['compressed'], sourceType: ['album', 'camera'], success: (res) => { // 这里可以上传到服务器,暂时使用本地路径 this.setData({ 'formData.avatar': res.tempFilePaths[0] }) } }) }, /** * 取消 */ onCancel() { wx.navigateBack() }, /** * 提交 */ onSubmit() { const { formData, personId } = this.data // 验证姓名 if (!formData.name || formData.name.trim() === '') { wx.showToast({ title: '请输入姓名', icon: 'none' }) return } if (personId) { // 编辑模式 const success = storage.updatePerson(personId, formData) if (success) { wx.showToast({ title: '保存成功', icon: 'success' }) setTimeout(() => { wx.navigateBack() }, 1500) } else { wx.showToast({ title: '保存失败', icon: 'none' }) } } else { // 新增模式 const newPerson = storage.addPerson({ name: formData.name, nickname: formData.nickname || '', avatar: formData.avatar || '', remark: formData.remark || '' }) if (newPerson) { wx.showToast({ title: '添加成功', icon: 'success' }) setTimeout(() => { wx.navigateBack() }, 1500) } else { wx.showToast({ title: '添加失败', icon: 'none' }) } } } })