Browse Source

feat: 注册零填写-添加成员手机号已注册时提示邀请加入

E2E Test Bot 1 day ago
parent
commit
609f60b936
1 changed files with 30 additions and 4 deletions
  1. 30 4
      cfc-frontend/pages/family/add-member.vue

+ 30 - 4
cfc-frontend/pages/family/add-member.vue

@@ -77,7 +77,7 @@
 <view class="form-item">
 <view class="form-item">
 <text class="label">手机号(选填)</text>
 <text class="label">手机号(选填)</text>
 <input class="input" type="number" v-model="form.phone" placeholder="填写手机号可关联已有账号" maxlength="11" />
 <input class="input" type="number" v-model="form.phone" placeholder="填写手机号可关联已有账号" maxlength="11" />
-<text class="hint">若手机号已注册,将自动关联该账号</text>
+<text class="hint">若手机号已注册,将提示是否邀请该用户加入家庭</text>
 </view>
 </view>
 
 
 <!-- 保存按钮 -->
 <!-- 保存按钮 -->
@@ -107,7 +107,7 @@
 </template>
 </template>
 
 
 <script>
 <script>
-import { addFamilyMember, updateFamilyMember, recordConsent } from '../../utils/api.js'
+import { addFamilyMember, updateFamilyMember, recordConsent, checkPhone } from '../../utils/api.js'
 import GenerationPicker from '../../components/GenerationPicker.vue'
 import GenerationPicker from '../../components/GenerationPicker.vue'
 import { parseDate } from '../../utils/format.js'
 import { parseDate } from '../../utils/format.js'
 
 
@@ -220,8 +220,34 @@ uni.showToast({ title: '请选择出生日期', icon: 'none' })
 return
 return
 }
 }
 if (this.form.phone && !/^1[3-9]\d{9}$/.test(this.form.phone)) {
 if (this.form.phone && !/^1[3-9]\d{9}$/.test(this.form.phone)) {
-uni.showToast({ title: '请输入正确的手机号', icon: 'none' })
-return
+ uni.showToast({ title: '请输入正确的手机号', icon: 'none' })
+ return
+ }
+
+// 手机号已注册:提示是否邀请该用户加入家庭(不自动关联)
+if (this.form.phone && !this.isEdit) {
+ try {
+   var phoneCheck = await checkPhone(this.form.phone)
+   if (phoneCheck && phoneCheck.code === 200 && phoneCheck.data === true) {
+     var phoneConfirmed = await new Promise(function(resolve) {
+       uni.showModal({
+         title: '手机号已注册',
+         content: '该手机号已被其他用户注册,是否邀请该用户加入家庭?',
+         confirmText: '去邀请',
+         cancelText: '继续添加',
+         success: function(res2) {
+           resolve(res2.confirm)
+         }
+       })
+     })
+     if (phoneConfirmed) {
+       uni.navigateTo({ url: '/pages/guide/invite/share' })
+       return
+     }
+   }
+ } catch (e) {
+   console.log('手机号存在性检查失败,忽略', e)
+ }
 }
 }
 
 
 // 检查是否为14岁以下儿童 -> 显示监护人同意弹窗
 // 检查是否为14岁以下儿童 -> 显示监护人同意弹窗