feat(addMember): 添加用户页改造,员工/家庭双tab + 员工编号查询表单
- 顶部胶囊式 tabs(员工/家庭用户)切换 - 员工 tab:员工编号输入 + 确认查询 → 回填用户信息 → 补充身高体重 - 家庭 tab:待实现 - 表单宽度调整为 100% 自适应 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
fd93f37d72
commit
57950bd7c2
@@ -42,6 +42,8 @@ interface UserInfoFromServer {
|
||||
|
||||
/** 表单数据模型 */
|
||||
interface MemberForm {
|
||||
/** 员工编号 */
|
||||
workNo: string
|
||||
/** 姓名 */
|
||||
name: string
|
||||
/** 身份证号 */
|
||||
@@ -83,12 +85,15 @@ interface ExistingMember {
|
||||
*/
|
||||
Page({
|
||||
data: {
|
||||
/** tabs 当前选中:employee | family */
|
||||
userType: 'employee' as 'employee' | 'family',
|
||||
/** 编辑模式标记 */
|
||||
isEdit: false,
|
||||
/** 编辑时的用户 ID */
|
||||
userId: '',
|
||||
|
||||
form: {
|
||||
workNo: '',
|
||||
name: '',
|
||||
idCard: '',
|
||||
gender: '',
|
||||
@@ -122,6 +127,7 @@ Page({
|
||||
if (!u) return
|
||||
const parsed = this.parseIdCard(u.idCard ?? '')
|
||||
this.setData({
|
||||
'form.workNo': u.workNo ?? '',
|
||||
'form.name': u.realname ?? '',
|
||||
'form.idCard': u.idCard ?? '',
|
||||
'form.gender': parsed.gender,
|
||||
@@ -135,6 +141,26 @@ Page({
|
||||
})
|
||||
},
|
||||
|
||||
/** tabs 切换 */
|
||||
onTabTap(e: WechatMiniprogram.TouchEvent) {
|
||||
const tab = e.currentTarget.dataset.value as string
|
||||
this.setData({ userType: tab as 'employee' | 'family' })
|
||||
},
|
||||
|
||||
onWorkNoInput(e: WechatMiniprogram.Input) {
|
||||
this.setData({ 'form.workNo': e.detail.value })
|
||||
},
|
||||
|
||||
onQueryEmployee() {
|
||||
const workNo = this.data.form.workNo.trim()
|
||||
if (!workNo) {
|
||||
wx.showToast({ title: '请填写员工编号', icon: 'none' })
|
||||
return
|
||||
}
|
||||
// TODO: 调用员工编号查询接口
|
||||
wx.showToast({ title: '员工编号查询功能待实现', icon: 'none' })
|
||||
},
|
||||
|
||||
onNameInput(e: WechatMiniprogram.Input) {
|
||||
const name = e.detail.value
|
||||
this.setData({
|
||||
@@ -292,6 +318,7 @@ Page({
|
||||
this.setData({
|
||||
showSelectDrawer: false,
|
||||
selectedMember: member,
|
||||
'form.workNo': member.workNo || '',
|
||||
'form.name': member.name,
|
||||
'form.idCard': member.idCard,
|
||||
'form.gender': parsed.gender,
|
||||
@@ -316,6 +343,7 @@ Page({
|
||||
showConfirmModal: false,
|
||||
readonly: false,
|
||||
form: {
|
||||
workNo: '',
|
||||
name: '',
|
||||
idCard: '',
|
||||
gender: '',
|
||||
@@ -372,6 +400,7 @@ Page({
|
||||
parentUserId: userInfo?.userId ?? '',
|
||||
sn: lefuService.deviceInfo?.serialNumber ?? '',
|
||||
scaleDeviceId: lefuService.deviceInfo?.serialNumber ?? '',
|
||||
workNo: this.data.form.workNo.trim(),
|
||||
realname: name.trim(),
|
||||
idCard,
|
||||
sex: parsed.sex,
|
||||
|
||||
Reference in New Issue
Block a user