wupengfei
9 小时以前 4ef86d8a1f494caa1e136ff78f9ea258d01164b1
Merge branch 'master' into dev-1.1.2
1个文件已删除
5个文件已添加
1 文件已重命名
30个文件已修改
991 ■■■■ 已修改文件
apps/bMiniApp/CHANGELOG.md 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/package.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/app.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/utils/request/index.ts 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/utils/setConfig.ts 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/utils/storage/auth.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/utils/storage/index.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/.eslintrc-auto-import.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/CHANGELOG.md 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/auto-imports.d.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/package.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/project.config.json 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/project.private.config.json 100 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/app.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/components/Uploader/Uploader.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/constants/app.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/login/authorization/authorization.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/task/taskSubmitCheck/InnerPage.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/utils/request/index.ts 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/utils/setConfig.ts 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/utils/storage/auth.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/utils/storage/index.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/utils/storage/storage.ts 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/Card/TaskCard.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/constants/apiEnum.ts 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/index.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/logRecords.ts 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/sms.ts 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/typings.d.ts 431 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/utils/LoggerRecord/index.ts 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/utils/config.ts 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/utils/index.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/utils/package.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/utils/storage.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pnpm-lock.yaml 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/CHANGELOG.md
@@ -1,5 +1,16 @@
## [1.1.4](http://120.26.58.240:8888/r/flexJobMiniApp/compare/@12333/bMiniApp/v1.1.2...@12333/bMiniApp/v1.1.4) (2025-10-15)
### Bug Fixes
* 新增日志 ([00ea64c](http://120.26.58.240:8888/r/flexJobMiniApp/commits/00ea64ccf296f32a0cc94dcddeaf9f34baccebbb))
* 修改灵工安排 ([c72be85](http://120.26.58.240:8888/r/flexJobMiniApp/commits/c72be856765583aa60e621fbc35da8e3e276aabc))
* bug ([e2b05af](http://120.26.58.240:8888/r/flexJobMiniApp/commits/e2b05af68baf459155ffd5c08e3d6eaa21136001))
* s ([03d24a3](http://120.26.58.240:8888/r/flexJobMiniApp/commits/03d24a395c0a5b0aa06445b70da4a9bf26997bb0))
* s ([d37aa6d](http://120.26.58.240:8888/r/flexJobMiniApp/commits/d37aa6d93da06cf6062ca406f7820ef30d1ee817))
## [1.1.3](http://120.26.58.240:8888/r/flexJobMiniApp/compare/@12333/bMiniApp/v1.1.2...@12333/bMiniApp/v1.1.3) (2025-09-26)
apps/bMiniApp/package.json
@@ -1,6 +1,6 @@
{
  "name": "@12333/bMiniApp",
  "version": "1.1.3",
  "version": "1.1.4",
  "private": true,
  "description": "",
  "templateInfo": {
@@ -79,7 +79,7 @@
    "pinia": "^2.1.6",
    "qs": "^6.11.1",
    "senin-mini": "^1.0.12",
    "senior-request": "^1.0.3",
    "senior-request": "^1.0.10",
    "taro-plugin-pinia": "^1.0.0",
    "vconsole": "^3.15.1",
    "vue": "3.5.12",
apps/bMiniApp/src/app.ts
@@ -2,7 +2,7 @@
import '@nutui/nutui-taro/dist/style.css';
import './app.scss';
import '@/utils/setConfig';
import { setupStore } from '@/stores';
import { useSystemStore } from '@/stores/modules/system';
apps/bMiniApp/src/utils/request/index.ts
@@ -3,7 +3,7 @@
import qs from 'qs';
import Taro from '@tarojs/taro';
import { getToken } from '@/utils';
import { tokenIsExpired, Message, SensitiveManage } from '@12333/utils';
import { tokenIsExpired, Message, SensitiveManage, httpLoggerRecord } from '@12333/utils';
import { useUserStoreWithOut } from '@/stores/modules/user';
const RefreshTokenUrl = '/gettokenbyrefreshtoken';
@@ -63,6 +63,7 @@
   */
  msg?: string;
  showType?: ErrorShowType;
  traceId?: string;
}
interface ErrorResponse {
@@ -103,6 +104,19 @@
    // 错误接收及处理
    errorHandler: (error, opts) => {
      console.log('error: ', error);
      const url = opts.url ?? '';
      httpLoggerRecord.error({
        message: `[${url}] 请求错误`,
        httpParams: {
          url: url,
          //@ts-ignore
          traceId: error?.info?.traceId,
          stackTrace: error.stack,
        },
        args: [{ data: opts.data, params: opts.params, headers: opts.headers }],
      });
      if (opts?.skipErrorHandler) throw error;
      if (opts?.customErrorHandler) {
@@ -172,6 +186,14 @@
      (config) => {
        const $config = config;
        httpLoggerRecord.info({
          message: `[${$config.url}] 请求开始`,
          httpParams: {
            url: $config.url,
          },
          args: [{ data: $config.data, params: $config.params, headers: $config.headers }],
        });
        const token = getToken();
        const userStore = useUserStoreWithOut();
@@ -216,6 +238,15 @@
      (response) => {
        const $config = response.config as IRequestOptions;
        httpLoggerRecord.info({
          message: `[${$config.url}] 请求结束`,
          httpParams: {
            url: $config.url,
            traceId: response.data?.traceId,
          },
          args: [{ data: $config.data, params: $config.params, headers: $config.headers }],
        });
        const { needNProcess, getResponse = false } = $config;
        const userStore = useUserStoreWithOut();
apps/bMiniApp/src/utils/setConfig.ts
New file
@@ -0,0 +1,5 @@
import { setUtilsConfig } from '@12333/utils/config';
setUtilsConfig({
  appName: '灵工达小程序',
});
apps/bMiniApp/src/utils/storage/auth.ts
@@ -1,4 +1,4 @@
import { storageLocal } from './storage';
import { storageLocal } from '@12333/utils';
import { useUserStoreWithOut } from '@/stores/modules/user';
const StorageKey = {
apps/bMiniApp/src/utils/storage/index.ts
@@ -1,2 +1 @@
export * from './storage';
export * from './auth';
apps/cMiniApp/.eslintrc-auto-import.json
@@ -109,6 +109,7 @@
    "APP_ENV": true,
    "DirectiveBinding": true,
    "MaybeRef": true,
    "MaybeRefOrGetter": true
    "MaybeRefOrGetter": true,
    "NODE_ENV": true
  }
}
apps/cMiniApp/CHANGELOG.md
@@ -1,5 +1,12 @@
## [1.1.4](http://120.26.58.240:8888/r/flexJobMiniApp/compare/@12333/cMiniApp/v1.1.3...@12333/cMiniApp/v1.1.4) (2025-10-15)
### Bug Fixes
* 新增日志 ([00ea64c](http://120.26.58.240:8888/r/flexJobMiniApp/commits/00ea64ccf296f32a0cc94dcddeaf9f34baccebbb))
## [1.1.3](http://120.26.58.240:8888/r/flexJobMiniApp/compare/@12333/cMiniApp/v1.1.2...@12333/cMiniApp/v1.1.3) (2025-09-26)
apps/cMiniApp/auto-imports.d.ts
@@ -9,6 +9,7 @@
  const AppLocalConfig: typeof import('./src/constants/app')['AppLocalConfig']
  const BackType: typeof import('./src/constants/enum')['BackType']
  const EffectScope: typeof import('vue')['EffectScope']
  const NODE_ENV: typeof import('./src/constants/app')['NODE_ENV']
  const OssAssets: typeof import('./src/constants/img')['OssAssets']
  const RouterPath: typeof import('./src/constants/router')['RouterPath']
  const TabBarPageRouter: typeof import('./src/constants/tabBar')['TabBarPageRouter']
@@ -124,6 +125,7 @@
    readonly AppLocalConfig: UnwrapRef<typeof import('./src/constants/app')['AppLocalConfig']>
    readonly BackType: UnwrapRef<typeof import('./src/constants/enum')['BackType']>
    readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
    readonly NODE_ENV: UnwrapRef<typeof import('./src/constants/app')['NODE_ENV']>
    readonly OssAssets: UnwrapRef<typeof import('./src/constants/img')['OssAssets']>
    readonly RouterPath: UnwrapRef<typeof import('./src/constants/router')['RouterPath']>
    readonly TabBarPageRouter: UnwrapRef<typeof import('./src/constants/tabBar')['TabBarPageRouter']>
apps/cMiniApp/package.json
@@ -1,6 +1,6 @@
{
  "name": "@12333/cMiniApp",
  "version": "1.1.3",
  "version": "1.1.4",
  "private": true,
  "description": "",
  "templateInfo": {
@@ -79,7 +79,7 @@
    "pinia": "^2.1.6",
    "qs": "^6.11.1",
    "senin-mini": "^1.0.12",
    "senior-request": "^1.0.3",
    "senior-request": "^1.0.10",
    "taro-plugin-pinia": "^1.0.0",
    "vconsole": "^3.15.1",
    "vue": "3.5.12",
apps/cMiniApp/project.config.json
@@ -37,7 +37,11 @@
        "showES6CompileOption": false,
        "useCompilerPlugins": false,
        "ignoreUploadUnusedFiles": true,
        "condition": false
        "condition": false,
        "compileWorklet": false,
        "localPlugins": false,
        "swc": false,
        "disableSWC": true
    },
    "compileType": "miniprogram",
    "editorSetting": {
@@ -46,10 +50,11 @@
    },
    "srcMiniprogramRoot": "dist/",
    "condition": {},
    "libVersion": "3.1.0",
    "libVersion": "3.10.0",
    "packOptions": {
        "ignore": [],
        "include": []
    },
    "appid": "wxb9e0baf4f87aa0de"
    "appid": "wxb9e0baf4f87aa0de",
    "simulatorPluginLibVersion": {}
}
apps/cMiniApp/project.private.config.json
@@ -4,90 +4,22 @@
    "setting": {
        "compileHotReLoad": true,
        "bigPackageSizeSupport": true,
        "urlCheck": false
    "urlCheck": false,
    "coverView": true,
    "lazyloadPlaceholderEnable": false,
    "skylineRenderEnable": false,
    "preloadBackgroundData": false,
    "autoAudits": false,
    "useApiHook": true,
    "useApiHostProcess": true,
    "showShadowRootInWxmlPanel": true,
    "useStaticServer": false,
    "useLanDebug": false,
    "showES6CompileOption": false,
    "checkInvalidKey": true,
    "ignoreDevUnusedFiles": true,
    "useIsolateContext": true
    },
    "condition": {
        "miniprogram": {
            "list": [
                {
                    "name": "实名认证",
                    "pathName": "subpackages/authentication/authenticationRealName/authenticationRealName",
                    "query": "type=realName",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "我的简历",
                    "pathName": "subpackages/curriculum/mineCurriculumVitae/mineCurriculumVitae",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "公司详情",
                    "pathName": "subpackages/task/companyDetail/companyDetail",
                    "query": "id=f775538f-985c-4d51-7985-08ddd5c71bbf",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "任务详情",
                    "pathName": "subpackages/task/taskDetail/taskDetail",
                    "query": "id=04c75425-e783-4dbf-0f16-08ddd626b756",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "城市选择",
                    "pathName": "subpackages/city/citySelect/citySelect",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "期望岗位",
                    "pathName": "subpackages/curriculum/expectPosition/expectPosition",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "我的简历",
                    "pathName": "subpackages/curriculum/mineCurriculumVitae/mineCurriculumVitae",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "求职意向",
                    "pathName": "subpackages/curriculum/mineJobIntention/mineJobIntention",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "验收详情",
                    "pathName": "subpackages/task/taskCheckDetail/taskCheckDetail",
                    "query": "id=57a8f533-2a46-7a88-e008-3a1775810dd2",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "提交验收",
                    "pathName": "subpackages/task/taskSubmitCheck/taskSubmitCheck",
                    "query": "id=57a8f533-2a46-7a88-e008-3a1775810dd2",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "任务",
                    "pathName": "pages/task/task",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                }
            ]
        }
    },
  "condition": {},
    "libVersion": "3.10.0"
}
apps/cMiniApp/src/app.ts
@@ -2,7 +2,7 @@
import '@nutui/nutui-taro/dist/style.css';
import './app.scss';
import '@/utils/setConfig';
import { setupStore } from '@/stores';
import { useSystemStore } from '@/stores/modules/system';
apps/cMiniApp/src/components/Uploader/Uploader.vue
@@ -4,6 +4,7 @@
    v-model:file-list="innerFileList"
    multiple
    :media-type="['image']"
    :sourceType="sourceType"
    :before-xhr-upload="beforeXhrUpload"
    @failure="handleFailure"
    :maximize="maximize"
@@ -23,6 +24,7 @@
    v-model:file-list="innerFileList"
    multiple
    :media-type="['image']"
    :sourceType="sourceType"
    :before-xhr-upload="beforeXhrUpload"
    @failure="handleFailure"
    :maximize="maximize"
@@ -47,14 +49,18 @@
  name: 'Uploader',
});
type SourceType = 'album' | 'camera';
type Props = {
  fileList: FileItem[];
  onMySuccess?: (file: FileItem) => any;
  limitFileSize?: number;
  sourceType?: SourceType[];
};
const props = withDefaults(defineProps<Props>(), {
  limitFileSize: 2,
  sourceType: () => ['album', 'camera'],
});
const emit = defineEmits<{
apps/cMiniApp/src/constants/app.ts
@@ -6,3 +6,4 @@
};
export const APP_ENV = process.env.APP_ENV;
export const NODE_ENV = process.env.NODE_ENV;
apps/cMiniApp/src/subpackages/login/authorization/authorization.vue
@@ -25,7 +25,8 @@
      v-model="state.policyChecked"
      policyBtnText="若手机号未注册,将为您直接注册账号,注册即为同意"
    />
    <div class="other-login-channel-wrapper" v-if="!isLoginByWeb">
    <!-- <div class="other-login-channel-wrapper" v-if="!isLoginByWeb"> -->
    <div class="other-login-channel-wrapper" v-if="NODE_ENV === 'development'">
      <nut-divider>其他登录方式</nut-divider>
      <div class="other-login-channel-list">
        <div class="other-login-channel-list-item" @click="goLoginByForm()">
@@ -34,7 +35,7 @@
          </div>
          <div class="other-login-channel-list-item-text">验证码登录</div>
        </div>
        <!-- <div
        <div
          class="other-login-channel-list-item"
          @click="goLoginByForm(LoginFormTabs.AccountLogin)"
        >
@@ -42,7 +43,7 @@
            <img :src="IconPassword" />
          </div>
          <div class="other-login-channel-list-item-text">账户登录</div>
        </div> -->
        </div>
      </div>
    </div>
  </LoginPageLayout>
@@ -61,6 +62,8 @@
import IconPassword from '@/assets/login/icon-btn-password.png';
import { LoginFormTabs } from '../constants';
import * as authServices from '@12333/services/apiV2/auth';
import { NODE_ENV } from '@/constants';
console.log('NODE_ENV: ', NODE_ENV);
defineOptions({
  name: 'authorization',
apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
@@ -37,6 +37,7 @@
            </div> -->
          </div>
          <TaskPrice
            v-if="detail.releaseStatus !== EnumTaskReleaseStatus.Stopped"
            :value="toThousand(detail.serviceFee ?? 0)"
            :unit="BillingMethodEnumUnit[detail.billingMethod]"
          />
apps/cMiniApp/src/subpackages/task/taskSubmitCheck/InnerPage.vue
@@ -7,6 +7,7 @@
          :maximum="9"
          :limitFileSize="10"
          class="bole-uploader nopaddingtop"
          :sourceType="['camera']"
        >
        </Uploader>
      </nut-form-item>
apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue
@@ -24,11 +24,7 @@
  name: 'InnerPage',
});
const { userDetail } = useUser();
const isBindBank = computed(() =>
  userDetail.value?.bankCardAAccesses?.find(() => EnumUserBankCardAccess.Bank)
);
const { userDetail, isBindBank } = useUser();
function goIncomeDetail() {
  Taro.navigateTo({
apps/cMiniApp/src/utils/request/index.ts
@@ -3,7 +3,7 @@
import qs from 'qs';
import Taro from '@tarojs/taro';
import { getToken } from '@/utils';
import { tokenIsExpired, Message, SensitiveManage } from '@12333/utils';
import { tokenIsExpired, Message, SensitiveManage, httpLoggerRecord } from '@12333/utils';
import { useUserStoreWithOut } from '@/stores/modules/user';
const RefreshTokenUrl = '/gettokenbyrefreshtoken';
@@ -63,6 +63,7 @@
   */
  msg?: string;
  showType?: ErrorShowType;
  traceId?: string;
}
interface ErrorResponse {
@@ -103,6 +104,19 @@
    // 错误接收及处理
    errorHandler: (error, opts) => {
      console.log('error: ', error);
      const url = opts.url ?? '';
      httpLoggerRecord.error({
        message: `[${url}] 请求错误`,
        httpParams: {
          url: url,
          //@ts-ignore
          traceId: error?.info?.traceId,
          stackTrace: error.stack,
        },
        args: [{ data: opts.data, params: opts.params, headers: opts.headers }],
      });
      if (opts?.skipErrorHandler) throw error;
      if (opts?.customErrorHandler) {
@@ -172,6 +186,14 @@
      (config) => {
        const $config = config;
        httpLoggerRecord.info({
          message: `[${$config.url}] 请求开始`,
          httpParams: {
            url: $config.url,
          },
          args: [{ data: $config.data, params: $config.params, headers: $config.headers }],
        });
        const token = getToken();
        const userStore = useUserStoreWithOut();
@@ -216,6 +238,15 @@
      (response) => {
        const $config = response.config as IRequestOptions;
        httpLoggerRecord.info({
          message: `[${$config.url}] 请求结束`,
          httpParams: {
            url: $config.url,
            traceId: response.data?.traceId,
          },
          args: [{ data: $config.data, params: $config.params, headers: $config.headers }],
        });
        const { needNProcess, getResponse = false } = $config;
        const userStore = useUserStoreWithOut();
apps/cMiniApp/src/utils/setConfig.ts
New file
@@ -0,0 +1,5 @@
import { setUtilsConfig } from '@12333/utils/config';
setUtilsConfig({
  appName: '工易赚小程序',
});
apps/cMiniApp/src/utils/storage/auth.ts
@@ -1,4 +1,4 @@
import { storageLocal } from './storage';
import { storageLocal } from '@12333/utils';
import { useUserStoreWithOut } from '@/stores/modules/user';
const StorageKey = {
apps/cMiniApp/src/utils/storage/index.ts
@@ -1,2 +1 @@
export * from './storage';
export * from './auth';
apps/cMiniApp/src/utils/storage/storage.ts
File was deleted
packages/components/src/Card/TaskCard.vue
@@ -4,6 +4,7 @@
      <div class="task-card-title">{{ name }}</div>
      <slot name="title-right">
        <TaskPrice
          v-if="releaseStatus !== EnumTaskReleaseStatus.Stopped"
          :value="toThousand(serviceFee ?? 0)"
          :unit="BillingMethodEnumUnit[billingMethod]"
        />
packages/constants/apiEnum.ts
@@ -31,6 +31,14 @@
  ElectronSignUrl = 10,
}
/** 控制台日志通道 */
export enum EnumConsoleLogAccess {
  /**后端 */
  Back = 10,
  /**前端 */
  Front = 20,
}
/** 合同制版状态 */
export enum EnumContractTemplateStatus {
  /**待制版 */
@@ -199,6 +207,22 @@
  Pass = 30,
}
/** 日志级别 */
export enum EnumLogLevel {
  /**跟踪 */
  Trace = 10,
  /**调试 */
  Debug = 20,
  /**信息 */
  Information = 30,
  /**警告 */
  Warning = 40,
  /**错误 */
  Error = 50,
  /**严重 */
  Critical = 60,
}
/** 菜单类型 */
export enum EnumMenuType {
  /**菜单 */
@@ -321,28 +345,30 @@
  CommonServerLogRecords = 7,
  /**同步数据库 */
  CommonServerSyncDatabase = 8,
  /**短信工具 */
  CommonServerSmsUtils = 9,
  /**用户认证 */
  UserServerAuth = 9,
  UserServerAuth = 10,
  /**用户菜单 */
  UserServerMenu = 10,
  UserServerMenu = 11,
  /**用户资源 */
  UserServerResource = 11,
  UserServerResource = 12,
  /**用户角色 */
  UserServerRole = 12,
  UserServerRole = 13,
  /**用户信息 */
  UserServerUser = 13,
  UserServerUser = 14,
  /**电子签 */
  UserServerElectronSign = 14,
  UserServerElectronSign = 15,
  /**用户简历 */
  UserServerUserResume = 15,
  UserServerUserResume = 16,
  /**企业信息 */
  UserServerEnterprise = 16,
  UserServerEnterprise = 17,
  /**企业钱包 */
  UserServerEnterpriseWallet = 17,
  UserServerEnterpriseWallet = 18,
  /**灵工信息 */
  UserServerEnterpriseEmployee = 18,
  UserServerEnterpriseEmployee = 19,
  /**电子签 */
  ElectronSignServerElectronSign = 19,
  ElectronSignServerElectronSign = 20,
}
/** 资源请求方式 */
@@ -391,6 +417,18 @@
  AliyunSms = 10,
}
/** 短信状态 */
export enum EnumSmsStatus {
  /**待发送 */
  Wait = 0,
  /**发送中 */
  InProcess = 10,
  /**发送成功 */
  Success = 20,
  /**发送失败 */
  Fail = 30,
}
/** 任务结算状态 */
export enum EnumTaskCheckReceiveStatus {
  /**待提交 */
packages/services/apiV2/index.ts
@@ -5,6 +5,7 @@
import * as enterpriseEmployee from './enterpriseEmployee';
import * as user from './user';
import * as role from './role';
import * as sms from './sms';
import * as ocrUtils from './ocrUtils';
import * as task from './task';
import * as enterprise from './enterprise';
@@ -25,6 +26,7 @@
  enterpriseEmployee,
  user,
  role,
  sms,
  ocrUtils,
  task,
  enterprise,
packages/services/apiV2/logRecords.ts
@@ -2,6 +2,18 @@
// @ts-ignore
import { request } from '@/utils/request';
/** 控制台日志分页列表查询 POST /api/common/logRecords/getConsoleLogs */
export async function getConsoleLogs(body: API.GetConsoleLogsQuery, options?: API.RequestConfig) {
  return request<API.GetConsoleLogsQueryResult>('/api/common/logRecords/getConsoleLogs', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 查询数据库审计日志分页列表 POST /api/common/logRecords/getDbAuditLogs */
export async function getDbAuditLogs(body: API.GetDbAuditLogsQuery, options?: API.RequestConfig) {
  return request<API.GetDbAuditLogsQueryResult>('/api/common/logRecords/getDbAuditLogs', {
@@ -32,6 +44,18 @@
/** 资源日志分页列表查询 POST /api/common/logRecords/getResourceLogs */
export async function getResourceLogs(body: API.GetResourceLogsQuery, options?: API.RequestConfig) {
  return request<API.GetResourceLogsQueryResult>('/api/common/logRecords/getResourceLogs', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 查询短信日志 POST /api/common/logRecords/getSmsLogs */
export async function getSmsLogs(body: API.GetSmsLogsQuery, options?: API.RequestConfig) {
  return request<API.GetSmsLogsQueryResult>('/api/common/logRecords/getSmsLogs', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
@@ -85,3 +109,18 @@
    ...(options || {}),
  });
}
/** 保存前端日志 POST /api/common/logRecords/saveFrontConsoleLog */
export async function saveFrontConsoleLog(
  body: API.SaveFrontConsoleLogCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/common/logRecords/saveFrontConsoleLog', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
packages/services/apiV2/sms.ts
New file
@@ -0,0 +1,42 @@
/* eslint-disable */
// @ts-ignore
import { request } from '@/utils/request';
/** 查询短信配置 POST /api/common/sms/getSmsSetting */
export async function getSmsSetting(body: API.GetSmsSettingQuery, options?: API.RequestConfig) {
  return request<API.GetSmsSettingQueryResult>('/api/common/sms/getSmsSetting', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 保存短信配置 POST /api/common/sms/saveSmsSetting */
export async function saveSmsSetting(body: API.SaveSmsSettingCommand, options?: API.RequestConfig) {
  return request<string>('/api/common/sms/saveSmsSetting', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 诚立业短信平台回传通知 POST /api/common/sms/smsChengLiYeNotify */
export async function smsChengLiYeNotify(
  body: API.SmsChengLiYeNotifyCommand,
  options?: API.RequestConfig
) {
  return request<boolean>('/api/common/sms/smsChengLiYeNotify', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
packages/services/apiV2/typings.d.ts
@@ -563,6 +563,13 @@
    ElectronSignUrl = 10,
  }
  enum EnumConsoleLogAccess {
    /**后端 */
    Back = 10,
    /**前端 */
    Front = 20,
  }
  enum EnumContractTemplateStatus {
    /**待制版 */
    Wait = 10,
@@ -714,6 +721,21 @@
    Pass = 30,
  }
  enum EnumLogLevel {
    /**跟踪 */
    Trace = 10,
    /**调试 */
    Debug = 20,
    /**信息 */
    Information = 30,
    /**警告 */
    Warning = 40,
    /**错误 */
    Error = 50,
    /**严重 */
    Critical = 60,
  }
  enum EnumMenuType {
    /**菜单 */
    Menu = 10,
@@ -825,28 +847,30 @@
    CommonServerLogRecords = 7,
    /**同步数据库 */
    CommonServerSyncDatabase = 8,
    /**短信工具 */
    CommonServerSmsUtils = 9,
    /**用户认证 */
    UserServerAuth = 9,
    UserServerAuth = 10,
    /**用户菜单 */
    UserServerMenu = 10,
    UserServerMenu = 11,
    /**用户资源 */
    UserServerResource = 11,
    UserServerResource = 12,
    /**用户角色 */
    UserServerRole = 12,
    UserServerRole = 13,
    /**用户信息 */
    UserServerUser = 13,
    UserServerUser = 14,
    /**电子签 */
    UserServerElectronSign = 14,
    UserServerElectronSign = 15,
    /**用户简历 */
    UserServerUserResume = 15,
    UserServerUserResume = 16,
    /**企业信息 */
    UserServerEnterprise = 16,
    UserServerEnterprise = 17,
    /**企业钱包 */
    UserServerEnterpriseWallet = 17,
    UserServerEnterpriseWallet = 18,
    /**灵工信息 */
    UserServerEnterpriseEmployee = 18,
    UserServerEnterpriseEmployee = 19,
    /**电子签 */
    ElectronSignServerElectronSign = 19,
    ElectronSignServerElectronSign = 20,
  }
  enum EnumResourceMethod {
@@ -889,6 +913,17 @@
  enum EnumSmsAccess {
    /**阿里云短信 */
    AliyunSms = 10,
  }
  enum EnumSmsStatus {
    /**待发送 */
    Wait = 0,
    /**发送中 */
    InProcess = 10,
    /**发送成功 */
    Success = 20,
    /**发送失败 */
    Fail = 30,
  }
  enum EnumTaskCheckReceiveStatus {
@@ -1223,6 +1258,24 @@
    /** 错误码 */
    errorCode?: string;
    data?: GetCodeUrlQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetConsoleLogsQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetConsoleLogsQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -1889,6 +1942,42 @@
    /** 错误码 */
    errorCode?: string;
    data?: GetSettlementTaskUsersQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetSmsLogsQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetSmsLogsQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetSmsSettingQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetSmsSettingQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -2999,6 +3088,58 @@
    paramValue5?: string;
  }
  interface GetConsoleLogsQuery {
    access?: EnumConsoleLogAccess;
    level?: EnumLogLevel;
    /** 创建时间-起始 */
    createdTimeBegin?: string;
    /** 创建时间-截止 */
    createdTimeEnd?: string;
    /** 操作人 */
    createdUser?: string;
    /** 跟踪Id */
    traceId?: string;
    /** 内容 */
    content?: string;
    /** 链接地址 */
    url?: string;
    /** 传参 */
    request?: string;
    /** 扩展 */
    ext?: string;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetConsoleLogsQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** 数据 */
    data?: GetConsoleLogsQueryResultItem[];
  }
  interface GetConsoleLogsQueryResultItem {
    /** Id */
    id?: string;
    /** 跟踪Id */
    traceId?: string;
    access?: EnumConsoleLogAccess;
    level?: EnumLogLevel;
    /** 内容 */
    content: string;
    /** 堆栈跟踪 */
    stackTrace?: string;
    /** 链接地址 */
    url?: string;
    /** 传参 */
    request?: string;
    /** 扩展 */
    ext?: string;
    /** 客户IP地址 */
    clientIpAddress?: string;
    createdUser?: GetLogsQueryResultItemCreatedUser;
    /** 创建时间 */
    createdTime?: string;
  }
  interface GetContractTemplateEnterprisesQuery {
    /** 关键字 */
    keywords?: string;
@@ -3074,14 +3215,23 @@
  type GetCurrentLogierMenusQuery = Record<string, any>;
  interface GetDbAuditLogsQuery {
    /** 跟踪Id */
    traceId?: string;
    /** 关键字 */
    keywords?: string;
    /** 创建时间-起始 */
    createdTimeBegin?: string;
    /** 创建时间-截止 */
    createdTimeEnd?: string;
    /** 操作人 */
    createdUser?: string;
    /** 跟踪Id */
    traceId?: string;
    /** 表名 */
    tableName?: string;
    /** 主键 */
    primaryKey?: string;
    operate?: EnumDbAuditOperate;
    /** 旧值 */
    oldValues?: string;
    /** 新值 */
    newValues?: string;
    pageModel?: PagedListQueryPageModel;
  }
@@ -3092,6 +3242,10 @@
  }
  interface GetDbAuditLogsQueryResultItem {
    /** Id */
    id?: string;
    /** 跟踪Id */
    traceId?: string;
    /** 表名 */
    tableName?: string;
    /** 主键 */
@@ -3101,7 +3255,7 @@
    oldValues?: string;
    /** 新值 */
    newValues?: string;
    createdUser?: GetResourceLogsQueryResultItemCreatedUser;
    createdUser?: GetLogsQueryResultItemCreatedUser;
    /** 创建时间 */
    createdTime?: string;
  }
@@ -3624,14 +3778,20 @@
  }
  interface GetExceptionLogsQuery {
    /** 跟踪Id */
    traceId?: string;
    /** 关键字 */
    keywords?: string;
    /** 创建时间-起始 */
    createdTimeBegin?: string;
    /** 创建时间-截止 */
    createdTimeEnd?: string;
    /** 操作人 */
    createdUser?: string;
    /** 跟踪Id */
    traceId?: string;
    /** 类型 */
    type?: string;
    /** 代码 */
    code?: string;
    /** 消息 */
    message?: string;
    pageModel?: PagedListQueryPageModel;
  }
@@ -3642,6 +3802,10 @@
  }
  interface GetExceptionLogsQueryResultItem {
    /** Id */
    id?: string;
    /** 跟踪Id */
    traceId?: string;
    /** 类型 */
    type?: string;
    /** 代码 */
@@ -3650,7 +3814,7 @@
    message?: string;
    /** 堆栈跟踪 */
    stackTrace?: string;
    createdUser?: GetResourceLogsQueryResultItemCreatedUser;
    createdUser?: GetLogsQueryResultItemCreatedUser;
    /** 创建时间 */
    createdTime?: string;
  }
@@ -3701,6 +3865,20 @@
    /** 地址 */
    url?: string;
    model?: BaiduOcrBusinessLicenseResultModel;
  }
  interface GetLogsQueryResultItemCreatedUser {
    /** Id */
    id?: string;
    type?: EnumUserType;
    /** 姓名 */
    name?: string;
    /** 用户名 */
    userName?: string;
    /** 企业Id */
    enterpriseId?: string;
    /** 企业全称 */
    enterpriseName?: string;
  }
  interface GetMenuQueryResult {
@@ -4366,14 +4544,29 @@
  }
  interface GetResourceLogsQuery {
    /** 跟踪Id */
    traceId?: string;
    /** 关键字 */
    keywords?: string;
    /** 创建时间-起始 */
    createdTimeBegin?: string;
    /** 创建时间-截止 */
    createdTimeEnd?: string;
    /** 操作人 */
    createdUser?: string;
    /** 跟踪Id */
    traceId?: string;
    method?: EnumResourceMethod;
    /** 域名 */
    domain?: string;
    /** 地址 */
    path?: string;
    /** 请求参数 */
    request?: string;
    /** 响应结果 */
    response?: string;
    /** 是否成功 */
    isSuccess?: boolean;
    /** 客户端IP地址 */
    clientIpAddress?: string;
    /** 最小耗时毫秒数 */
    elapsedMillisecondsMin?: number;
    pageModel?: PagedListQueryPageModel;
  }
@@ -4386,6 +4579,8 @@
  interface GetResourceLogsQueryResultItem {
    /** Id */
    id?: string;
    /** 跟踪Id */
    traceId?: string;
    method?: EnumResourceMethod;
    /** 域名 */
    domain?: string;
@@ -4409,23 +4604,9 @@
    consoleLogs?: string;
    /** 耗时毫秒数 */
    elapsedMilliseconds?: number;
    createdUser?: GetResourceLogsQueryResultItemCreatedUser;
    createdUser?: GetLogsQueryResultItemCreatedUser;
    /** 创建时间 */
    createdTime?: string;
  }
  interface GetResourceLogsQueryResultItemCreatedUser {
    /** Id */
    id?: string;
    type?: EnumUserType;
    /** 姓名 */
    name?: string;
    /** 用户名 */
    userName?: string;
    /** 企业Id */
    enterpriseId?: string;
    /** 企业全称 */
    enterpriseName?: string;
  }
  interface GetResourcesQueryResultItem {
@@ -4644,6 +4825,89 @@
    createdTime?: string;
    /** 电子收据下载链接 */
    ereceiptDownloadOssUrl?: string;
  }
  interface GetSmsLogsQuery {
    /** 创建时间-起始 */
    createdTimeBegin?: string;
    /** 创建时间-截止 */
    createdTimeEnd?: string;
    /** 操作人 */
    createdUser?: string;
    /** 跟踪Id */
    traceId?: string;
    access?: EnumSmsAccess;
    /** 手机号码 */
    phoneNumber?: string;
    /** 模板代码 */
    templateCode?: string;
    /** 模板参数 */
    templateParam?: string;
    /** 是否使用 */
    isUsed?: boolean;
    status?: EnumSmsStatus;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetSmsLogsQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** 数据 */
    data?: GetSmsLogsQueryResultItem[];
  }
  interface GetSmsLogsQueryResultItem {
    /** Id */
    id?: string;
    /** 跟踪Id */
    traceId?: string;
    access?: EnumSmsAccess;
    /** 手机号码 */
    phoneNumber?: string;
    /** 模板代码 */
    templateCode?: string;
    /** 模板参数 */
    templateParam?: string;
    /** 有效期 */
    expiry?: string;
    /** 是否使用 */
    isUsed?: boolean;
    status?: EnumSmsStatus;
    /** 请求Id */
    requestId?: string;
    /** 回传代码 */
    code?: string;
    /** 回传消息 */
    message?: string;
    /** 操作人Id */
    createdUserId?: string;
    createdUser?: GetLogsQueryResultItemCreatedUser;
    /** 创建时间 */
    createdTime?: string;
  }
  type GetSmsSettingQuery = Record<string, any>;
  interface GetSmsSettingQueryResult {
    /** 是否禁用 */
    isDisabled?: boolean;
    /** 带出参数 */
    withoutParams?: boolean;
    /** 每分钟最大数量 */
    minutelyMaxCount?: number;
    /** 每小时最大数量 */
    hourlyMaxCount?: number;
    /** 每天最大数量 */
    dailyMaxCount?: number;
    /** 通道配置 */
    accesses?: GetSmsSettingQueryResultAccess[];
  }
  interface GetSmsSettingQueryResultAccess {
    access?: EnumSmsAccess;
    /** 是否禁用 */
    isDisabled?: boolean;
    /** 排序 */
    sort?: number;
  }
  interface GetTaskEnterpriseQueryResult {
@@ -4929,14 +5193,29 @@
  }
  interface GetThreeResourceLogsQuery {
    /** 跟踪Id */
    traceId?: string;
    /** 关键字 */
    keywords?: string;
    /** 创建时间-起始 */
    createdTimeBegin?: string;
    /** 创建时间-截止 */
    createdTimeEnd?: string;
    /** 操作人 */
    createdUser?: string;
    /** 跟踪Id */
    traceId?: string;
    method?: EnumResourceMethod;
    /** 域名 */
    domain?: string;
    /** 地址 */
    path?: string;
    /** 请求参数 */
    request?: string;
    /** 响应结果 */
    response?: string;
    /** 是否成功 */
    isSuccess?: boolean;
    /** 客户端IP地址 */
    clientIpAddress?: string;
    /** 最小耗时毫秒数 */
    elapsedMillisecondsMin?: number;
    pageModel?: PagedListQueryPageModel;
  }
@@ -4949,6 +5228,8 @@
  interface GetThreeResourceLogsQueryResultItem {
    /** Id */
    id?: string;
    /** 跟踪Id */
    traceId?: string;
    method?: EnumResourceMethod;
    /** 域名 */
    domain?: string;
@@ -4966,23 +5247,9 @@
    isSuccess?: boolean;
    /** 耗时毫秒数 */
    elapsedMilliseconds?: number;
    createdUser?: GetThreeResourceLogsQueryResultItemCreatedUser;
    createdUser?: GetLogsQueryResultItemCreatedUser;
    /** 创建时间 */
    createdTime?: string;
  }
  interface GetThreeResourceLogsQueryResultItemCreatedUser {
    /** Id */
    id?: string;
    type?: EnumUserType;
    /** 姓名 */
    name?: string;
    /** 用户名 */
    userName?: string;
    /** 企业Id */
    enterpriseId?: string;
    /** 企业全称 */
    enterpriseName?: string;
  }
  interface GetTraceIdLogQueryResult {
@@ -4994,6 +5261,8 @@
    exceptionLogs?: GetExceptionLogsQueryResultItem[];
    /** 数据库审计日志 */
    dbAuditLogs?: GetDbAuditLogsQueryResultItem[];
    /** 控制台日志 */
    consoleLogs?: GetConsoleLogsQueryResultItem[];
  }
  interface GetUserInfoRolesQueryResultItem {
@@ -5466,6 +5735,7 @@
  }
  interface PersonalUserElectronSignCommandResult {
    userSignContractStatus?: EnumTaskUserSignContractStatus;
    /** 签署合同短链接 */
    signContractShortUrl?: string;
    /** 签署合同长链接 */
@@ -5495,6 +5765,8 @@
    isReal?: boolean;
    realMethod?: EnumUserRealMethod;
    realStatus?: EnumPersonalUserRealStatus;
    /** 是否绑定银行卡 */
    isBindBankCard?: boolean;
    /** 人脸识别地址 */
    faceUrl?: string;
  }
@@ -5691,6 +5963,22 @@
    status?: EnumEnterpriseCostStatus;
  }
  interface SaveFrontConsoleLogCommand {
    /** 跟踪Id */
    traceId?: string;
    level?: EnumLogLevel;
    /** 内容 */
    content: string;
    /** 堆栈跟踪 */
    stackTrace?: string;
    /** 链接地址 */
    url?: string;
    /** 传参 */
    request?: string;
    /** 扩展 */
    ext?: string;
  }
  interface SaveMenuButtonCommand {
    /** 菜单Id */
    parentId?: string;
@@ -5848,6 +6136,29 @@
    menuIds?: string[];
    /** 资源 */
    resources?: GetRoleQueryResultResource[];
  }
  interface SaveSmsSettingCommand {
    /** 是否禁用 */
    isDisabled?: boolean;
    /** 带出参数 */
    withoutParams?: boolean;
    /** 每分钟最大数量 */
    minutelyMaxCount?: number;
    /** 每小时最大数量 */
    hourlyMaxCount?: number;
    /** 每天最大数量 */
    dailyMaxCount?: number;
    /** 通道配置 */
    accesses?: SaveSmsSettingCommandAccess[];
  }
  interface SaveSmsSettingCommandAccess {
    access?: EnumSmsAccess;
    /** 是否禁用 */
    isDisabled?: boolean;
    /** 排序 */
    sort?: number;
  }
  interface SaveTaskInfoCommand {
@@ -6113,6 +6424,8 @@
    status?: EnumUserStatus;
  }
  type SmsChengLiYeNotifyCommand = Record<string, any>;
  interface SmsLoginCommand {
    /** 手机号码 */
    phoneNumber?: string;
packages/utils/LoggerRecord/index.ts
New file
@@ -0,0 +1,74 @@
import * as logRecordsServices from '@12333/services/apiV2/logRecords';
import { LoggerRecord, LogOptions, LoggerRecordOptions, LoggerRecordLevel } from 'senior-request';
import Taro from '@tarojs/taro';
import { EnumLogLevel } from '@12333/constants';
import { storageLocal } from '../storage';
import { getUtilsConfig } from '../config';
type HttpLogOptions = {
  httpParams?: Omit<API.SaveFrontConsoleLogCommand, 'level' | 'content'>;
} & LogOptions;
class HttpLoggerRecord extends LoggerRecord<HttpLogOptions> {
  constructor(options: LoggerRecordOptions = {}) {
    super(options);
  }
  convertLogLevel(level: LoggerRecordLevel): EnumLogLevel {
    switch (level) {
      case 'debug':
        return EnumLogLevel.Debug;
      case 'info':
        return EnumLogLevel.Information;
      case 'warn':
        return EnumLogLevel.Warning;
      case 'error':
        return EnumLogLevel.Error;
      case 'log':
        return EnumLogLevel.Trace;
      default:
        return EnumLogLevel.Debug;
    }
  }
  log(level: LoggerRecordLevel, options: HttpLogOptions): void {
    const httpUrl = options?.httpParams?.url ?? '';
    if (httpUrl.toLowerCase().includes('saveFrontConsoleLog'.toLowerCase())) return;
    const args = [...(options.args || []), options.httpParams].filter(Boolean);
    super.log(level, {
      ...options,
      args: args,
    });
    let params: API.SaveFrontConsoleLogCommand = {
      /** 跟踪Id */
      traceId: options.httpParams?.traceId,
      level: this.convertLogLevel(level),
      /** 内容 */
      content: `[${this.config.moduleName}] ${options.message}`,
      /** 堆栈跟踪 */
      stackTrace: options.httpParams?.stackTrace,
      /** 链接地址 */
      url: options.httpParams?.url,
      ext: JSON.stringify(args),
    };
    logRecordsServices.saveFrontConsoleLog(params, { showLoading: false, skipErrorHandler: true });
  }
}
export const httpLoggerRecord = new HttpLoggerRecord({
  moduleName: getUtilsConfig().appName,
  enableStorage: true,
  loggerStorageAdapter() {
    return {
      setItem(key: string, data: any) {
        return Promise.resolve(storageLocal.setItem(key, data));
      },
      getItem(key: string) {
        return Promise.resolve(storageLocal.getItem(key));
      },
    };
  },
  getPageUrl() {
    return Taro.getCurrentInstance()?.router?.path ?? '';
  },
});
packages/utils/config.ts
New file
@@ -0,0 +1,11 @@
export let utilsConfig = {
  appName: '',
};
export function setUtilsConfig(config: Partial<typeof utilsConfig>) {
  utilsConfig = { ...utilsConfig, ...config };
}
export function getUtilsConfig() {
  return { ...utilsConfig };
}
packages/utils/index.ts
@@ -16,3 +16,5 @@
export * from './encrypt';
export * from './task';
export * from './developing';
export * from './LoggerRecord';
export * from './storage';
packages/utils/package.json
@@ -5,6 +5,7 @@
  "version": "0.0.1",
  "dependencies": {
    "@12333/constants": "workspace:^",
    "@12333/services": "workspace:^"
    "@12333/services": "workspace:^",
    "senior-request": "^1.0.10"
  }
}
packages/utils/storage.ts
File was renamed from apps/bMiniApp/src/utils/storage/storage.ts
@@ -1,6 +1,8 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import Taro from '@tarojs/taro';
type Nullable<T> = T | null;
//sessionStorage operate
class localStorageProxy {
  constructor() {}
pnpm-lock.yaml
@@ -243,8 +243,8 @@
        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)
        specifier: ^1.0.10
        version: 1.0.10(axios@1.4.0)
      taro-plugin-pinia:
        specifier: ^1.0.0
        version: 1.0.0
@@ -505,8 +505,8 @@
        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)
        specifier: ^1.0.10
        version: 1.0.10(axios@1.4.0)
      taro-plugin-pinia:
        specifier: ^1.0.0
        version: 1.0.0
@@ -663,6 +663,9 @@
      '@12333/services':
        specifier: workspace:^
        version: link:../services
      senior-request:
        specifier: ^1.0.10
        version: 1.0.10(axios@1.4.0)
packages:
@@ -7415,7 +7418,7 @@
  /@tencentcloud/call-engine-js@3.3.0:
    resolution: {integrity: sha512-li4i97RSMM0ZlkK+1x1veRp1sy1YLV/rUNQ1iG8TodHZ4kwA97NnLNBTfvXro3rpJtPVuKIZV6Gp4N+kXy4rOg==}
    dependencies:
      '@tencentcloud/chat': 3.5.7
      '@tencentcloud/chat': 3.5.9
      core-js: 3.38.1
      eventemitter3: 4.0.7
      rtc-detect: 0.0.5
@@ -7426,7 +7429,7 @@
  /@tencentcloud/call-engine-wx@3.3.0:
    resolution: {integrity: sha512-4oXRQhcWiVLX1PxcjCFjnEm53u3oguKsjas7zMvvvgh1UxsA9aiCl6xXIcGZ230w0rP4cQ6hA45S+EZrCIFP1g==}
    dependencies:
      '@tencentcloud/chat': 3.5.7
      '@tencentcloud/chat': 3.5.9
      '@tencentcloud/trtc-component-wx': 1.0.6
      eventemitter3: 4.0.7
    dev: false
@@ -7435,7 +7438,7 @@
    resolution: {integrity: sha512-XpB8eZriaKDygAvSN3tae2bzD/coQ2u31DyXcAt5VWcATQ1Cf410qZ0ZAa2yf08mhqHcfQtMT0hzi4etZxbZuw==}
    dependencies:
      '@tencentcloud/call-engine-wx': 3.3.0
      '@tencentcloud/chat': 3.5.7
      '@tencentcloud/chat': 3.5.9
      '@tencentcloud/tui-core': 2.5.1
      '@vue/composition-api': 1.7.2(vue@3.5.12)
    transitivePeerDependencies:
@@ -7446,7 +7449,7 @@
    resolution: {integrity: sha512-TcbdRiTgeMVHqH6NS/EW0iyJkaIZxgjU3H/11fxNUjrMQsPyggRjtvCpy0nEfmpGpPDd1zp/d5u0f3O8Hj56rg==}
    dependencies:
      '@tencentcloud/call-engine-js': 3.3.0
      '@tencentcloud/chat': 3.5.7
      '@tencentcloud/chat': 3.5.9
      '@tencentcloud/tui-core': 2.5.1
    dev: false
@@ -7466,8 +7469,8 @@
      tim-upload-plugin: 1.4.3
    dev: false
  /@tencentcloud/chat-uikit-engine@2.5.5:
    resolution: {integrity: sha512-WWFmtpRwNXgtRXWgb0mhzeigFGZimMbgvi1fVmu9sY5+RtF9RiayC/ESokaMVs591l7mcZf4/BXCQNtUi3eZiQ==}
  /@tencentcloud/chat-uikit-engine@2.5.6:
    resolution: {integrity: sha512-hzGkruR3j5S/9hx7HfGBWvHAZ7FZqpkl5LEz0z9sVm3faG/IaBkeTCjPmvN9kGIdDIan8Jn6mhVW57EEx7E8UQ==}
    dependencies:
      '@tencentcloud/chat': 3.5.9
      tim-profanity-filter-plugin: 1.1.0
@@ -7480,7 +7483,7 @@
      '@tencentcloud/call-uikit-vue': 4.0.9
      '@tencentcloud/call-uikit-vue2.6': 4.0.9(vue@3.5.12)
      '@tencentcloud/call-uikit-wechat': 3.3.9
      '@tencentcloud/chat-uikit-engine': 2.5.5
      '@tencentcloud/chat-uikit-engine': 2.5.6
      '@tencentcloud/tui-core': 2.5.1
      '@tencentcloud/tui-customer-service-plugin': 2.2.6(@tencentcloud/tui-core@2.5.1)(@vue/composition-api@1.7.2)(vue@3.5.12)
      '@types/lodash': 4.17.7
@@ -7501,10 +7504,6 @@
      - vue
      - webpack
      - webpack-sources
    dev: false
  /@tencentcloud/chat@3.5.7:
    resolution: {integrity: sha512-uxACmaFPqV8jXcORBwVSHc0qgKvnHzRg9kC8kHAqCGbsnsm8525JwFzU6ByckGCNqNWUx/5W70EISYAboLuTvQ==}
    dev: false
  /@tencentcloud/chat@3.5.9:
@@ -18562,8 +18561,8 @@
      axios: 1.4.0
    dev: false
  /senior-request@1.0.3(axios@1.4.0):
    resolution: {integrity: sha512-suWkqlC0qYPRIVUvg5hRf6fXJpWOwkVfiXugzJO4ueDD+799nEQCBUQB4U68mjK9UVhyTY5oK/1Qx83alMqntA==}
  /senior-request@1.0.10(axios@1.4.0):
    resolution: {integrity: sha512-qHJaP7SrxK+YpiThJII2QXy+nXcjC5liNJizFsAEoFoLQ+eVBSA4hTC/nIC+WD7PEuboFOZCiriCm6KKJbMQBA==}
    peerDependencies:
      axios: '*'
    dependencies: