Parcourir la source

fix: 注册增加区号字段

liangan il y a 3 semaines
Parent
commit
cbd496e264
7 fichiers modifiés avec 36 ajouts et 21 suppressions
  1. 2 2
      manifest.config.ts
  2. 1 1
      package.json
  3. 1 0
      src/locale/bn.json
  4. 1 0
      src/locale/en.json
  5. 1 0
      src/locale/zh-Hans.json
  6. 2 2
      src/manifest.json
  7. 28 16
      src/pages/register/register.vue

+ 2 - 2
manifest.config.ts

@@ -24,8 +24,8 @@ export default defineManifestConfig({
   'name': VITE_APP_TITLE,
   'appid': VITE_UNI_APPID,
   'description': '',
-  'versionName': '1.1.0',
-  'versionCode': '110',
+  'versionName': '1.1.1',
+  'versionCode': '111',
   'transformPx': false,
   'locale': VITE_FALLBACK_LOCALE === 'bn' ? 'bn' : 'en', // 此app需默认英文
   'fallbackLocale': 'en',

+ 1 - 1
package.json

@@ -4,7 +4,7 @@
   "version": "3.2.0",
   "packageManager": "pnpm@10.10.0",
   "description": "BandhuBuy - APP",
-  "update-time": "2025-09-09",
+  "update-time": "2025-09-10",
   "author": {
     "name": "feige996",
     "zhName": "菲鸽",

+ 1 - 0
src/locale/bn.json

@@ -196,6 +196,7 @@
   "auth.register.loginNow": "এখনই লগইন করুন",
   "auth.register.error.emptyUsername": "অনুগ্রহ করে ব্যবহারকারীর নাম লিখুন",
   "auth.register.error.emptyPhone": "অনুগ্রহ করে ফোন নম্বর লিখুন",
+  "auth.register.error.invalidPhone": "অনুগ্রহ করে বৈধ বাংলাদেশি ফোন নম্বর লিখুন",
   "auth.register.error.emptyVerifyCode": "অনুগ্রহ করে যাচাইকরণ কোড লিখুন",
   "auth.register.error.emptyPassword": "অনুগ্রহ করে পাসওয়ার্ড লিখুন",
   "auth.register.error.passwordLength": "পাসওয়ার্ড ৬-২০ অক্ষরের হতে হবে",

+ 1 - 0
src/locale/en.json

@@ -197,6 +197,7 @@
   "auth.register.loginNow": "Login Now",
   "auth.register.error.emptyUsername": "Please enter username",
   "auth.register.error.emptyPhone": "Please enter phone number",
+  "auth.register.error.invalidPhone": "Please enter a valid Bangladesh phone number",
   "auth.register.error.emptyVerifyCode": "Please enter verification code",
   "auth.register.error.emptyPassword": "Please enter password",
   "auth.register.error.passwordLength": "Password should be 6-20 characters",

+ 1 - 0
src/locale/zh-Hans.json

@@ -196,6 +196,7 @@
   "auth.register.loginNow": "立即登录",
   "auth.register.error.emptyUsername": "请输入用户名",
   "auth.register.error.emptyPhone": "请输入手机号码",
+  "auth.register.error.invalidPhone": "请输入有效的孟加拉手机号",
   "auth.register.error.emptyVerifyCode": "请输入验证码",
   "auth.register.error.emptyPassword": "请输入密码",
   "auth.register.error.passwordLength": "密码应为6-20位字符",

+ 2 - 2
src/manifest.json

@@ -2,8 +2,8 @@
   "name": "BandhuBuy",
   "appid": "__UNI__D38110B",
   "description": "",
-  "versionName": "1.1.0",
-  "versionCode": "110",
+  "versionName": "1.1.1",
+  "versionCode": "111",
   "transformPx": false,
   "app-plus": {
     "usingComponents": true,

+ 28 - 16
src/pages/register/register.vue

@@ -24,10 +24,13 @@ const safeAreaInsets = systemInfo.safeAreaInsets
 // 表单数据
 const formData = ref({
   name: '',
+  // phone 存储不带区号的手机号数字部分
   phone: '',
   verifyCode: '',
   pwd: '',
   code: '',
+  // 固定区号入参
+  areaCode: '88',
 })
 
 // 验证码倒计时
@@ -36,16 +39,17 @@ const countdownTimer = ref<any>(null)
 
 // 获取验证码
 async function getVerificationCode() {
-  // 验证手机号
+  // 验证手机号(不包含区号,固定 +88)
   if (!formData.value.phone.trim()) {
     toast.error(t('auth.register.error.emptyPhone'))
     return
   }
 
-  // 验证手机号格式
-  const phoneRegex = /^1[3-9]\d{9}$/
-  if (!phoneRegex.test(formData.value.phone)) {
-    toast.error(t('auth.register.error.emptyPhone'))
+  // 孟加拉手机号校验:可接受本地格式 01xxxxxxxxx (11 位) 或去掉前导 0 的 1xxxxxxxxx (10 位)
+  const phoneDigits = formData.value.phone.replace(/\D/g, '')
+  const bdPhoneRegex = /^0?1\d{9}$/
+  if (!bdPhoneRegex.test(phoneDigits)) {
+    toast.error(t('auth.register.error.invalidPhone'))
     return
   }
 
@@ -100,7 +104,9 @@ async function handleRegister() {
     // 调用注册接口
     const registerData = {
       name: formData.value.name,
+      // 发送时附带区号字段areaCode,phone字段为不带区号的手机号
       phone: formData.value.phone,
+      areaCode: formData.value.areaCode,
       verifyCode: formData.value.verifyCode,
       pwd: formData.value.pwd,
       code: formData.value.code,
@@ -137,10 +143,11 @@ function validateForm() {
       return
     }
 
-    // 验证手机号格式
-    const phoneRegex = /^1[3-9]\d{9}$/
-    if (!phoneRegex.test(formData.value.phone)) {
-      toast.error(t('auth.register.error.emptyPhone'))
+    // 孟加拉手机号校验:支持 01xxxxxxxxx 或 1xxxxxxxxx
+    const phoneDigits = formData.value.phone.replace(/\D/g, '')
+    const bdPhoneRegex = /^0?1\d{9}$/
+    if (!bdPhoneRegex.test(phoneDigits)) {
+      toast.error(t('auth.register.error.invalidPhone'))
       resolve(false)
       return
     }
@@ -209,13 +216,18 @@ onUnmounted(() => {
             no-border
             custom-class="bandhu-auth-input-field"
           />
-          <wd-input
-            v-model="formData.phone"
-            prop="phone"
-            :placeholder="t('auth.register.phone.placeholder')"
-            no-border
-            custom-class="bandhu-auth-input-field"
-          />
+          <view class="bandhu-auth-input-field phone-input-wrapper" style="border: none; display:flex;align-items:center;">
+            <view class="phone-area-code" style="padding:0 8rpx;font-size:28rpx;color:#333">
+              +88
+            </view>
+            <wd-input
+              v-model="formData.phone"
+              prop="phone"
+              :placeholder="t('auth.register.phone.placeholder')"
+              no-border
+              custom-class="flex-1"
+            />
+          </view>
           <view class="flex items-center gap-20rpx">
             <wd-input
               v-model="formData.verifyCode"