137 lines
2.5 KiB
JavaScript
137 lines
2.5 KiB
JavaScript
// 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'
|
|
})
|
|
}
|
|
}
|
|
}
|
|
})
|
|
|