From 3ee683d6b002f098e5b7fed11b54615126d82a3c Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期一, 24 二月 2025 10:57:26 +0800
Subject: [PATCH] fix: 对接

---
 packages/components/src/views/electricBillRecharge/electricBillRecharge.vue |   21 +-
 packages/core/src/lifeRechargeAccountModel.ts                               |    2 
 packages/components/src/views/Order/components/PhoneOrder.vue               |    2 
 packages/core/tsconfig.json                                                 |   20 ++
 packages/core/src/types.ts                                                  |    2 
 pnpm-lock.yaml                                                              |  159 ++++++++++++----------
 apps/taro/src/subpackages/recharge/phoneBillRecharge/InnerPage.vue          |    7 
 packages/components/src/views/PhoneBillRecharge/PhoneBillRecharge.vue       |   41 +++--
 apps/taro/src/app.ts                                                        |    2 
 packages/components/src/utils/index.ts                                      |    5 
 packages/core-vue/src/plugin.ts                                             |    2 
 packages/core/src/lifeRecharge.ts                                           |    4 
 packages/core/src/lifeRechargeConstants.ts                                  |    0 
 packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue       |    2 
 packages/core-vue/src/index.ts                                              |    2 
 apps/taro/src/utils/blLifeRecharge.ts                                       |    2 
 packages/core-vue/package.json                                              |   15 ++
 packages/components/tsconfig.json                                           |    2 
 packages/components/package.json                                            |    3 
 packages/core-vue/tsconfig.json                                             |   14 ++
 packages/core/package.json                                                  |   13 +
 packages/core/src/index.ts                                                  |    4 
 apps/taro/src/subpackages/login/loginByForm/verificationCodeLoginForm.vue   |    2 
 apps/taro/package.json                                                      |    1 
 packages/services/api/typings.d.ts                                          |   24 +-
 apps/taro/tsconfig.json                                                     |    1 
 packages/services/api/AliPayNotify.ts                                       |   32 ++--
 packages/core/src/lifeRechargeServices.ts                                   |    6 
 packages/components/src/hooks/index.ts                                      |   22 +++
 29 files changed, 264 insertions(+), 148 deletions(-)

diff --git a/apps/taro/package.json b/apps/taro/package.json
index 70e4019..1350942 100644
--- a/apps/taro/package.json
+++ b/apps/taro/package.json
@@ -43,6 +43,7 @@
     "@babel/runtime": "^7.7.7",
     "@life-payment/components": "workspace:^",
     "@life-payment/constants": "workspace:^",
+    "@life-payment/core-vue": "workspace:^",
     "@life-payment/services": "workspace:^",
     "@life-payment/utils": "workspace:^",
     "@nutui/icons-vue-taro": "^0.0.9",
diff --git a/apps/taro/src/app.ts b/apps/taro/src/app.ts
index d2b1804..edf0893 100644
--- a/apps/taro/src/app.ts
+++ b/apps/taro/src/app.ts
@@ -10,7 +10,7 @@
 import Taro from '@tarojs/taro';
 import { VueQueryPlugin, VueQueryPluginOptions } from '@tanstack/vue-query';
 import { myClient } from '@/constants/query';
-import { VueLifeRechargePlugin } from '@life-payment/components';
+import { VueLifeRechargePlugin } from '@life-payment/core-vue';
 import { blLifeRecharge } from '@/utils/blLifeRecharge';
 import { isWeChat } from '@/utils/env';
 
diff --git a/apps/taro/src/subpackages/login/loginByForm/verificationCodeLoginForm.vue b/apps/taro/src/subpackages/login/loginByForm/verificationCodeLoginForm.vue
index e95a502..44426f2 100644
--- a/apps/taro/src/subpackages/login/loginByForm/verificationCodeLoginForm.vue
+++ b/apps/taro/src/subpackages/login/loginByForm/verificationCodeLoginForm.vue
@@ -40,7 +40,7 @@
 import { useLoginedJump } from '@/hooks';
 import { useUserStore } from '@/stores/modules/user';
 import Taro from '@tarojs/taro';
-import { useLifeRechargeContext } from '@life-payment/components';
+import { useLifeRechargeContext } from '@life-payment/core-vue';
 
 defineOptions({
   name: 'verificationCodeLoginForm',
diff --git a/apps/taro/src/subpackages/recharge/phoneBillRecharge/InnerPage.vue b/apps/taro/src/subpackages/recharge/phoneBillRecharge/InnerPage.vue
index f6549ba..ac20e67 100644
--- a/apps/taro/src/subpackages/recharge/phoneBillRecharge/InnerPage.vue
+++ b/apps/taro/src/subpackages/recharge/phoneBillRecharge/InnerPage.vue
@@ -1,17 +1,20 @@
 <template>
   <ContentScrollView :paddingH="false">
-    <PhoneBillRecharge @goPay="goPay" />
+    <PhoneBillRecharge @goPay="goPay" :isDev="isDev" />
   </ContentScrollView>
 </template>
 
 <script setup lang="ts">
-import { PhoneBillRecharge, BlLifeRecharge } from '@life-payment/components';
+import { PhoneBillRecharge } from '@life-payment/components';
+import { BlLifeRecharge } from '@life-payment/core-vue';
 import Taro from '@tarojs/taro';
 
 defineOptions({
   name: 'InnerPage',
 });
 
+const isDev = process.env.NODE_ENV === 'development';
+
 function goPay(orderNo: string) {
   Taro.navigateTo({
     url: `${RouterPath.selectPayType}?orderNo=${orderNo}&lifePayOrderType=${BlLifeRecharge.constants.LifePayOrderTypeEnum.璇濊垂璁㈠崟}`,
diff --git a/apps/taro/src/utils/blLifeRecharge.ts b/apps/taro/src/utils/blLifeRecharge.ts
index c4441f3..b62221b 100644
--- a/apps/taro/src/utils/blLifeRecharge.ts
+++ b/apps/taro/src/utils/blLifeRecharge.ts
@@ -1,4 +1,4 @@
-import { BlLifeRecharge } from '@life-payment/components';
+import { BlLifeRecharge } from '@life-payment/core-vue';
 import { request } from './request';
 import { getStorageVirtualUserId } from './storage';
 
diff --git a/apps/taro/tsconfig.json b/apps/taro/tsconfig.json
index 217b914..5a1edaa 100644
--- a/apps/taro/tsconfig.json
+++ b/apps/taro/tsconfig.json
@@ -27,6 +27,7 @@
   "references": [
     { "path": "../../packages/components" },
     { "path": "../../packages/constants" },
+    { "path": "../../packages/core-vue" },
     { "path": "../../packages/utils" }
   ]
 }
diff --git a/packages/components/package.json b/packages/components/package.json
index 784fe4a..070a295 100644
--- a/packages/components/package.json
+++ b/packages/components/package.json
@@ -15,12 +15,13 @@
     "./*": "./*"
   },
   "devDependencies": {
+    "@life-payment/core-vue": "workspace:^",
     "@nutui/icons-vue-taro": "0.0.9",
     "@nutui/nutui-taro": "4.3.13",
     "vue": "3.5.12"
   },
   "peerDependencies": {
-    "@nutui/icons-vue-taro": "0.0.9",
+    "@life-payment/core-vue": "*",
     "@nutui/nutui-taro": "4.3.13",
     "vue": "3.5.12"
   }
diff --git a/packages/components/src/hooks/index.ts b/packages/components/src/hooks/index.ts
index 687cb7c..5071f6a 100644
--- a/packages/components/src/hooks/index.ts
+++ b/packages/components/src/hooks/index.ts
@@ -5,7 +5,8 @@
   PhoneParValueResponse,
   QueryLifePayOrderListInput,
   LifeRechargeConstants,
-} from '../utils';
+  ElectricParValueResponse,
+} from '@life-payment/core-vue';
 import { useQuery } from '@tanstack/vue-query';
 import { computed, MaybeRef, reactive, unref } from 'vue';
 import { useInfiniteLoading } from './infiniteLoading';
@@ -62,6 +63,25 @@
   };
 }
 
+export function useGetElectricParValue() {
+  const { blLifeRecharge } = useLifeRechargeContext();
+
+  const { data: electricParValueList, isLoading } = useQuery({
+    queryKey: ['blLifeRecharge/getElectricParValue'],
+    queryFn: async () => {
+      return await blLifeRecharge.services.getElectricParValue({ showLoading: false });
+    },
+    select(data) {
+      return data.electricParValue ?? [];
+    },
+    placeholderData: () => ({} as ElectricParValueResponse),
+  });
+
+  return {
+    electricParValueList,
+  };
+}
+
 export type UseGetUserLifePayOrderPageOptions = {
   lifePayOrderType?: MaybeRef<LifeRechargeConstants.LifePayOrderTypeEnum>;
 };
diff --git a/packages/components/src/utils/index.ts b/packages/components/src/utils/index.ts
index a9807bb..80bf090 100644
--- a/packages/components/src/utils/index.ts
+++ b/packages/components/src/utils/index.ts
@@ -1,6 +1 @@
-export * from './lifeRecharge';
-export * from './plugin';
-export * from './lifeRechargeServices';
-export * from './types';
 export * from './validator';
-export * from './lifeRechargeConstants';
diff --git a/packages/components/src/views/Order/components/PhoneOrder.vue b/packages/components/src/views/Order/components/PhoneOrder.vue
index 782d440..5d5a200 100644
--- a/packages/components/src/views/Order/components/PhoneOrder.vue
+++ b/packages/components/src/views/Order/components/PhoneOrder.vue
@@ -19,7 +19,7 @@
 import OrderCard from '../../../components/Card/OrderCard.vue';
 import OrderCardItem from '../../../components/Card/OrderCardItem.vue';
 import { useGetUserLifePayOrderPage } from '../../../hooks';
-import { BlLifeRecharge } from '../../../utils';
+import { BlLifeRecharge } from '@life-payment/core-vue';
 
 defineOptions({
   name: 'PhoneOrder',
diff --git a/packages/components/src/views/PhoneBillRecharge/PhoneBillRecharge.vue b/packages/components/src/views/PhoneBillRecharge/PhoneBillRecharge.vue
index 191f9fc..ba06048 100644
--- a/packages/components/src/views/PhoneBillRecharge/PhoneBillRecharge.vue
+++ b/packages/components/src/views/PhoneBillRecharge/PhoneBillRecharge.vue
@@ -7,7 +7,7 @@
     class="order-bill-recharge phone"
   >
     <FormItem label="閫夋嫨杩愯惀鍟�:" class="bole-form-item" prop="ispCode" required>
-      <RadioGroup v-model="form.ispCode" direction="horizontal">
+      <RadioGroup v-model="form.ispCode" direction="horizontal" @change="changeIspCode">
         <BlRadio
           :label="key"
           v-for="(val, key) in BlLifeRecharge.constants.IspCodeText"
@@ -41,7 +41,7 @@
     <FormItem label="閫夋嫨鍏呭�奸噾棰�" class="bole-form-item" prop="parValue" required>
       <RadioGroup v-model="form.parValue" direction="horizontal" class="parValue-radio-group">
         <Radio
-          :label="item"
+          :label="Number(item)"
           :key="item"
           shape="button"
           v-for="item in parValueList"
@@ -88,12 +88,13 @@
 import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
 import { reactive, ref, computed } from 'vue';
 import BlRadio from '../../components/Radio/Radio.vue';
+import { FormValidator } from '../../utils';
 import {
   useLifeRechargeContext,
   BlLifeRecharge,
   LifePhoneDataCreateLifePayOrderInput,
-  FormValidator,
-} from '../../utils';
+  LifeRechargeConstants,
+} from '@life-payment/core-vue';
 import RechargeTipsView from '../../components/RechargeTipsView/RechargeTipsView.vue';
 import ConfirmDialog from '../../components/Dialog/ConfirmDialog.vue';
 import ConfirmDialogInfoItem from '../../components/Dialog/ConfirmDialogInfoItem.vue';
@@ -101,6 +102,14 @@
 
 defineOptions({
   name: 'PhoneBillRecharge',
+});
+
+type Props = {
+  isDev?: boolean;
+};
+
+const props = withDefaults(defineProps<Props>(), {
+  isDev: false,
 });
 
 const form = reactive({
@@ -111,22 +120,22 @@
 });
 
 const emit = defineEmits<{
-  (
-    e: 'goPay',
-    // form: {
-    //   ispCode: typeof BlLifeRecharge.constants.IspCode;
-    //   phone: string;
-    //   parValue: number;
-    //   name: string;
-    // }
-    orderNo: string
-  ): void;
+  (e: 'goPay', orderNo: string): void;
 }>();
 
 const { lifePayPhoneRate } = useGetRate();
 const { phoneParValueList } = useGetPhoneParValue();
 
-const parValueList = [50, 100, 200];
+const parValueList = computed(
+  () => phoneParValueList.value.find((x) => x.ispCode === form.ispCode)?.parValue ?? []
+);
+
+function changeIspCode(val: LifeRechargeConstants.IspCode) {
+  const phoneParValueItem = phoneParValueList.value.find((x) => x.ispCode === val);
+  if (phoneParValueItem.parValue.every((x) => Number(x) !== form.parValue)) {
+    form.parValue = 0;
+  }
+}
 
 const realParValue = computed(() =>
   blLifeRecharge.getRechargeParValue(form.parValue, lifePayPhoneRate.value)
@@ -179,7 +188,7 @@
       userId: blLifeRecharge.accountModel.userId,
       productData: {
         ispCode: form.ispCode,
-        parValue: 0.1,
+        parValue: props.isDev ? 0.1 : form.parValue,
         phone: form.phone,
         name: form.ispCode === BlLifeRecharge.constants.IspCode.dianxin ? form.name : '',
       },
diff --git a/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue b/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue
index 9561582..4306ee6 100644
--- a/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue
+++ b/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue
@@ -18,7 +18,7 @@
   useLifeRechargeContext,
   SetLifePayOrderPayTypeInput,
   LifeRechargeConstants,
-} from '../../utils';
+} from '@life-payment/core-vue';
 import { useQuery } from '@tanstack/vue-query';
 
 defineOptions({
diff --git a/packages/components/src/views/electricBillRecharge/electricBillRecharge.vue b/packages/components/src/views/electricBillRecharge/electricBillRecharge.vue
index c92e80a..752316a 100644
--- a/packages/components/src/views/electricBillRecharge/electricBillRecharge.vue
+++ b/packages/components/src/views/electricBillRecharge/electricBillRecharge.vue
@@ -65,9 +65,11 @@
             </div>
             <div class="price-wrapper">
               <div class="price-text">鎶樺悗</div>
-              <div class="price">{{ blLifeRecharge.getRechargeParValue(item, rate) }}鍏�</div>
+              <div class="price">
+                {{ blLifeRecharge.getRechargeParValue(item, lifePayElectricRate) }}鍏�
+              </div>
             </div>
-            <div class="discountTag">{{ rate * 100 }}鎶�</div>
+            <div class="discountTag">{{ lifePayElectricRate * 100 }}鎶�</div>
           </div>
         </Radio>
       </RadioGroup>
@@ -88,8 +90,8 @@
       <template #info>
         <ConfirmDialogInfoItem label="鐢电綉绫诲瀷" content="鍥藉鐢电綉" />
         <ConfirmDialogInfoItem label="鐢佃垂绫诲瀷" content="浣忓畢" />
-        <ConfirmDialogInfoItem label="鍏呭�奸噾棰�" :content="`锟�${form.parValue}`" danger />
-        <ConfirmDialogInfoItem label="浼樻儬閲戦" :content="`锟�${discountParValue}`" />
+        <ConfirmDialogInfoItem label="鍏呭�奸噾棰�" :content="`锟�${form.parValue.toFixed(2)}`" danger />
+        <ConfirmDialogInfoItem label="浼樻儬閲戦" :content="`锟�${discountParValue.toFixed(2)}`" />
         <ConfirmDialogInfoItem label="瀹炰粯閲戦" :content="`锟�${realParValue}`" danger />
       </template>
       <template #warning>
@@ -103,13 +105,13 @@
 import { Form, FormItem, RadioGroup, Radio, Input, Button as NutButton } from '@nutui/nutui-taro';
 import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
 import { reactive, ref, computed } from 'vue';
-import BlRadio from '../../components/Radio/Radio.vue';
 import { IspCodeText, IspCode } from '../../constants';
-import { useLifeRechargeContext } from '../../utils';
+import { useLifeRechargeContext } from '@life-payment/core-vue';
 import RechargeTipsView from '../../components/RechargeTipsView/RechargeTipsView.vue';
 import ConfirmDialog from '../../components/Dialog/ConfirmDialog.vue';
 import ConfirmDialogInfoItem from '../../components/Dialog/ConfirmDialogInfoItem.vue';
 import ChooseInputWithPicker from '../../components/Input/ChooseInputWithPicker.vue';
+import { useGetRate, useGetElectricParValue } from '../../hooks';
 
 defineOptions({
   name: 'electricBillRecharge',
@@ -129,11 +131,14 @@
   sixID: '',
 });
 
-const rate = 0.96;
+const { lifePayElectricRate } = useGetRate();
+const { electricParValueList } = useGetElectricParValue();
 
 const parValueList = [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1500, 2000, 3000];
 
-const realParValue = computed(() => blLifeRecharge.getRechargeParValue(form.parValue, rate));
+const realParValue = computed(() =>
+  blLifeRecharge.getRechargeParValue(form.parValue, lifePayElectricRate.value)
+);
 const discountParValue = computed(() => form.parValue - Number(realParValue.value));
 
 const { blLifeRecharge } = useLifeRechargeContext();
diff --git a/packages/components/tsconfig.json b/packages/components/tsconfig.json
index 2159898..5afc4c7 100644
--- a/packages/components/tsconfig.json
+++ b/packages/components/tsconfig.json
@@ -15,6 +15,6 @@
       "../../types/api.d.ts"
     ]
   },
-  "include": ["./src/**/*", "./types", "./assets"],
+  "include": ["./src/**/*", "./types", "./assets", "../core-vue"],
   "references": [{ "path": "../services" }]
 }
diff --git a/packages/core-vue/package.json b/packages/core-vue/package.json
new file mode 100644
index 0000000..d829e93
--- /dev/null
+++ b/packages/core-vue/package.json
@@ -0,0 +1,15 @@
+{
+  "name": "@life-payment/core-vue",
+  "private": true,
+  "main": "src/index.ts",
+  "module": "./src/index.ts",
+  "version": "0.0.1",
+  "devDependencies": {
+    "@life-payment/core": "workspace:^",
+    "vue": "3.5.12"
+  },
+  "peerDependencies": {
+    "@life-payment/core": "*",
+    "vue": "3.5.12"
+  }
+}
diff --git a/packages/core-vue/src/index.ts b/packages/core-vue/src/index.ts
new file mode 100644
index 0000000..53466d3
--- /dev/null
+++ b/packages/core-vue/src/index.ts
@@ -0,0 +1,2 @@
+export * from '@life-payment/core';
+export * from './plugin';
diff --git a/packages/components/src/utils/plugin.ts b/packages/core-vue/src/plugin.ts
similarity index 92%
rename from packages/components/src/utils/plugin.ts
rename to packages/core-vue/src/plugin.ts
index 519302a..af1966d 100644
--- a/packages/components/src/utils/plugin.ts
+++ b/packages/core-vue/src/plugin.ts
@@ -1,4 +1,4 @@
-import { BlLifeRecharge } from './lifeRecharge';
+import { BlLifeRecharge } from '@life-payment/core';
 import { inject, shallowReactive } from 'vue';
 import type { InjectionKey, UnwrapNestedRefs, Ref } from 'vue';
 
diff --git a/packages/core-vue/tsconfig.json b/packages/core-vue/tsconfig.json
new file mode 100644
index 0000000..7fb5406
--- /dev/null
+++ b/packages/core-vue/tsconfig.json
@@ -0,0 +1,14 @@
+{
+  "extends": "../../tsconfig.base.json",
+  "compilerOptions": {
+    "baseUrl": ".",
+    "ignoreDeprecations": "5.0",
+    "paths": {
+      "@life-payment/*": ["../../packages/*"]
+    },
+    "composite": true,
+    "types": ["node"]
+  },
+  "include": ["./src/**/*"],
+  "references": [{ "path": "../core" }]
+}
diff --git a/packages/core/package.json b/packages/core/package.json
new file mode 100644
index 0000000..6bc863a
--- /dev/null
+++ b/packages/core/package.json
@@ -0,0 +1,13 @@
+{
+  "name": "@life-payment/core",
+  "private": true,
+  "main": "src/index.ts",
+  "module": "./src/index.ts",
+  "version": "0.0.1",
+  "devDependencies": {
+    "axios": "1.4.0"
+  },
+  "peerDependencies": {
+    "axios": "*"
+  }
+}
diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts
new file mode 100644
index 0000000..7832e46
--- /dev/null
+++ b/packages/core/src/index.ts
@@ -0,0 +1,4 @@
+export * from './lifeRecharge';
+export * from './lifeRechargeServices';
+export * from './types';
+export * from './lifeRechargeConstants';
diff --git a/packages/components/src/utils/lifeRecharge.ts b/packages/core/src/lifeRecharge.ts
similarity index 91%
rename from packages/components/src/utils/lifeRecharge.ts
rename to packages/core/src/lifeRecharge.ts
index 1cdaf07..ca0de2e 100644
--- a/packages/components/src/utils/lifeRecharge.ts
+++ b/packages/core/src/lifeRecharge.ts
@@ -38,7 +38,7 @@
     return !!this.accountModel.userId;
   }
 
-  getRechargeParValue(amount: number, rate: number) {
-    return (amount * rate).toFixed(2);
+  getRechargeParValue(amount: number | string, rate: number) {
+    return (Number(amount) * rate).toFixed(2);
   }
 }
diff --git a/packages/components/src/utils/lifeRechargeAccountModel.ts b/packages/core/src/lifeRechargeAccountModel.ts
similarity index 88%
rename from packages/components/src/utils/lifeRechargeAccountModel.ts
rename to packages/core/src/lifeRechargeAccountModel.ts
index 67f1d9a..2433cc1 100644
--- a/packages/components/src/utils/lifeRechargeAccountModel.ts
+++ b/packages/core/src/lifeRechargeAccountModel.ts
@@ -5,7 +5,7 @@
   phoneNumber = '';
 
   constructor(options: BlLifeRechargeAccountModelOptions = {}) {
-    const { userId, phoneNumber } = options;
+    const { userId = '', phoneNumber = '' } = options;
     this.setUserId(userId);
     this.setPhoneNumber(phoneNumber);
   }
diff --git a/packages/components/src/utils/lifeRechargeConstants.ts b/packages/core/src/lifeRechargeConstants.ts
similarity index 100%
rename from packages/components/src/utils/lifeRechargeConstants.ts
rename to packages/core/src/lifeRechargeConstants.ts
diff --git a/packages/components/src/utils/lifeRechargeServices.ts b/packages/core/src/lifeRechargeServices.ts
similarity index 98%
rename from packages/components/src/utils/lifeRechargeServices.ts
rename to packages/core/src/lifeRechargeServices.ts
index 9b6957e..1c4c341 100644
--- a/packages/components/src/utils/lifeRechargeServices.ts
+++ b/packages/core/src/lifeRechargeServices.ts
@@ -149,14 +149,14 @@
 }
 
 export interface PhoneParValueResponse {
-  success?: string;
+  success?: boolean;
   requestNo?: string;
   partnerId?: string;
   service?: string;
   version?: string;
   protocol?: string;
   context?: string;
-  ext?: string;
+  ext?: any;
   code?: string;
   message?: string;
   detail?: string;
@@ -166,7 +166,7 @@
 export interface PhoneParValueOutput {
   ispCode?: string;
   ispName?: string;
-  parValue?: string;
+  parValue?: string[];
   rate?: number;
   phoneSection?: string;
   comments?: string;
diff --git a/packages/components/src/utils/types.ts b/packages/core/src/types.ts
similarity index 86%
rename from packages/components/src/utils/types.ts
rename to packages/core/src/types.ts
index eec3753..7cdf304 100644
--- a/packages/components/src/utils/types.ts
+++ b/packages/core/src/types.ts
@@ -1,4 +1,4 @@
-import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
+import { AxiosRequestConfig } from 'axios';
 
 export interface IRequestOptions extends AxiosRequestConfig {}
 
diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json
new file mode 100644
index 0000000..167f94e
--- /dev/null
+++ b/packages/core/tsconfig.json
@@ -0,0 +1,20 @@
+{
+  "extends": "../../tsconfig.base.json",
+  "compilerOptions": {
+    "baseUrl": ".",
+    "ignoreDeprecations": "5.0",
+    "paths": {
+      "@life-payment/*": ["../../packages/*"]
+    },
+    "composite": true,
+    "types": [
+      "node",
+      "../services/api/typings.d.ts",
+      "../services/types.d.ts",
+      "../services/globalType.d.ts",
+      "../../types/api.d.ts"
+    ]
+  },
+  "include": ["./src/**/*"],
+  "references": [{ "path": "../services" }]
+}
diff --git a/packages/services/api/AliPayNotify.ts b/packages/services/api/AliPayNotify.ts
index 359d1a0..34d3943 100644
--- a/packages/services/api/AliPayNotify.ts
+++ b/packages/services/api/AliPayNotify.ts
@@ -2,23 +2,8 @@
 // @ts-ignore
 import { request } from '@/utils/request';
 
-/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/AliPayNotify/AliRechargeNotify */
-export async function aliRechargeNotify(
-  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
-  params: API.APIaliRechargeNotifyParams,
-  options?: API.RequestConfig
-) {
-  return request<any>('/api/AliPayNotify/AliRechargeNotify', {
-    method: 'GET',
-    params: {
-      ...params,
-    },
-    ...(options || {}),
-  });
-}
-
 /** 鏀粯瀹濆厖鍊煎洖璋冮�氱煡 POST /api/AliPayNotify/AliRechargeNotify */
-export async function aliRechargeNotify_2(options?: API.RequestConfig) {
+export async function aliRechargeNotify(options?: API.RequestConfig) {
   return request<any>('/api/AliPayNotify/AliRechargeNotify', {
     method: 'POST',
     ...(options || {}),
@@ -47,3 +32,18 @@
     ...(options || {}),
   });
 }
+
+/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/AliPayNotify/TestAliRechargeNotify */
+export async function testAliRechargeNotify(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APItestAliRechargeNotifyParams,
+  options?: API.RequestConfig
+) {
+  return request<any>('/api/AliPayNotify/TestAliRechargeNotify', {
+    method: 'GET',
+    params: {
+      ...params,
+    },
+    ...(options || {}),
+  });
+}
diff --git a/packages/services/api/typings.d.ts b/packages/services/api/typings.d.ts
index c913d8b..9fc2d47 100644
--- a/packages/services/api/typings.d.ts
+++ b/packages/services/api/typings.d.ts
@@ -917,12 +917,6 @@
     id?: string;
   }
 
-  interface APIaliRechargeNotifyParams {
-    outTradeNo?: string;
-    tradeNo?: string;
-    success?: boolean;
-  }
-
   interface APIapiDefinitionParams {
     includeTypes?: boolean;
   }
@@ -1887,6 +1881,12 @@
 
   interface APItencentUserEnableOrForbidParams {
     id?: string;
+  }
+
+  interface APItestAliRechargeNotifyParams {
+    outTradeNo?: string;
+    tradeNo?: string;
+    success?: boolean;
   }
 
   interface APItestCallBackParams {
@@ -5468,20 +5468,20 @@
   interface ElectricParValueOutput {
     electricType?: string;
     areaName?: string;
-    parValue?: string;
+    parValue?: string[];
     rate?: number;
     comments?: string;
   }
 
   interface ElectricParValueResponse {
-    success?: string;
+    success?: boolean;
     requestNo?: string;
     partnerId?: string;
     service?: string;
     version?: string;
     protocol?: string;
     context?: string;
-    ext?: string;
+    ext?: any;
     code?: string;
     message?: string;
     detail?: string;
@@ -14917,21 +14917,21 @@
   interface PhoneParValueOutput {
     ispCode?: string;
     ispName?: string;
-    parValue?: string;
+    parValue?: string[];
     rate?: number;
     phoneSection?: string;
     comments?: string;
   }
 
   interface PhoneParValueResponse {
-    success?: string;
+    success?: boolean;
     requestNo?: string;
     partnerId?: string;
     service?: string;
     version?: string;
     protocol?: string;
     context?: string;
-    ext?: string;
+    ext?: any;
     code?: string;
     message?: string;
     detail?: string;
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 459f408..8f6d9dd 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,9 +1,5 @@
 lockfileVersion: '6.0'
 
-settings:
-  autoInstallPeers: true
-  excludeLinksFromLockfile: false
-
 overrides:
   vue: 3.5.12
 
@@ -121,7 +117,7 @@
     dependencies:
       '@bole-12333/chat-kit':
         specifier: latest
-        version: 1.0.1(@tencentcloud/chat-uikit-engine@2.4.0)(lodash@4.17.21)(vue@3.5.12)
+        version: 1.0.1(@tencentcloud/chat-uikit-engine@2.4.2)(lodash@4.17.21)(vue@3.5.12)
       '@bole-12333/customer-chat':
         specifier: latest
         version: 1.0.3(@bole-12333/chat-kit@1.0.1)(@tiptap/core@2.11.5)(@tiptap/extension-document@2.11.5)(@tiptap/extension-image@2.11.5)(@tiptap/extension-mention@2.11.5)(@tiptap/extension-paragraph@2.11.5)(@tiptap/extension-placeholder@2.11.5)(@tiptap/extension-text@2.11.5)(@tiptap/pm@2.11.5)(@tiptap/suggestion@2.11.5)(dayjs@1.11.6)(vue@3.5.12)
@@ -498,6 +494,9 @@
       '@life-payment/constants':
         specifier: workspace:^
         version: link:../../packages/constants
+      '@life-payment/core-vue':
+        specifier: workspace:^
+        version: link:../../packages/core-vue
       '@life-payment/services':
         specifier: workspace:^
         version: link:../../packages/services
@@ -736,6 +735,9 @@
 
   packages/components:
     devDependencies:
+      '@life-payment/core-vue':
+        specifier: workspace:^
+        version: link:../core-vue
       '@nutui/icons-vue-taro':
         specifier: 0.0.9
         version: 0.0.9
@@ -747,6 +749,21 @@
         version: 3.5.12(typescript@5.2.2)
 
   packages/constants: {}
+
+  packages/core:
+    devDependencies:
+      axios:
+        specifier: 1.4.0
+        version: 1.4.0
+
+  packages/core-vue:
+    devDependencies:
+      '@life-payment/core':
+        specifier: workspace:^
+        version: link:../core
+      vue:
+        specifier: 3.5.12
+        version: 3.5.12(typescript@5.2.2)
 
   packages/services: {}
 
@@ -4837,14 +4854,14 @@
       '@babel/helper-validator-identifier': 7.24.7
       to-fast-properties: 2.0.0
 
-  /@bole-12333/chat-kit@1.0.1(@tencentcloud/chat-uikit-engine@2.4.0)(lodash@4.17.21)(vue@3.5.12):
+  /@bole-12333/chat-kit@1.0.1(@tencentcloud/chat-uikit-engine@2.4.2)(lodash@4.17.21)(vue@3.5.12):
     resolution: {integrity: sha512-yeSh4XLagaM+uNZRdcG49mhDJO3UbYEpIYZS4Lk303ROnTwxuZyuh5jkoflnCFwWN3Ib3AolfQy999oOqF012A==}
     peerDependencies:
       '@tencentcloud/chat-uikit-engine': '*'
       lodash: '*'
-      vue: 3.5.12
+      vue: '*'
     dependencies:
-      '@tencentcloud/chat-uikit-engine': 2.4.0(react-native@0.78.0)(react@19.0.0)
+      '@tencentcloud/chat-uikit-engine': 2.4.2(react-native@0.78.0)(react@19.0.0)
       lodash: 4.17.21
       vue: 3.5.12(typescript@4.6.4)
     dev: false
@@ -4863,9 +4880,9 @@
       '@tiptap/pm': ^2.0.0-beta.220
       '@tiptap/suggestion': ^2.0.0-beta.220
       dayjs: '*'
-      vue: 3.5.12
+      vue: '*'
     dependencies:
-      '@bole-12333/chat-kit': 1.0.1(@tencentcloud/chat-uikit-engine@2.4.0)(lodash@4.17.21)(vue@3.5.12)
+      '@bole-12333/chat-kit': 1.0.1(@tencentcloud/chat-uikit-engine@2.4.2)(lodash@4.17.21)(vue@3.5.12)
       '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5)
       '@tiptap/extension-document': 2.11.5(@tiptap/core@2.11.5)
       '@tiptap/extension-image': 2.11.5(@tiptap/core@2.11.5)
@@ -4896,7 +4913,7 @@
       senin-help: '*'
       senin-vue: '*'
       video.js: '*'
-      vue: 3.5.12
+      vue: '*'
       vue-component-type-helpers: ^2.1.6
     dependencies:
       '@bole-core/core': 1.0.2(@ywwlmm/openapi@0.0.4)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.8.4)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.3)(vue-router@4.4.5)(vue@3.5.12)(xlsx-style@0.8.13)(xlsx@0.18.5)
@@ -4929,7 +4946,7 @@
       jszip: '*'
       lodash: '*'
       senior-request: '*'
-      vue: 3.5.12
+      vue: '*'
       vue-router: '*'
       xlsx: '*'
       xlsx-style: '*'
@@ -4962,7 +4979,7 @@
       path-browserify: '*'
       path-to-regexp: '*'
       pinia: '*'
-      vue: 3.5.12
+      vue: '*'
       vue-router: '*'
     dependencies:
       '@bole-core/core': 1.0.2(@ywwlmm/openapi@0.0.4)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.8.4)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.3)(vue-router@4.4.5)(vue@3.5.12)(xlsx-style@0.8.13)(xlsx@0.18.5)
@@ -5180,7 +5197,7 @@
     resolution: {integrity: sha512-33Cfr0zjbc3Dd8d5b1IgzXRAgXH0c2Gv19VI4snS25V/x9Z41eg769tC+Us1x+vqgQQhgD5YUjLnkpkrQfeMSw==}
     peerDependencies:
       qrcode: ^1.5.0
-      vue: 3.5.12
+      vue: ^3.0.0
     dependencies:
       qrcode: 1.5.4
       vue: 3.5.12(typescript@4.6.4)
@@ -5856,7 +5873,7 @@
   /@element-plus/icons-vue@2.3.1(vue@3.5.12):
     resolution: {integrity: sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==}
     peerDependencies:
-      vue: 3.5.12
+      vue: ^3.2.0
     dependencies:
       vue: 3.5.12(typescript@4.6.4)
     dev: false
@@ -6480,7 +6497,7 @@
   /@iconify/vue@4.0.0(vue@3.5.12):
     resolution: {integrity: sha512-73z81Yf2HISfehu3qvN9GqL1OnUO7wEMKkiFwVGJ2pqAdGCR8FrVylhRhka+6U+gFLlng0ynnT20svk3jJYwow==}
     peerDependencies:
-      vue: 3.5.12
+      vue: '>=3'
     dependencies:
       '@iconify/types': 2.0.0
       vue: 3.5.12(typescript@4.6.4)
@@ -7485,7 +7502,7 @@
     resolution: {integrity: sha512-+n8vVZAu92MUX6VEf6gO73Iz3JThjksdb6aSarvciCSydlWWdlQqZwYIGMTG4zOwDfCoQ3HfLa36zVaIJLSn3g==}
     peerDependencies:
       unplugin-vue-components: '>=0.25.1'
-      vue: 3.5.12
+      vue: ^3.0.0
     peerDependenciesMeta:
       unplugin-vue-components:
         optional: true
@@ -8300,7 +8317,7 @@
     resolution: {integrity: sha512-QzCQ94g2oZQcEfI4nfqa6Qr3aFXtXiEH17Jho+QFl73c7epqsWNcyP3ovF1fgJz5jEOE5OYtwgkoaRKIRaSigg==}
     peerDependencies:
       '@vue/composition-api': ^1.1.2
-      vue: 3.5.12
+      vue: ^2.5.0 || ^3.0.0
     peerDependenciesMeta:
       '@vue/composition-api':
         optional: true
@@ -8626,7 +8643,7 @@
   /@tarojs/plugin-framework-vue3@3.6.20(postcss@8.4.19)(vue@3.5.12):
     resolution: {integrity: sha512-F3Cw3BIP/4rv0Whr6oYEiSzJKl2Xvx321FiSDFk/E+IOu2h4Q1mqBJSpQe3ZVdJjvBu/KLUyVm27mAz8hxftNw==}
     peerDependencies:
-      vue: 3.5.12
+      vue: ^3.0.0
     dependencies:
       '@tarojs/helper': 3.6.20
       '@tarojs/runner-utils': 3.6.20
@@ -9268,8 +9285,8 @@
       - react-native
     dev: false
 
-  /@tencentcloud/chat-uikit-engine@2.4.0(react-native@0.78.0)(react@19.0.0):
-    resolution: {integrity: sha512-zE+bygEROaqgeMXXO+X2+2x8JH55mnb9c1sYQVQ507FlFT0maHxEQPOq8/EZBWowUDDlYoWbHh1EBAXEAI3dgA==}
+  /@tencentcloud/chat-uikit-engine@2.4.2(react-native@0.78.0)(react@19.0.0):
+    resolution: {integrity: sha512-L5rr1mO98S1Uz5IndJ2QdGv++5zbSUTnGSz4x3rKx5lWXlcJzSo1RY9DxYcWTKQKos9bG2d4JIIeg4DlfGb+Pg==}
     dependencies:
       '@tencentcloud/chat': 3.5.2(react-native@0.78.0)(react@19.0.0)
       tim-profanity-filter-plugin: 1.1.0
@@ -9295,7 +9312,7 @@
       '@tencentcloud/call-uikit-vue': 4.0.2(react-native@0.78.0)(react@19.0.0)
       '@tencentcloud/call-uikit-vue2': 4.0.2(react-native@0.78.0)(react@19.0.0)
       '@tencentcloud/call-uikit-vue2.6': 4.0.2(react-native@0.78.0)(react@19.0.0)(vue@3.5.12)
-      '@tencentcloud/chat-uikit-engine': 2.4.0(react-native@0.78.0)(react@19.0.0)
+      '@tencentcloud/chat-uikit-engine': 2.4.2(react-native@0.78.0)(react@19.0.0)
       '@tencentcloud/tui-core': 2.4.0(react-native@0.78.0)(react@19.0.0)
       '@tencentcloud/tui-customer-service-plugin': 2.2.6(@tencentcloud/tui-core@2.4.0)(vue@3.5.12)
       '@tiptap/core': 2.11.5(@tiptap/pm@2.11.5)
@@ -9365,7 +9382,7 @@
     peerDependencies:
       '@tencentcloud/tui-core': latest
       '@vue/composition-api': ^1.0.0-rc.1
-      vue: 3.5.12
+      vue: ^2.0.0 || >=3.0.0
     peerDependenciesMeta:
       '@vue/composition-api':
         optional: true
@@ -10627,7 +10644,7 @@
   /@vant/use@1.6.0(vue@3.5.12):
     resolution: {integrity: sha512-PHHxeAASgiOpSmMjceweIrv2AxDZIkWXyaczksMoWvKV2YAYEhoizRuk/xFnKF+emUIi46TsQ+rvlm/t2BBCfA==}
     peerDependencies:
-      vue: 3.5.12
+      vue: ^3.0.0
     dependencies:
       vue: 3.5.12(typescript@4.6.4)
     dev: false
@@ -10641,7 +10658,7 @@
     peerDependencies:
       '@types/video.js': 7.x
       video.js: 7.x
-      vue: 3.5.12
+      vue: 3.x
     dependencies:
       '@types/video.js': 7.3.47
       video.js: 7.20.3
@@ -10707,7 +10724,7 @@
     engines: {node: ^18.0.0 || >=20.0.0}
     peerDependencies:
       vite: ^5.0.0
-      vue: 3.5.12
+      vue: ^3.0.0
     dependencies:
       '@babel/core': 7.25.2
       '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2)
@@ -10723,7 +10740,7 @@
     engines: {node: ^18.0.0 || >=20.0.0}
     peerDependencies:
       vite: ^5.0.0
-      vue: 3.5.12
+      vue: ^3.2.25
     dependencies:
       vite: 5.4.8(@types/node@18.7.18)(sass@1.79.1)(terser@5.34.1)
       vue: 3.5.12(typescript@4.6.4)
@@ -10919,7 +10936,7 @@
   /@vue/composition-api@1.7.2(vue@3.5.12):
     resolution: {integrity: sha512-M8jm9J/laYrYT02665HkZ5l2fWTK4dcVg3BsDHm/pfz+MjDYwX+9FUaZyGwEyXEDonQYRCo0H7aLgdklcIELjw==}
     peerDependencies:
-      vue: 3.5.12
+      vue: '>= 2.5 < 2.7'
     dependencies:
       vue: 3.5.12(typescript@4.6.4)
     dev: false
@@ -11090,7 +11107,7 @@
     resolution: {integrity: sha512-B/Mdj9TK1peFyWaPof+Zf/mP9XuGAngaJZBwPaXBvU3aCTZlx3ltlrFFFyMV4iGBwsjSCeUCgZrtkEj9dS2Y3Q==}
     peerDependencies:
       '@vue/composition-api': ^1.1.0
-      vue: 3.5.12
+      vue: ^2.6.0 || ^3.2.0
     peerDependenciesMeta:
       '@vue/composition-api':
         optional: true
@@ -11131,7 +11148,7 @@
     resolution: {integrity: sha512-cAZqXexLX6xo+H1N1Mv+wBSSqG4wB+BdjIuHQ50jwlelXCDxSi8gj0K/9nDS+aUZtWh6YMwS6UGCKg58jMVglA==}
     peerDependencies:
       '@vue/composition-api': ^1.4.1
-      vue: 3.5.12
+      vue: ^2.0.0 || >=3.0.0-rc.0
     peerDependenciesMeta:
       '@vue/composition-api':
         optional: true
@@ -11165,7 +11182,7 @@
     resolution: {integrity: sha512-wt+T30c4K6dGRMVqPddexEVLa28YwxW5OFIPmzUHICjphfAuBFTTdDoyqREZNDOFJZ44ARH1WWQNCUK8koJ+Ag==}
     peerDependencies:
       '@vue/composition-api': ^1.1.0
-      vue: 3.5.12
+      vue: ^2.6.0 || ^3.2.0
     peerDependenciesMeta:
       '@vue/composition-api':
         optional: true
@@ -11263,7 +11280,7 @@
     resolution: {integrity: sha512-Xkrdo590AhLHvzyR+U246t6T89nIWHz1weAgMuo8jEA2HS5RiUnsA4U6+iUGaQ2E5c8mYQaeNqzHQXUp9Okbiw==}
     peerDependencies:
       '@wangeditor-next/editor': '>=5.1.0'
-      vue: 3.5.12
+      vue: ^3.0.5
     dependencies:
       '@wangeditor-next/editor': 5.3.14
       vue: 3.5.12(typescript@4.6.4)
@@ -12215,6 +12232,16 @@
     resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==}
     engines: {node: '>=4'}
     dev: false
+
+  /axios@1.4.0:
+    resolution: {integrity: sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==}
+    dependencies:
+      follow-redirects: 1.15.9
+      form-data: 4.0.0
+      proxy-from-env: 1.1.0
+    transitivePeerDependencies:
+      - debug
+    dev: true
 
   /axios@1.7.7:
     resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==}
@@ -15909,6 +15936,7 @@
       domelementtype: 2.3.0
       domhandler: 5.0.3
       entities: 4.5.0
+    dev: true
 
   /dom-walk@0.1.2:
     resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==}
@@ -15949,6 +15977,7 @@
     engines: {node: '>= 4'}
     dependencies:
       domelementtype: 2.3.0
+    dev: true
 
   /domutils@1.7.0:
     resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==}
@@ -15970,6 +15999,7 @@
       dom-serializer: 2.0.0
       domelementtype: 2.3.0
       domhandler: 5.0.3
+    dev: true
 
   /dot-case@3.0.4:
     resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
@@ -16099,7 +16129,7 @@
   /element-plus@2.8.4(vue@3.5.12):
     resolution: {integrity: sha512-ZlVAdUOoJliv4kW3ntWnnSHMT+u/Os7mXJjk2xzOlqNeHaI2/ozlF+R58ZCEak8ZnDi6+5A2viWEYRsq64IuiA==}
     peerDependencies:
-      vue: 3.5.12
+      vue: ^3.2.0
     dependencies:
       '@ctrl/tinycolor': 3.4.1
       '@element-plus/icons-vue': 2.3.1(vue@3.5.12)
@@ -19157,6 +19187,7 @@
       domhandler: 5.0.3
       domutils: 3.1.0
       entities: 4.5.0
+    dev: true
 
   /http-cache-semantics@3.8.1:
     resolution: {integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==}
@@ -20479,6 +20510,7 @@
 
   /js-tokens@8.0.3:
     resolution: {integrity: sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==}
+    dev: true
 
   /js-tokens@9.0.0:
     resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==}
@@ -23776,7 +23808,7 @@
     peerDependencies:
       '@vue/composition-api': ^1.4.0
       typescript: '>=4.4.4'
-      vue: 3.5.12
+      vue: ^2.6.14 || ^3.3.0
     peerDependenciesMeta:
       '@vue/composition-api':
         optional: true
@@ -23794,7 +23826,7 @@
     peerDependencies:
       '@vue/composition-api': ^1.4.0
       typescript: '>=4.4.4'
-      vue: 3.5.12
+      vue: ^2.6.14 || ^3.3.0
     peerDependenciesMeta:
       '@vue/composition-api':
         optional: true
@@ -24176,6 +24208,7 @@
       js-tokens: 8.0.3
       postcss: 8.4.47
       postcss-safe-parser: 6.0.0(postcss@8.4.47)
+    dev: true
 
   /postcss-image-set-function@7.0.0(postcss@8.4.19):
     resolution: {integrity: sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==}
@@ -24220,7 +24253,7 @@
     dependencies:
       '@babel/core': 7.25.2
       postcss: 7.0.39
-      postcss-syntax: 0.36.2(postcss-html@1.5.0)(postcss-scss@4.0.6)(postcss@8.4.19)
+      postcss-syntax: 0.36.2(postcss-html@0.36.0)(postcss-jsx@0.36.4)(postcss-less@3.1.4)(postcss-markdown@0.36.0)(postcss-scss@2.1.1)(postcss@7.0.39)
     transitivePeerDependencies:
       - supports-color
     dev: false
@@ -24279,7 +24312,7 @@
       postcss-syntax: '>=0.36.0'
     dependencies:
       postcss: 7.0.39
-      postcss-syntax: 0.36.2(postcss-html@1.5.0)(postcss-scss@4.0.6)(postcss@8.4.19)
+      postcss-syntax: 0.36.2(postcss-html@0.36.0)(postcss-jsx@0.36.4)(postcss-less@3.1.4)(postcss-markdown@0.36.0)(postcss-scss@2.1.1)(postcss@7.0.39)
       remark: 10.0.1
       unist-util-find-all-after: 1.0.5
     dev: false
@@ -24714,6 +24747,7 @@
       postcss: ^8.3.3
     dependencies:
       postcss: 8.4.47
+    dev: true
 
   /postcss-sass@0.3.5:
     resolution: {integrity: sha512-B5z2Kob4xBxFjcufFnhQ2HqJQ2y/Zs/ic5EZbCywCkxKd756Q40cIQ/veRDwSrw1BF6+4wUgmpm0sBASqVi65A==}
@@ -24743,6 +24777,7 @@
       postcss: ^8.4.19
     dependencies:
       postcss: 8.4.19
+    dev: true
 
   /postcss-scss@4.0.6(postcss@8.4.47):
     resolution: {integrity: sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==}
@@ -24849,32 +24884,6 @@
       postcss-less: 3.1.4
       postcss-markdown: 0.36.0(postcss-syntax@0.36.2)(postcss@7.0.39)
       postcss-scss: 2.1.1
-    dev: false
-
-  /postcss-syntax@0.36.2(postcss-html@1.5.0)(postcss-scss@4.0.6)(postcss@8.4.19):
-    resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==}
-    peerDependencies:
-      postcss: '>=5.0.0'
-      postcss-html: '*'
-      postcss-jsx: '*'
-      postcss-less: '*'
-      postcss-markdown: '*'
-      postcss-scss: '*'
-    peerDependenciesMeta:
-      postcss-html:
-        optional: true
-      postcss-jsx:
-        optional: true
-      postcss-less:
-        optional: true
-      postcss-markdown:
-        optional: true
-      postcss-scss:
-        optional: true
-    dependencies:
-      postcss: 8.4.19
-      postcss-html: 1.5.0
-      postcss-scss: 4.0.6(postcss@8.4.19)
     dev: false
 
   /postcss-unique-selectors@5.1.1(postcss@8.4.47):
@@ -26728,7 +26737,7 @@
       file-saver: '*'
       lodash: '*'
       semver: '*'
-      vue: 3.5.12
+      vue: '*'
       xlsx: '*'
       xlsx-style: '*'
     dependencies:
@@ -26755,7 +26764,7 @@
       axios: '*'
       dayjs: '*'
       lodash: '*'
-      vue: 3.5.12
+      vue: '*'
     dependencies:
       '@nutui/icons-vue-taro': 0.0.9
       '@nutui/nutui-taro': 4.3.13(patch_hash=lbmiuhnkw3qnhgejnhbuepf6iq)(unplugin-vue-components@0.27.4)(vue@3.5.12)
@@ -26780,7 +26789,7 @@
       mitt: '*'
       semver: '*'
       senin-help: '*'
-      vue: 3.5.12
+      vue: '*'
     dependencies:
       '@tanstack/vue-query': 4.37.1(vue@3.5.12)
       axios: 1.7.7
@@ -28214,7 +28223,7 @@
       postcss-sass: 0.3.5
       postcss-scss: 2.1.1
       postcss-selector-parser: 3.1.2
-      postcss-syntax: 0.36.2(postcss-html@1.5.0)(postcss-scss@4.0.6)(postcss@8.4.19)
+      postcss-syntax: 0.36.2(postcss-html@0.36.0)(postcss-jsx@0.36.4)(postcss-less@3.1.4)(postcss-markdown@0.36.0)(postcss-scss@2.1.1)(postcss@7.0.39)
       postcss-value-parser: 3.3.1
       resolve-from: 4.0.0
       signal-exit: 3.0.7
@@ -29439,7 +29448,7 @@
     peerDependencies:
       '@babel/parser': ^7.15.8
       '@nuxt/kit': ^3.2.2
-      vue: 3.5.12
+      vue: 2 || 3
     peerDependenciesMeta:
       '@babel/parser':
         optional: true
@@ -29715,7 +29724,7 @@
   /vant@4.9.10(vue@3.5.12):
     resolution: {integrity: sha512-N+QwOuhDxrH2f6+kN05ot6DHBvaM0e1lcoXVvf12rad2KnlybPQ9gjm0d+R+Nz/zydZbe3Fz6bwTssHItri0sw==}
     peerDependencies:
-      vue: 3.5.12
+      vue: ^3.0.0
     dependencies:
       '@vant/popperjs': 1.3.0
       '@vant/use': 1.6.0(vue@3.5.12)
@@ -30065,7 +30074,7 @@
     requiresBuild: true
     peerDependencies:
       '@vue/composition-api': ^1.0.0-rc.1
-      vue: 3.5.12
+      vue: ^3.0.0-0 || ^2.6.0
     peerDependenciesMeta:
       '@vue/composition-api':
         optional: true
@@ -30080,7 +30089,7 @@
     requiresBuild: true
     peerDependencies:
       '@vue/composition-api': ^1.0.0-rc.1
-      vue: 3.5.12
+      vue: ^3.0.0-0 || ^2.6.0
     peerDependenciesMeta:
       '@vue/composition-api':
         optional: true
@@ -30226,7 +30235,7 @@
   /vue-router@4.4.5(vue@3.5.12):
     resolution: {integrity: sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==}
     peerDependencies:
-      vue: 3.5.12
+      vue: ^3.2.0
     dependencies:
       '@vue/devtools-api': 6.6.4
       vue: 3.5.12(typescript@4.6.4)
@@ -30259,7 +30268,7 @@
     resolution: {integrity: sha512-3Wy6QcZl0VusCCHX3vYrWSILFlrOB2EQDoySnuYmASM5cUp1FivJGfkS5lp1CutDgyRb41g32r/1QCmiBj5i1Q==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
-      vue: 3.5.12
+      vue: ^2.0.0 || ^3.0.0
     peerDependenciesMeta:
       vue:
         optional: true
@@ -31055,3 +31064,7 @@
   /zwitch@1.0.5:
     resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==}
     dev: false
+
+settings:
+  autoInstallPeers: true
+  excludeLinksFromLockfile: false

--
Gitblit v1.9.1