From 2719e1b7487c2b8080218bbbd625eb1191260d04 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期四, 13 三月 2025 10:16:35 +0800
Subject: [PATCH] fix: 二期需求

---
 packages/core/src/lifeRecharge.ts                                          |   66 +++++++++++++++++++++++++++++++++
 packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeStep1.vue |    7 ++-
 2 files changed, 70 insertions(+), 3 deletions(-)

diff --git a/packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeStep1.vue b/packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeStep1.vue
index 5878244..c358779 100644
--- a/packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeStep1.vue
+++ b/packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeStep1.vue
@@ -47,9 +47,11 @@
   name: 'PhoneBillRechargeStep1',
 });
 
+const { blLifeRecharge } = useLifeRechargeContext();
+
 const form = reactive({
-  ispCode: '',
-  phone: '',
+  ispCode: blLifeRecharge.getCarrierByPhoneNumber(blLifeRecharge.accountModel.phoneNumber),
+  phone: blLifeRecharge.accountModel.phoneNumber,
   name: '',
   remark: '',
 });
@@ -68,7 +70,6 @@
 }
 
 const { addUpdateUserAccount } = useAddUpdateUserAccount();
-const { blLifeRecharge } = useLifeRechargeContext();
 
 async function handleAddUpdateUserAccount() {
   try {
diff --git a/packages/core/src/lifeRecharge.ts b/packages/core/src/lifeRecharge.ts
index 0842aba..c529319 100644
--- a/packages/core/src/lifeRecharge.ts
+++ b/packages/core/src/lifeRecharge.ts
@@ -52,4 +52,70 @@
   filterParValueList(parValueList: string[]) {
     return parValueList.filter((x) => Number(x) <= this.MaxParValue);
   }
+
+  getCarrierByPhoneNumber(phoneNumber: string): LifeRechargeConstants.IspCode {
+    // 瀹氫箟鍙锋鍜屽搴旂殑杩愯惀鍟�
+    const carrierSegments = {
+      [LifeRechargeConstants.IspCode.yidong]: [
+        '134',
+        '135',
+        '136',
+        '137',
+        '138',
+        '139',
+        '150',
+        '151',
+        '152',
+        '157',
+        '158',
+        '159',
+        '182',
+        '183',
+        '184',
+        '187',
+        '188',
+        '198',
+        '147',
+        '178',
+        '165',
+      ],
+      [LifeRechargeConstants.IspCode.liantong]: [
+        '130',
+        '131',
+        '132',
+        '155',
+        '156',
+        '185',
+        '186',
+        '145',
+        '176',
+        '166',
+      ],
+      [LifeRechargeConstants.IspCode.dianxin]: [
+        '133',
+        '153',
+        '180',
+        '181',
+        '189',
+        '177',
+        '199',
+        '191',
+      ],
+    };
+
+    // 妫�鏌ユ墜鏈哄彿鏄惁鏈夋晥锛堣繖閲屽彧绠�鍗曟鏌ラ暱搴︼級
+    if (!/^\d{11}$/.test(phoneNumber)) {
+      return '' as any;
+    }
+
+    let prefix = phoneNumber.substr(0, 3);
+    for (let carrier in carrierSegments) {
+      if (carrierSegments[carrier].includes(prefix)) {
+        return carrier as LifeRechargeConstants.IspCode;
+      }
+    }
+
+    // 濡傛灉娌℃湁鎵惧埌鍖归厤鐨勫彿娈碉紝鍒欒繑鍥炴湭鐭�
+    return '' as any;
+  }
 }

--
Gitblit v1.9.1