fix: 优化小程序家庭邀请和设备详情

This commit is contained in:
stu2not
2026-08-19 18:41:27 +08:00
parent e9f89841a0
commit 806097751e
6 changed files with 118 additions and 55 deletions
+15 -6
View File
@@ -14,10 +14,13 @@ import {
} from '@/services/binding'
import {
Child,
CHILD_NAME_RULE_MESSAGE,
createChild,
getChildren,
sanitizeChildNameInput,
resolveChildSelection,
setSelectedChildId as setStoredSelectedChildId,
validateChildNameInput,
} from '@/services/child'
import { useSystemBanner } from '@/components/system-banner/use-system-banner'
@@ -444,6 +447,10 @@ export default function Bind() {
const childName = newChildName.trim()
if (!childName) return null
const childNameError = validateChildNameInput(childName)
if (childNameError) {
throw new Error(childNameError)
}
const child = await createChild({ child_name: childName })
setChildren((currentChildren) => [child, ...currentChildren])
@@ -500,7 +507,7 @@ export default function Bind() {
if (isPendingBinding) {
if (!childId) {
throw new Error('请先选择宝贝或填写新的宝贝昵称')
throw new Error('请先选择宝贝或填写新的宝贝姓名')
}
await setBindingChild(pendingDeviceId!, { child_id: childId })
setSelectedBindingDeviceId(pendingDeviceId)
@@ -658,18 +665,20 @@ export default function Bind() {
)}
<View className='field-item'>
<Text className='field-label'>{isPendingBinding ? '新建宝贝昵称' : '新建宝贝昵称(可选)'}</Text>
<Text className='field-label'>{isPendingBinding ? '新建宝贝姓名' : '新建宝贝姓名(可选)'}</Text>
<Input
className='field-input'
value={newChildName}
placeholder={
isPendingBinding
? children.length > 0 ? '不选已有宝贝时,可填写新昵称' : '请输入宝贝昵称'
: children.length > 0 ? '不选已有宝贝时,可填写新昵称' : '可不填,稍后再关联宝贝'
? children.length > 0 ? '不选已有宝贝时,可填写2-5位简体中文姓名(暂不支持数字和英文)' : CHILD_NAME_RULE_MESSAGE
: children.length > 0 ? '不选已有宝贝时,可填写2-5位简体中文姓名(暂不支持数字和英文)' : '可不填,稍后再关联宝贝'
}
maxlength={5}
onInput={(event) => {
setNewChildName(event.detail.value)
if (event.detail.value) {
const nextChildName = sanitizeChildNameInput(event.detail.value)
setNewChildName(nextChildName)
if (nextChildName) {
setSelectedChildId(null)
setStoredSelectedChildId(null)
}