zhengyiming
4 天以前 d6ae9eb36186a924800d7e0433c3eb35c5ccb6f7
fix: 修改登录
14个文件已修改
369 ■■■■■ 已修改文件
apps/bMiniApp/package.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/project.config.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/stores/modules/user.ts 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/login/authorization/authorization.vue 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/login/components/LoginPageLayout/LoginPageLayout.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/package.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/project.private.config.json 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/stores/modules/user.ts 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/constants/apiEnum.ts 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/constants/enum.ts 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/auth.ts 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/typings.d.ts 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pnpm-lock.yaml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/package.json
@@ -78,7 +78,7 @@
    "lodash": "^4.17.21",
    "pinia": "^2.1.6",
    "qs": "^6.11.1",
    "senin-mini": "^1.0.10",
    "senin-mini": "^1.0.12",
    "senior-request": "^1.0.3",
    "taro-plugin-pinia": "^1.0.0",
    "vconsole": "^3.15.1",
apps/bMiniApp/project.config.json
@@ -3,8 +3,8 @@
    "description": "",
    "setting": {
        "urlCheck": false,
        "es6": false,
        "enhance": false,
        "es6": true,
        "enhance": true,
        "postcss": false,
        "preloadBackgroundData": false,
        "minified": false,
apps/bMiniApp/src/stores/modules/user.ts
@@ -9,8 +9,6 @@
  getUserDetail,
  removeUserDetail,
} from '@/utils/storage/auth';
import * as accountServices from '@12333/services/api/Account';
// import * as userServices from '@12333/services/api/User';
import Taro, { useRouter } from '@tarojs/taro';
import { ButtonProps } from '@tarojs/components';
import { debounce } from 'lodash';
@@ -24,7 +22,6 @@
  md5Encrypt,
} from '@12333/utils';
import DefaultAvatar from '@/assets/components/icon-default-avatar.png';
import { WxMiniAppEnum } from '@12333/constants';
import { myClient } from '@/constants/query';
import { globalEventEmitter } from '@12333/hooks';
import * as authServices from '@12333/services/apiV2/auth';
@@ -96,21 +93,19 @@
    // 手机号授权Code登录
    async getTokenByPhone(
      detail: ButtonProps.onGetPhoneNumberEventDetail,
      wxMiniAppUserLoginRes: any
      wxMiniAppUserLoginRes: API.LoginCommandCallback
    ) {
      try {
        let res: API.IdentityModelTokenCacheItem;
        if (!wxMiniAppUserLoginRes.accessToken) {
          let params: API.WxMiniAppPhoneLoginInput = {
            openId: wxMiniAppUserLoginRes.openId,
            sessionKey: wxMiniAppUserLoginRes.sessionKey,
        let res: API.LoginCommandCallback = wxMiniAppUserLoginRes;
        if (!wxMiniAppUserLoginRes.isBindPhoneNumber) {
          let bindRes = await authServices.bindWxmpUserInfo({
            encryptedData: detail.encryptedData,
            iv: detail.iv,
            wxMiniApp: WxMiniAppEnum.C端小程序,
          };
          res = await accountServices.wxMiniAppPhoneAuthLogin(params);
          this.loginSuccess(res);
            sessionKey: wxMiniAppUserLoginRes.sessionKey,
          });
          res.accessToken = bindRes.accessToken;
        }
        this.loginSuccess(res);
        return res;
      } catch (error) {
        console.log('error3: ', error);
@@ -161,15 +156,15 @@
    },
    async wxMiniAppUserLoginFromScan(wxIndentityRes: API.WxMiniAppIndentityInfo, uuid: string) {
      try {
        let res = await accountServices.wxMiniAppUserLoginFromScan({
          uId: uuid,
          userName: wxIndentityRes.userName,
          openId: wxIndentityRes.openId,
        });
        this.loginSuccess(res);
        return res;
      } catch (error) {}
      // try {
      //   let res = await accountServices.wxMiniAppUserLoginFromScan({
      //     uId: uuid,
      //     userName: wxIndentityRes.userName,
      //     openId: wxIndentityRes.openId,
      //   });
      //   this.loginSuccess(res);
      //   return res;
      // } catch (error) {}
    },
    async wxMiniAppPhoneAuthLoginFromScan(
@@ -177,18 +172,18 @@
      wxIndentityRes: API.WxMiniAppIndentityInfo,
      uuid: string
    ) {
      try {
        let res = await accountServices.wxMiniAppPhoneAuthLoginFromScan({
          uId: uuid,
          openId: wxIndentityRes.openId,
          sessionKey: wxIndentityRes.sessionKey,
          encryptedData: detail.encryptedData,
          iv: detail.iv,
          wxMiniApp: WxMiniAppEnum.C端小程序,
        });
        this.loginSuccess(res);
        return res;
      } catch (error) {}
      // try {
      //   let res = await accountServices.wxMiniAppPhoneAuthLoginFromScan({
      //     uId: uuid,
      //     openId: wxIndentityRes.openId,
      //     sessionKey: wxIndentityRes.sessionKey,
      //     encryptedData: detail.encryptedData,
      //     iv: detail.iv,
      //     wxMiniApp: WxMiniAppEnum.C端小程序,
      //   });
      //   this.loginSuccess(res);
      //   return res;
      // } catch (error) {}
    },
    // async getCurrentUserInfo() {
apps/bMiniApp/src/subpackages/login/authorization/authorization.vue
@@ -57,11 +57,10 @@
import { CommonEventFunction, ButtonProps } from '@tarojs/components';
import Taro from '@tarojs/taro';
import { useLoginedJump } from '@/hooks';
import * as accountServices from '@12333/services/api/Account';
import IconCaptcha from '@/assets/login/icon-btn-captcha.png';
import IconPassword from '@/assets/login/icon-btn-password.png';
import { LoginFormTabs } from '../constants';
import { WxMiniAppEnum } from '@12333/constants';
import * as authServices from '@12333/services/apiV2/auth';
defineOptions({
  name: 'authorization',
@@ -90,8 +89,8 @@
    RouterPath.authorization.includes(launchOptions.path) && launchOptions.scene === 1047 && uuid
);
const wxIndentityRes = ref<API.WxMiniAppIndentityInfo>();
const wxMiniAppUserLoginRes = ref<API.IdentityModelTokenCacheItem>();
const wxIndentityRes = ref<API.LoginCommandCallback>();
const wxMiniAppUserLoginRes = ref<API.LoginCommandCallback>();
const isAccount = ref(false);
@@ -99,21 +98,21 @@
  try {
    let loginRes = await Taro.login();
    if (isLoginByWeb.value) {
      const wxIndentity = await accountServices.getWxIndentity({
        code: loginRes.code,
        wxMiniApp: WxMiniAppEnum.C端小程序,
      });
      wxIndentityRes.value = wxIndentity;
      if (wxIndentityRes.value.userName) {
        isAccount.value = true;
      }
      // const wxIndentity = await authServices.wxmpLogin({
      //   code: loginRes.code,
      //   type: AppLocalConfig.userType,
      // });
      // wxIndentityRes.value = wxIndentity;
      // if (wxIndentityRes.value.isBindPhoneNumber) {
      //   isAccount.value = true;
      // }
    } else {
      const params: API.APIwxMiniAppUserLoginParams = {
      const params: API.WxmpLoginCommand = {
        code: loginRes.code,
        wxMiniApp: WxMiniAppEnum.C端小程序,
        type: AppLocalConfig.userType,
      };
      wxMiniAppUserLoginRes.value = await accountServices.wxMiniAppUserLogin(params);
      if (wxMiniAppUserLoginRes.value.accessToken) {
      wxMiniAppUserLoginRes.value = await authServices.wxmpLogin(params);
      if (wxMiniAppUserLoginRes.value.isBindPhoneNumber) {
        isAccount.value = true;
      }
    }
@@ -126,14 +125,14 @@
    console.log('errMsg: ', errMsg, isLoginByWeb.value);
    if (errMsg === 'getPhoneNumber:ok') {
      if (isLoginByWeb.value) {
        let res = await userStore.wxMiniAppPhoneAuthLoginFromScan(
          ev.detail,
          wxIndentityRes.value,
          uuid
        );
        if (res) {
          handleLoginSuccess();
        }
        // let res = await userStore.wxMiniAppPhoneAuthLoginFromScan(
        //   ev.detail,
        //   wxIndentityRes.value,
        //   uuid
        // );
        // if (res) {
        //   handleLoginSuccess();
        // }
      } else {
        let res = await userStore.getTokenByPhone(ev.detail, wxMiniAppUserLoginRes.value);
        if (res) {
@@ -153,10 +152,10 @@
    if (state.policyChecked) {
      if (isLoginByWeb.value) {
        console.log('uuid: ', uuid);
        let res = await userStore.wxMiniAppUserLoginFromScan(wxIndentityRes.value, uuid);
        if (res) {
          handleLoginSuccess();
        }
        // let res = await userStore.wxMiniAppUserLoginFromScan(wxIndentityRes.value, uuid);
        // if (res) {
        //   handleLoginSuccess();
        // }
      } else {
        userStore.loginSuccess(wxMiniAppUserLoginRes.value);
        handleLoginSuccess();
apps/bMiniApp/src/subpackages/login/components/LoginPageLayout/LoginPageLayout.vue
@@ -7,7 +7,7 @@
      <img :src="OssAssets.login.AuthBg" class="authorization-page-auth" />
    </template>
    <div class="authorization-page-title">欢迎使用818平台</div>
    <div class="authorization-page-title">欢迎使用工益赚</div>
    <slot></slot>
  </PageLayout>
apps/cMiniApp/package.json
@@ -78,7 +78,7 @@
    "lodash": "^4.17.21",
    "pinia": "^2.1.6",
    "qs": "^6.11.1",
    "senin-mini": "^1.0.10",
    "senin-mini": "^1.0.12",
    "senior-request": "^1.0.3",
    "taro-plugin-pinia": "^1.0.0",
    "vconsole": "^3.15.1",
apps/cMiniApp/project.private.config.json
@@ -9,6 +9,13 @@
        "miniprogram": {
            "list": [
                {
                    "name": "我的简历",
                    "pathName": "subpackages/curriculum/mineCurriculumVitae/mineCurriculumVitae",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "公司详情",
                    "pathName": "subpackages/task/companyDetail/companyDetail",
                    "query": "id=f775538f-985c-4d51-7985-08ddd5c71bbf",
apps/cMiniApp/src/stores/modules/user.ts
@@ -9,8 +9,6 @@
  getUserDetail,
  removeUserDetail,
} from '@/utils/storage/auth';
import * as accountServices from '@12333/services/api/Account';
import * as userServices from '@12333/services/api/User';
import Taro, { useRouter } from '@tarojs/taro';
import { ButtonProps } from '@tarojs/components';
import { debounce } from 'lodash';
@@ -24,7 +22,6 @@
  md5Encrypt,
} from '@12333/utils';
import DefaultAvatar from '@/assets/components/icon-default-avatar.png';
import { WxMiniAppEnum } from '@12333/constants';
import { myClient } from '@/constants/query';
import { globalEventEmitter } from '@12333/hooks';
import * as authServices from '@12333/services/apiV2/auth';
@@ -161,15 +158,15 @@
    },
    async wxMiniAppUserLoginFromScan(wxIndentityRes: API.WxMiniAppIndentityInfo, uuid: string) {
      try {
        let res = await accountServices.wxMiniAppUserLoginFromScan({
          uId: uuid,
          userName: wxIndentityRes.userName,
          openId: wxIndentityRes.openId,
        });
        this.loginSuccess(res);
        return res;
      } catch (error) {}
      // try {
      //   let res = await accountServices.wxMiniAppUserLoginFromScan({
      //     uId: uuid,
      //     userName: wxIndentityRes.userName,
      //     openId: wxIndentityRes.openId,
      //   });
      //   this.loginSuccess(res);
      //   return res;
      // } catch (error) {}
    },
    async wxMiniAppPhoneAuthLoginFromScan(
@@ -177,18 +174,18 @@
      wxIndentityRes: API.WxMiniAppIndentityInfo,
      uuid: string
    ) {
      try {
        let res = await accountServices.wxMiniAppPhoneAuthLoginFromScan({
          uId: uuid,
          openId: wxIndentityRes.openId,
          sessionKey: wxIndentityRes.sessionKey,
          encryptedData: detail.encryptedData,
          iv: detail.iv,
          wxMiniApp: WxMiniAppEnum.C端小程序,
        });
        this.loginSuccess(res);
        return res;
      } catch (error) {}
      // try {
      //   let res = await accountServices.wxMiniAppPhoneAuthLoginFromScan({
      //     uId: uuid,
      //     openId: wxIndentityRes.openId,
      //     sessionKey: wxIndentityRes.sessionKey,
      //     encryptedData: detail.encryptedData,
      //     iv: detail.iv,
      //     wxMiniApp: WxMiniAppEnum.C端小程序,
      //   });
      //   this.loginSuccess(res);
      //   return res;
      // } catch (error) {}
    },
    async getCurrentUserInfo() {
@@ -213,8 +210,11 @@
    },
    setUserInfoAction(info: API.LoginCommandCallback) {
      this.userInfo = info;
      setUserInfo(info);
      this.userInfo = {
        ...this.userInfo,
        ...info,
      };
      setUserInfo(this.userInfo);
    },
    setUserDetail(detail: API.UserInfoV2) {
apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue
@@ -1,7 +1,7 @@
<template>
  <ContentView>
    <nut-noticebar
      :text="`个人简历已完善${userResumeInfo?.completeRate ?? 0},完善简历可提升录用率`"
      :text="`个人简历已完善${userResumeInfo?.completeRate ?? 0}%,完善简历可提升录用率`"
      :left-icon="false"
      background="transparent"
      close-mode
@@ -139,11 +139,11 @@
  }
});
const { userResumeInfo, refetch } = useUserResume();
const jobTag = computed(
  () => userResumeInfo?.value?.userExpectJobs?.map((x) => x.expectJobContent) ?? []
);
const { userResumeInfo, refetch } = useUserResume();
function goPage(routeName: string) {
  Taro.navigateTo({
packages/constants/apiEnum.ts
@@ -199,6 +199,16 @@
  Female = 20,
}
/** 用户实名方式 */
export enum EnumUserRealMethod {
  /**个人手机号三要素 */
  Identity3 = 10,
  /**银行卡多要素 */
  Identity4 = 20,
  /**刷脸认证 */
  Face = 30,
}
/** 用户信息状态 */
export enum EnumUserStatus {
  /**正常 */
packages/constants/enum.ts
@@ -79,17 +79,6 @@
  UserCertificationBankCardCertification = 910,
}
export enum WxMiniAppEnum {
  /**
   * C端小程序
   */
  C端小程序 = 10,
  /**
   * 人单合一小程序
   */
  人单合一 = 20,
}
/**
 * @description AuthType即将作废 现在用EnterpriseType 目前两个值相同
 */
packages/services/apiV2/auth.ts
@@ -2,12 +2,12 @@
// @ts-ignore
import { request } from '@/utils/request';
/** 绑定手机号 POST /api/user/auth/bindPhoneNumber */
export async function bindPhoneNumber(
  body: API.BindPhoneNumberCommand,
/** 绑定微信小程序用户信息 POST /api/user/auth/bindWxmpUserInfo */
export async function bindWxmpUserInfo(
  body: API.BindWxmpUserInfoCommand,
  options?: API.RequestConfig
) {
  return request<boolean>('/api/user/auth/bindPhoneNumber', {
  return request<API.LoginCommandCallback>('/api/user/auth/bindWxmpUserInfo', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
@@ -17,12 +17,12 @@
  });
}
/** 绑定微信小程序用户信息 POST /api/user/auth/bindWxmpUserInfo */
export async function bindWxmpUserInfo(
  body: API.BindWxmpUserInfoCommand,
/** 更换手机号 POST /api/user/auth/changePhoneNumber */
export async function changePhoneNumber(
  body: API.ChangePhoneNumberCommand,
  options?: API.RequestConfig
) {
  return request<API.LoginCommandCallback>('/api/user/auth/bindWxmpUserInfo', {
  return request<boolean>('/api/user/auth/changePhoneNumber', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
@@ -81,9 +81,41 @@
  });
}
/** 查询个人用户登录信息 GET /api/user/auth/getPersonalLoginInfo */
export async function getPersonalLoginInfo(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetPersonalLoginInfoParams,
  options?: API.RequestConfig
) {
  return request<API.GetPersonalLoginInfoQueryResult>('/api/user/auth/getPersonalLoginInfo', {
    method: 'GET',
    params: {
      ...params,
      request: undefined,
      ...params['request'],
    },
    ...(options || {}),
  });
}
/** 密码登录 POST /api/user/auth/passwordLogin */
export async function passwordLogin(body: API.PasswordLoginCommand, options?: API.RequestConfig) {
  return request<API.LoginCommandCallback>('/api/user/auth/passwordLogin', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 注册个人账号 POST /api/user/auth/registerPersonalUser */
export async function registerPersonalUser(
  body: API.RegisterPersonalUserCommand,
  options?: API.RequestConfig
) {
  return request<boolean>('/api/user/auth/registerPersonalUser', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
@@ -120,6 +152,21 @@
  });
}
/** 发送更换手机号短信 POST /api/user/auth/updatePhoneNumberVerifyCode */
export async function updatePhoneNumberVerifyCode(
  body: API.UpdatePhoneNumberVerifyCodeCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/user/auth/updatePhoneNumberVerifyCode', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 微信小程序登录 POST /api/user/auth/wxmpLogin */
export async function wxmpLogin(body: API.WxmpLoginCommand, options?: API.RequestConfig) {
  return request<API.LoginCommandCallback>('/api/user/auth/wxmpLogin', {
packages/services/apiV2/typings.d.ts
@@ -69,6 +69,11 @@
    roleId?: string;
  }
  interface APIgetPersonalLoginInfoParams {
    /** 查询个人用户登录信息 */
    request?: GetPersonalLoginInfoQuery;
  }
  interface APIgetResourceFieldsParams {
    /** Id */
    id?: string;
@@ -140,13 +145,6 @@
    request?: GetUserResumeWorkExperienceQuery;
  }
  interface BindPhoneNumberCommand {
    /** 手机号码 */
    phoneNumber?: string;
    /** 验证码 */
    verifyCode?: string;
  }
  interface BindWxmpUserInfoCommand {
    /** 包括敏感数据在内的完整用户信息的加密数据 */
    encryptedData: string;
@@ -154,6 +152,13 @@
    iv: string;
    /** 获取会话密钥 */
    sessionKey: string;
  }
  interface ChangePhoneNumberCommand {
    /** 手机号码 */
    phoneNumber: string;
    /** 验证码 */
    verifyCode: string;
  }
  interface DeleteDictionaryCategoryCommand {
@@ -355,6 +360,15 @@
    Female = 20,
  }
  enum EnumUserRealMethod {
    /**个人手机号三要素 */
    Identity3 = 10,
    /**银行卡多要素 */
    Identity4 = 20,
    /**刷脸认证 */
    Face = 30,
  }
  enum EnumUserStatus {
    /**正常 */
    Normal = 10,
@@ -470,6 +484,24 @@
    /** 错误码 */
    errorCode?: string;
    data?: GetMenuQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetPersonalLoginInfoQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetPersonalLoginInfoQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -1251,6 +1283,24 @@
    name?: string;
  }
  type GetPersonalLoginInfoQuery = Record<string, any>;
  interface GetPersonalLoginInfoQueryResult {
    /** Id */
    id?: string;
    /** 姓名 */
    name?: string;
    /** 是否实名 */
    isReal?: boolean;
    realMethod?: EnumUserRealMethod;
    /** 我的报名 */
    taskCount?: number;
    /** 已录用 */
    hirePassTaskCount?: number;
    /** 已取消 */
    hireRefuseTaskCount?: number;
  }
  interface GetResourceFieldsQueryResultItem {
    /** 编号 */
    code?: string;
@@ -1702,6 +1752,10 @@
    accessToken?: string;
    /** 刷新令牌 */
    refreshToken?: string;
    /** 会话秘钥(仅用于微信小程序授权登录) */
    sessionKey?: string;
    /** 是否已绑定手机号(仅用于微信小程序授权登录) */
    isBindPhoneNumber?: boolean;
  }
  interface PagedListQueryPageModel {
@@ -1769,6 +1823,13 @@
    password: string;
    type?: EnumUserType;
    clientType?: EnumClientType;
  }
  interface RegisterPersonalUserCommand {
    /** 手机号码 */
    phoneNumber: string;
    /** 验证码 */
    verifyCode: string;
  }
  interface SaveDictionaryCategoryCommand {
@@ -2201,6 +2262,11 @@
  type SyncHumanResourcesAreaDictionaryDataCommand = Record<string, any>;
  interface UpdatePhoneNumberVerifyCodeCommand {
    /** 手机号码 */
    phoneNumber: string;
  }
  interface WxmpLoginCommand {
    /** 用户登录凭证 */
    code: string;
pnpm-lock.yaml
@@ -240,8 +240,8 @@
        specifier: ^6.11.1
        version: 6.11.1
      senin-mini:
        specifier: ^1.0.10
        version: 1.0.10(@nutui/icons-vue-taro@0.0.9)(@nutui/nutui-taro@4.3.13)(@tanstack/vue-query@4.35.3)(@tarojs/components@3.6.20)(@tarojs/taro@3.6.20)(axios@1.4.0)(dayjs@1.11.6)(lodash@4.17.21)(vue@3.5.12)
        specifier: ^1.0.12
        version: 1.0.12(@nutui/icons-vue-taro@0.0.9)(@nutui/nutui-taro@4.3.13)(@tanstack/vue-query@4.35.3)(@tarojs/components@3.6.20)(@tarojs/taro@3.6.20)(axios@1.4.0)(dayjs@1.11.6)(lodash@4.17.21)(vue@3.5.12)
      senior-request:
        specifier: ^1.0.3
        version: 1.0.3(axios@1.4.0)
@@ -502,8 +502,8 @@
        specifier: ^6.11.1
        version: 6.11.1
      senin-mini:
        specifier: ^1.0.10
        version: 1.0.10(@nutui/icons-vue-taro@0.0.9)(@nutui/nutui-taro@4.3.13)(@tanstack/vue-query@4.35.3)(@tarojs/components@3.6.20)(@tarojs/taro@3.6.20)(axios@1.4.0)(dayjs@1.11.6)(lodash@4.17.21)(vue@3.5.12)
        specifier: ^1.0.12
        version: 1.0.12(@nutui/icons-vue-taro@0.0.9)(@nutui/nutui-taro@4.3.13)(@tanstack/vue-query@4.35.3)(@tarojs/components@3.6.20)(@tarojs/taro@3.6.20)(axios@1.4.0)(dayjs@1.11.6)(lodash@4.17.21)(vue@3.5.12)
      senior-request:
        specifier: ^1.0.3
        version: 1.0.3(axios@1.4.0)
@@ -18506,8 +18506,8 @@
      - supports-color
    dev: true
  /senin-mini@1.0.10(@nutui/icons-vue-taro@0.0.9)(@nutui/nutui-taro@4.3.13)(@tanstack/vue-query@4.35.3)(@tarojs/components@3.6.20)(@tarojs/taro@3.6.20)(axios@1.4.0)(dayjs@1.11.6)(lodash@4.17.21)(vue@3.5.12):
    resolution: {integrity: sha512-iGA/p2p1EWU/4R9nmPBkj09wFoBupVaxJReFNRdHovydU4qt0OR3x5pLqI2TGsg+Bn2rvgp4aMCy9Ksb8rhzfw==}
  /senin-mini@1.0.12(@nutui/icons-vue-taro@0.0.9)(@nutui/nutui-taro@4.3.13)(@tanstack/vue-query@4.35.3)(@tarojs/components@3.6.20)(@tarojs/taro@3.6.20)(axios@1.4.0)(dayjs@1.11.6)(lodash@4.17.21)(vue@3.5.12):
    resolution: {integrity: sha512-rTRaoP+SCF75NRLuGZkBGIIQOrA38ONbMygvulgJJI+YhhW8zaNqucGO9gPHWcRkCVrhYoug4XzQlFZ7hSQdjw==}
    peerDependencies:
      '@nutui/icons-vue-taro': '*'
      '@nutui/nutui-taro': '*'