diff --git a/report-viewer/README.md b/report-viewer/README.md deleted file mode 100644 index fde278b..0000000 --- a/report-viewer/README.md +++ /dev/null @@ -1,137 +0,0 @@ -# 报告查看器 - 独立 Vue3 项目 - -这是一个独立的 Vue3 项目,用于展示报告组件。项目使用本地 JSON 文件(`example.json`)作为数据源,不依赖网络请求。 - -## 📋 已包含的组件 - -1. **DWBG6A2C** - 司南报告(包含所有子模块) -2. **FLXG0V4B** - 司法涉诉 -3. **QYGL3F8E** - 人企关系加强版(包含所有子模块) -4. **JRZQ4B6C** - 信贷表现 -5. **JRZQ09J8** - 收入评估 -6. **QCXG9P1C** - 名下车辆 -7. **DWBG8B4D** - 谛听多维报告(包含所有子模块) - -## 🚀 快速开始 - -### 1. 安装依赖 - -```bash -cd report-viewer -npm install -# 或 -pnpm install -# 或 -yarn install -``` - -### 2. 启动开发服务器 - -```bash -npm run dev -``` - -访问:`http://localhost:3000` - -### 3. 构建生产版本 - -```bash -npm run build -``` - -## 📁 项目结构 - -``` -report-viewer/ -├── public/ -│ └── example.json # 示例数据文件 -├── src/ -│ ├── components/ # 基础组件 -│ │ ├── BaseReport.vue # ⭐ 核心组件 -│ │ ├── GaugeChart.vue -│ │ ├── ShareReportButton.vue -│ │ └── ... -│ ├── views/ -│ │ └── Report.vue # ⭐ 报告页面 -│ ├── ui/ # ⭐ 业务组件 -│ │ ├── DWBG6A2C/ # 司南报告 -│ │ ├── CFLXG0V4B/ # 司法涉诉 -│ │ ├── CQYGL3F8E/ # 人企关系加强版 -│ │ ├── JRZQ4B6C/ # 信贷表现 -│ │ ├── JRZQ09J8/ # 收入评估 -│ │ ├── CQCXG9P1C.vue # 名下车辆 -│ │ └── CDWBG8B4D/ # 谛听多维报告 -│ ├── assets/ # 样式和图片 -│ └── composables/ # 工具函数(已移除网络请求) -├── package.json -├── vite.config.js -└── tailwind.config.js -``` - -## ⚙️ 配置说明 - -### 数据源 - -项目从 `public/example.json` 加载示例数据。可以直接修改该文件来更新显示的内容。 - -### 已移除的功能 - -- ✅ 产品背景图片(已移除背景图显示) -- ✅ 网络请求(改为从本地 JSON 文件加载) -- ✅ API 调用(ShareReportButton 在示例模式下不进行网络请求) - -## 📝 使用说明 - -1. 启动项目后,会自动加载 `public/example.json` 中的数据 -2. 数据会自动排序并显示在报告页面中 -3. 所有组件都会根据数据进行渲染 - -## 🔧 注意事项 - -1. **图片资源**:确保所有必要的图片文件已复制到 `src/assets/images/` 目录 -2. **样式依赖**:项目依赖 Tailwind CSS 和 Vant UI,确保正确引入 -3. **浏览器兼容**:需要现代浏览器支持(ES2015+) -4. **数据格式**:`example.json` 必须符合组件期望的数据结构 - -## 📦 依赖说明 - -### 核心依赖 - -- **vue** ^3.5.12 - Vue 框架 -- **vue-router** ^4.4.5 - 路由管理 -- **vant** ^4.9.9 - UI 组件库 -- **echarts** ^5.5.1 - 图表库 -- **vue-echarts** ^7.0.3 - Vue ECharts 封装 -- **@vueuse/core** ^11.3.0 - Vue 工具库 -- **lodash** ^4.17.21 - 工具函数库 - -### 开发依赖 - -- **vite** ^5.4.10 - 构建工具 -- **tailwindcss** ^3.4.15 - CSS 框架 -- **@vitejs/plugin-vue** - Vite Vue 插件 -- **unplugin-auto-import** - 自动导入插件 -- **unplugin-vue-components** - 自动组件导入插件 - -## 🐛 常见问题 - -### Q: 图片加载失败? -A: 确保图片文件已复制到 `src/assets/images/report/` 目录 - -### Q: 样式不生效? -A: 确保 `tailwind.config.js` 中包含了正确的 content 路径 - -### Q: 数据不显示? -A: 检查 `public/example.json` 文件格式是否正确,确保数据符合组件期望的结构 - -## 📞 技术支持 - -如有问题,请检查: -1. 控制台错误信息 -2. `public/example.json` 文件是否存在且格式正确 -3. 依赖是否正确安装 -4. 文件路径是否正确 - ---- - -**提示**:这是一个独立的 Vue3 项目,使用本地 JSON 文件作为数据源,无需后端 API 支持。 diff --git a/report-viewer/index.html b/report-viewer/index.html deleted file mode 100644 index cb56af5..0000000 --- a/report-viewer/index.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - 报告查看器 - - - - -
-
-
加载中
-
-
- - - - - - diff --git a/report-viewer/package.json b/report-viewer/package.json deleted file mode 100644 index b23c5a3..0000000 --- a/report-viewer/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "report-viewer", - "version": "1.0.0", - "private": true, - "type": "module", - "scripts": { - "dev": "vite", - "build": "vite build", - "preview": "vite preview" - }, - "dependencies": { - "@vueuse/core": "^11.3.0", - "axios": "^1.7.7", - "echarts": "^5.5.1", - "lodash": "^4.17.21", - "vue": "^3.5.12", - "vue-echarts": "^7.0.3", - "vue-router": "^4.4.5", - "vant": "^4.9.9" - }, - "devDependencies": { - "@vitejs/plugin-vue": "^5.1.4", - "@vitejs/plugin-vue-jsx": "^4.0.1", - "autoprefixer": "^10.4.20", - "postcss": "^8.4.49", - "sass-embedded": "^1.81.0", - "tailwindcss": "^3.4.15", - "terser": "^5.43.1", - "unplugin-auto-import": "^0.18.5", - "unplugin-vue-components": "^0.27.5", - "vite": "^5.4.10" - } -} - diff --git a/report-viewer/pnpm-lock.yaml b/report-viewer/pnpm-lock.yaml deleted file mode 100644 index 6fe4673..0000000 --- a/report-viewer/pnpm-lock.yaml +++ /dev/null @@ -1,3093 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@vueuse/core': - specifier: ^11.3.0 - version: 11.3.0(vue@3.5.22) - axios: - specifier: ^1.7.7 - version: 1.13.1 - echarts: - specifier: ^5.5.1 - version: 5.6.0 - lodash: - specifier: ^4.17.21 - version: 4.17.21 - vant: - specifier: ^4.9.9 - version: 4.9.21(vue@3.5.22) - vue: - specifier: ^3.5.12 - version: 3.5.22 - vue-echarts: - specifier: ^7.0.3 - version: 7.0.3(@vue/runtime-core@3.5.22)(echarts@5.6.0)(vue@3.5.22) - vue-router: - specifier: ^4.4.5 - version: 4.6.3(vue@3.5.22) - devDependencies: - '@vitejs/plugin-vue': - specifier: ^5.1.4 - version: 5.2.4(vite@5.4.21(sass-embedded@1.93.3)(sass@1.93.3)(terser@5.44.0))(vue@3.5.22) - '@vitejs/plugin-vue-jsx': - specifier: ^4.0.1 - version: 4.2.0(vite@5.4.21(sass-embedded@1.93.3)(sass@1.93.3)(terser@5.44.0))(vue@3.5.22) - autoprefixer: - specifier: ^10.4.20 - version: 10.4.21(postcss@8.5.6) - postcss: - specifier: ^8.4.49 - version: 8.5.6 - sass-embedded: - specifier: ^1.81.0 - version: 1.93.3 - tailwindcss: - specifier: ^3.4.15 - version: 3.4.18 - terser: - specifier: ^5.43.1 - version: 5.44.0 - unplugin-auto-import: - specifier: ^0.18.5 - version: 0.18.6(@vueuse/core@11.3.0(vue@3.5.22))(rollup@4.52.5) - unplugin-vue-components: - specifier: ^0.27.5 - version: 0.27.5(@babel/parser@7.28.5)(rollup@4.52.5)(vue@3.5.22) - vite: - specifier: ^5.4.10 - version: 5.4.21(sass-embedded@1.93.3)(sass@1.93.3)(terser@5.44.0) - -packages: - - '@alloc/quick-lru@5.2.0': - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} - - '@antfu/utils@0.7.10': - resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} - - '@babel/code-frame@7.27.1': - resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.28.5': - resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.28.5': - resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.28.5': - resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-annotate-as-pure@7.27.3': - resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.27.2': - resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-create-class-features-plugin@7.28.5': - resolution: {integrity: sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-globals@7.28.0': - resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-member-expression-to-functions@7.28.5': - resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.27.1': - resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.28.3': - resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-optimise-call-expression@7.27.1': - resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-plugin-utils@7.27.1': - resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-replace-supers@7.27.1': - resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.28.5': - resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.27.1': - resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.28.4': - resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.28.5': - resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-syntax-jsx@7.27.1': - resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.27.1': - resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typescript@7.28.5': - resolution: {integrity: sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/template@7.27.2': - resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.28.5': - resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.28.5': - resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} - engines: {node: '>=6.9.0'} - - '@bufbuild/protobuf@2.10.0': - resolution: {integrity: sha512-fdRs9PSrBF7QUntpZpq6BTw58fhgGJojgg39m9oFOJGZT+nip9b0so5cYY1oWl5pvemDLr0cPPsH46vwThEbpQ==} - - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - - '@jridgewell/remapping@2.3.5': - resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/source-map@0.3.11': - resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} - - '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - - '@jridgewell/trace-mapping@0.3.31': - resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@parcel/watcher-android-arm64@2.5.1': - resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - - '@parcel/watcher-darwin-arm64@2.5.1': - resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - - '@parcel/watcher-darwin-x64@2.5.1': - resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - - '@parcel/watcher-freebsd-x64@2.5.1': - resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - - '@parcel/watcher-linux-arm-glibc@2.5.1': - resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - libc: [glibc] - - '@parcel/watcher-linux-arm-musl@2.5.1': - resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - libc: [musl] - - '@parcel/watcher-linux-arm64-glibc@2.5.1': - resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@parcel/watcher-linux-arm64-musl@2.5.1': - resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@parcel/watcher-linux-x64-glibc@2.5.1': - resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@parcel/watcher-linux-x64-musl@2.5.1': - resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - libc: [musl] - - '@parcel/watcher-win32-arm64@2.5.1': - resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - - '@parcel/watcher-win32-ia32@2.5.1': - resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - - '@parcel/watcher-win32-x64@2.5.1': - resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - - '@parcel/watcher@2.5.1': - resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} - engines: {node: '>= 10.0.0'} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@rolldown/pluginutils@1.0.0-beta.45': - resolution: {integrity: sha512-Le9ulGCrD8ggInzWw/k2J8QcbPz7eGIOWqfJ2L+1R0Opm7n6J37s2hiDWlh6LJN0Lk9L5sUzMvRHKW7UxBZsQA==} - - '@rollup/pluginutils@5.3.0': - resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/rollup-android-arm-eabi@4.52.5': - resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.52.5': - resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.52.5': - resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.52.5': - resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-freebsd-arm64@4.52.5': - resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.52.5': - resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-linux-arm-gnueabihf@4.52.5': - resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==} - cpu: [arm] - os: [linux] - libc: [glibc] - - '@rollup/rollup-linux-arm-musleabihf@4.52.5': - resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==} - cpu: [arm] - os: [linux] - libc: [musl] - - '@rollup/rollup-linux-arm64-gnu@4.52.5': - resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@rollup/rollup-linux-arm64-musl@4.52.5': - resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@rollup/rollup-linux-loong64-gnu@4.52.5': - resolution: {integrity: sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==} - cpu: [loong64] - os: [linux] - libc: [glibc] - - '@rollup/rollup-linux-ppc64-gnu@4.52.5': - resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==} - cpu: [ppc64] - os: [linux] - libc: [glibc] - - '@rollup/rollup-linux-riscv64-gnu@4.52.5': - resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==} - cpu: [riscv64] - os: [linux] - libc: [glibc] - - '@rollup/rollup-linux-riscv64-musl@4.52.5': - resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==} - cpu: [riscv64] - os: [linux] - libc: [musl] - - '@rollup/rollup-linux-s390x-gnu@4.52.5': - resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==} - cpu: [s390x] - os: [linux] - libc: [glibc] - - '@rollup/rollup-linux-x64-gnu@4.52.5': - resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@rollup/rollup-linux-x64-musl@4.52.5': - resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==} - cpu: [x64] - os: [linux] - libc: [musl] - - '@rollup/rollup-openharmony-arm64@4.52.5': - resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==} - cpu: [arm64] - os: [openharmony] - - '@rollup/rollup-win32-arm64-msvc@4.52.5': - resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.52.5': - resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-gnu@4.52.5': - resolution: {integrity: sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==} - cpu: [x64] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.52.5': - resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==} - cpu: [x64] - os: [win32] - - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - - '@types/web-bluetooth@0.0.20': - resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} - - '@vant/popperjs@1.3.0': - resolution: {integrity: sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==} - - '@vant/use@1.6.0': - resolution: {integrity: sha512-PHHxeAASgiOpSmMjceweIrv2AxDZIkWXyaczksMoWvKV2YAYEhoizRuk/xFnKF+emUIi46TsQ+rvlm/t2BBCfA==} - peerDependencies: - vue: ^3.0.0 - - '@vitejs/plugin-vue-jsx@4.2.0': - resolution: {integrity: sha512-DSTrmrdLp+0LDNF77fqrKfx7X0ErRbOcUAgJL/HbSesqQwoUvUQ4uYQqaex+rovqgGcoPqVk+AwUh3v9CuiYIw==} - engines: {node: ^18.0.0 || >=20.0.0} - peerDependencies: - vite: ^5.0.0 || ^6.0.0 - vue: ^3.0.0 - - '@vitejs/plugin-vue@5.2.4': - resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} - engines: {node: ^18.0.0 || >=20.0.0} - peerDependencies: - vite: ^5.0.0 || ^6.0.0 - vue: ^3.2.25 - - '@vue/babel-helper-vue-transform-on@1.5.0': - resolution: {integrity: sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA==} - - '@vue/babel-plugin-jsx@1.5.0': - resolution: {integrity: sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - peerDependenciesMeta: - '@babel/core': - optional: true - - '@vue/babel-plugin-resolve-type@1.5.0': - resolution: {integrity: sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@vue/compiler-core@3.5.22': - resolution: {integrity: sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ==} - - '@vue/compiler-dom@3.5.22': - resolution: {integrity: sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA==} - - '@vue/compiler-sfc@3.5.22': - resolution: {integrity: sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==} - - '@vue/compiler-ssr@3.5.22': - resolution: {integrity: sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww==} - - '@vue/devtools-api@6.6.4': - resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} - - '@vue/reactivity@3.5.22': - resolution: {integrity: sha512-f2Wux4v/Z2pqc9+4SmgZC1p73Z53fyD90NFWXiX9AKVnVBEvLFOWCEgJD3GdGnlxPZt01PSlfmLqbLYzY/Fw4A==} - - '@vue/runtime-core@3.5.22': - resolution: {integrity: sha512-EHo4W/eiYeAzRTN5PCextDUZ0dMs9I8mQ2Fy+OkzvRPUYQEyK9yAjbasrMCXbLNhF7P0OUyivLjIy0yc6VrLJQ==} - - '@vue/runtime-dom@3.5.22': - resolution: {integrity: sha512-Av60jsryAkI023PlN7LsqrfPvwfxOd2yAwtReCjeuugTJTkgrksYJJstg1e12qle0NarkfhfFu1ox2D+cQotww==} - - '@vue/server-renderer@3.5.22': - resolution: {integrity: sha512-gXjo+ao0oHYTSswF+a3KRHZ1WszxIqO7u6XwNHqcqb9JfyIL/pbWrrh/xLv7jeDqla9u+LK7yfZKHih1e1RKAQ==} - peerDependencies: - vue: 3.5.22 - - '@vue/shared@3.5.22': - resolution: {integrity: sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==} - - '@vueuse/core@11.3.0': - resolution: {integrity: sha512-7OC4Rl1f9G8IT6rUfi9JrKiXy4bfmHhZ5x2Ceojy0jnd3mHNEvV4JaRygH362ror6/NZ+Nl+n13LPzGiPN8cKA==} - - '@vueuse/metadata@11.3.0': - resolution: {integrity: sha512-pwDnDspTqtTo2HwfLw4Rp6yywuuBdYnPYDq+mO38ZYKGebCUQC/nVj/PXSiK9HX5otxLz8Fn7ECPbjiRz2CC3g==} - - '@vueuse/shared@11.3.0': - resolution: {integrity: sha512-P8gSSWQeucH5821ek2mn/ciCk+MS/zoRKqdQIM3bHq6p7GXDAJLmnRRKmF5F65sAVJIfzQlwR3aDzwCn10s8hA==} - - acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} - engines: {node: '>=0.4.0'} - hasBin: true - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.2.2: - resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} - engines: {node: '>=12'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@6.2.3: - resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} - engines: {node: '>=12'} - - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - autoprefixer@10.4.21: - resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - - axios@1.13.1: - resolution: {integrity: sha512-hU4EGxxt+j7TQijx1oYdAjw4xuIp1wRQSsbMFwSthCWeBQur1eF+qJ5iQ5sN3Tw8YRzQNKb8jszgBdMDVqwJcw==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - baseline-browser-mapping@2.8.23: - resolution: {integrity: sha512-616V5YX4bepJFzNyOfce5Fa8fDJMfoxzOIzDCZwaGL8MKVpFrXqfNUoIpRn9YMI5pXf/VKgzjB4htFMsFKKdiQ==} - hasBin: true - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browserslist@4.27.0: - resolution: {integrity: sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - buffer-builder@0.2.0: - resolution: {integrity: sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==} - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - - camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - - caniuse-lite@1.0.30001752: - resolution: {integrity: sha512-vKUk7beoukxE47P5gcVNKkDRzXdVofotshHwfR9vmpeFKxmI5PBpgOMC18LUJUA/DvJ70Y7RveasIBraqsyO/g==} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - colorjs.io@0.5.2: - resolution: {integrity: sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - - confbox@0.1.8: - resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - - confbox@0.2.2: - resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true - - didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - - dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - echarts@5.6.0: - resolution: {integrity: sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==} - - electron-to-chromium@1.5.244: - resolution: {integrity: sha512-OszpBN7xZX4vWMPJwB9illkN/znA8M36GQqQxi6MNy9axWxhOfJyZZJtSLQCpEFLHP2xK33BiWx9aIuIEXVCcw==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} - - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - exsolve@1.0.7: - resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} - - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - follow-redirects@1.15.11: - resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} - engines: {node: '>=14'} - - form-data@4.0.4: - resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} - engines: {node: '>= 6'} - - fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} - hasBin: true - - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - immutable@5.1.4: - resolution: {integrity: sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - - jiti@1.21.7: - resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} - hasBin: true - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-tokens@9.0.1: - resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} - - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} - engines: {node: '>=14'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - local-pkg@0.5.1: - resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} - engines: {node: '>=14'} - - local-pkg@1.1.2: - resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} - engines: {node: '>=14'} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - magic-string@0.30.21: - resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - - mlly@1.8.0: - resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - - node-releases@2.0.27: - resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - - pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} - engines: {node: '>=12'} - - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - - pirates@4.0.7: - resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} - engines: {node: '>= 6'} - - pkg-types@1.3.1: - resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - - pkg-types@2.3.0: - resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} - - postcss-import@15.1.0: - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.0.0 - - postcss-js@4.1.0: - resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 - - postcss-load-config@6.0.1: - resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} - engines: {node: '>= 18'} - peerDependencies: - jiti: '>=1.21.0' - postcss: '>=8.0.9' - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - jiti: - optional: true - postcss: - optional: true - tsx: - optional: true - yaml: - optional: true - - postcss-nested@6.2.0: - resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss@8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} - engines: {node: ^10 || ^12 || >=14} - - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - - quansync@0.2.11: - resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} - - resolve@1.22.11: - resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} - engines: {node: '>= 0.4'} - hasBin: true - - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rollup@4.52.5: - resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - rxjs@7.8.2: - resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - - sass-embedded-all-unknown@1.93.3: - resolution: {integrity: sha512-3okGgnE41eg+CPLtAPletu6nQ4N0ij7AeW+Sl5Km4j29XcmqZQeFwYjHe1AlKTEgLi/UAONk1O8i8/lupeKMbw==} - cpu: ['!arm', '!arm64', '!riscv64', '!x64'] - - sass-embedded-android-arm64@1.93.3: - resolution: {integrity: sha512-uqUl3Kt1IqdGVAcAdbmC+NwuUJy8tM+2ZnB7/zrt6WxWVShVCRdFnWR9LT8HJr7eJN7AU8kSXxaVX/gedanPsg==} - engines: {node: '>=14.0.0'} - cpu: [arm64] - os: [android] - - sass-embedded-android-arm@1.93.3: - resolution: {integrity: sha512-8xOw9bywfOD6Wv24BgCmgjkk6tMrsOTTHcb28KDxeJtFtoxiUyMbxo0vChpPAfp2Hyg2tFFKS60s0s4JYk+Raw==} - engines: {node: '>=14.0.0'} - cpu: [arm] - os: [android] - - sass-embedded-android-riscv64@1.93.3: - resolution: {integrity: sha512-2jNJDmo+3qLocjWqYbXiBDnfgwrUeZgZFHJIwAefU7Fn66Ot7rsXl+XPwlokaCbTpj7eMFIqsRAZ/uDueXNCJg==} - engines: {node: '>=14.0.0'} - cpu: [riscv64] - os: [android] - - sass-embedded-android-x64@1.93.3: - resolution: {integrity: sha512-y0RoAU6ZenQFcjM9PjQd3cRqRTjqwSbtWLL/p68y2oFyh0QGN0+LQ826fc0ZvU/AbqCsAizkqjzOn6cRZJxTTQ==} - engines: {node: '>=14.0.0'} - cpu: [x64] - os: [android] - - sass-embedded-darwin-arm64@1.93.3: - resolution: {integrity: sha512-7zb/hpdMOdKteK17BOyyypemglVURd1Hdz6QGsggy60aUFfptTLQftLRg8r/xh1RbQAUKWFbYTNaM47J9yPxYg==} - engines: {node: '>=14.0.0'} - cpu: [arm64] - os: [darwin] - - sass-embedded-darwin-x64@1.93.3: - resolution: {integrity: sha512-Ek1Vp8ZDQEe327Lz0b7h3hjvWH3u9XjJiQzveq74RPpJQ2q6d9LfWpjiRRohM4qK6o4XOHw1X10OMWPXJtdtWg==} - engines: {node: '>=14.0.0'} - cpu: [x64] - os: [darwin] - - sass-embedded-linux-arm64@1.93.3: - resolution: {integrity: sha512-RBrHWgfd8Dd8w4fbmdRVXRrhh8oBAPyeWDTKAWw8ZEmuXfVl4ytjDuyxaVilh6rR1xTRTNpbaA/YWApBlLrrNw==} - engines: {node: '>=14.0.0'} - cpu: [arm64] - os: [linux] - libc: glibc - - sass-embedded-linux-arm@1.93.3: - resolution: {integrity: sha512-yeiv2y+dp8B4wNpd3+JsHYD0mvpXSfov7IGyQ1tMIR40qv+ROkRqYiqQvAOXf76Qwh4Y9OaYZtLpnsPjfeq6mA==} - engines: {node: '>=14.0.0'} - cpu: [arm] - os: [linux] - libc: glibc - - sass-embedded-linux-musl-arm64@1.93.3: - resolution: {integrity: sha512-PS829l+eUng+9W4PFclXGb4uA2+965NHV3/Sa5U7qTywjeeUUYTZg70dJHSqvhrBEfCc2XJABeW3adLJbyQYkw==} - engines: {node: '>=14.0.0'} - cpu: [arm64] - os: [linux] - libc: musl - - sass-embedded-linux-musl-arm@1.93.3: - resolution: {integrity: sha512-fU0fwAwbp7sBE3h5DVU5UPzvaLg7a4yONfFWkkcCp6ZrOiPuGRHXXYriWQ0TUnWy4wE+svsVuWhwWgvlb/tkKg==} - engines: {node: '>=14.0.0'} - cpu: [arm] - os: [linux] - libc: musl - - sass-embedded-linux-musl-riscv64@1.93.3: - resolution: {integrity: sha512-cK1oBY+FWQquaIGEeQ5H74KTO8cWsSWwXb/WaildOO9U6wmUypTgUYKQ0o5o/29nZbWWlM1PHuwVYTSnT23Jjg==} - engines: {node: '>=14.0.0'} - cpu: [riscv64] - os: [linux] - libc: musl - - sass-embedded-linux-musl-x64@1.93.3: - resolution: {integrity: sha512-A7wkrsHu2/I4Zpa0NMuPGkWDVV7QGGytxGyUq3opSXgAexHo/vBPlGoDXoRlSdex0cV+aTMRPjoGIfdmNlHwyg==} - engines: {node: '>=14.0.0'} - cpu: [x64] - os: [linux] - libc: musl - - sass-embedded-linux-riscv64@1.93.3: - resolution: {integrity: sha512-vWkW1+HTF5qcaHa6hO80gx/QfB6GGjJUP0xLbnAoY4pwEnw5ulGv6RM8qYr8IDhWfVt/KH+lhJ2ZFxnJareisQ==} - engines: {node: '>=14.0.0'} - cpu: [riscv64] - os: [linux] - libc: glibc - - sass-embedded-linux-x64@1.93.3: - resolution: {integrity: sha512-k6uFxs+e5jSuk1Y0niCwuq42F9ZC5UEP7P+RIOurIm8w/5QFa0+YqeW+BPWEW5M1FqVOsNZH3qGn4ahqvAEjPA==} - engines: {node: '>=14.0.0'} - cpu: [x64] - os: [linux] - libc: glibc - - sass-embedded-unknown-all@1.93.3: - resolution: {integrity: sha512-o5wj2rLpXH0C+GJKt/VpWp6AnMsCCbfFmnMAttcrsa+U3yrs/guhZ3x55KAqqUsE8F47e3frbsDL+1OuQM5DAA==} - os: ['!android', '!darwin', '!linux', '!win32'] - - sass-embedded-win32-arm64@1.93.3: - resolution: {integrity: sha512-0dOfT9moy9YmBolodwYYXtLwNr4jL4HQC9rBfv6mVrD7ud8ue2kDbn+GVzj1hEJxvEexVSmDCf7MHUTLcGs9xQ==} - engines: {node: '>=14.0.0'} - cpu: [arm64] - os: [win32] - - sass-embedded-win32-x64@1.93.3: - resolution: {integrity: sha512-wHFVfxiS9hU/sNk7KReD+lJWRp3R0SLQEX4zfOnRP2zlvI2X4IQR5aZr9GNcuMP6TmNpX0nQPZTegS8+h9RrEg==} - engines: {node: '>=14.0.0'} - cpu: [x64] - os: [win32] - - sass-embedded@1.93.3: - resolution: {integrity: sha512-+VUy01yfDqNmIVMd/LLKl2TTtY0ovZN0rTonh+FhKr65mFwIYgU9WzgIZKS7U9/SPCQvWTsTGx9jyt+qRm/XFw==} - engines: {node: '>=16.0.0'} - hasBin: true - - sass@1.93.3: - resolution: {integrity: sha512-elOcIZRTM76dvxNAjqYrucTSI0teAF/L2Lv0s6f6b7FOwcwIuA357bIE871580AjHJuSvLIRUosgV+lIWx6Rgg==} - engines: {node: '>=14.0.0'} - hasBin: true - - scule@1.3.0: - resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.2: - resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} - engines: {node: '>=12'} - - strip-literal@2.1.1: - resolution: {integrity: sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==} - - sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - sync-child-process@1.0.2: - resolution: {integrity: sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==} - engines: {node: '>=16.0.0'} - - sync-message-port@1.1.3: - resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==} - engines: {node: '>=16.0.0'} - - tailwindcss@3.4.18: - resolution: {integrity: sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ==} - engines: {node: '>=14.0.0'} - hasBin: true - - terser@5.44.0: - resolution: {integrity: sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==} - engines: {node: '>=10'} - hasBin: true - - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - - tslib@2.3.0: - resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - ufo@1.6.1: - resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} - - unimport@3.14.6: - resolution: {integrity: sha512-CYvbDaTT04Rh8bmD8jz3WPmHYZRG/NnvYVzwD6V1YAlvvKROlAeNDUBhkBGzNav2RKaeuXvlWYaa1V4Lfi/O0g==} - - unplugin-auto-import@0.18.6: - resolution: {integrity: sha512-LMFzX5DtkTj/3wZuyG5bgKBoJ7WSgzqSGJ8ppDRdlvPh45mx6t6w3OcbExQi53n3xF5MYkNGPNR/HYOL95KL2A==} - engines: {node: '>=14'} - peerDependencies: - '@nuxt/kit': ^3.2.2 - '@vueuse/core': '*' - peerDependenciesMeta: - '@nuxt/kit': - optional: true - '@vueuse/core': - optional: true - - unplugin-vue-components@0.27.5: - resolution: {integrity: sha512-m9j4goBeNwXyNN8oZHHxvIIYiG8FQ9UfmKWeNllpDvhU7btKNNELGPt+o3mckQKuPwrE7e0PvCsx+IWuDSD9Vg==} - engines: {node: '>=14'} - peerDependencies: - '@babel/parser': ^7.15.8 - '@nuxt/kit': ^3.2.2 - vue: 2 || 3 - peerDependenciesMeta: - '@babel/parser': - optional: true - '@nuxt/kit': - optional: true - - unplugin@1.16.1: - resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} - engines: {node: '>=14.0.0'} - - update-browserslist-db@1.1.4: - resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - vant@4.9.21: - resolution: {integrity: sha512-hXUoZMrLLjykimFRLDlGNd+K2iYSRh9YwLMKnsVdVZ+9inUKxpqnjhOqlZwocbnYkvJlS+febf9u9aJpDol4Pw==} - peerDependencies: - vue: ^3.0.0 - - varint@6.0.0: - resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} - - vite@5.4.21: - resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - vue-demi@0.13.11: - resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} - engines: {node: '>=12'} - hasBin: true - peerDependencies: - '@vue/composition-api': ^1.0.0-rc.1 - vue: ^3.0.0-0 || ^2.6.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - - vue-demi@0.14.10: - resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} - engines: {node: '>=12'} - hasBin: true - peerDependencies: - '@vue/composition-api': ^1.0.0-rc.1 - vue: ^3.0.0-0 || ^2.6.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - - vue-echarts@7.0.3: - resolution: {integrity: sha512-/jSxNwOsw5+dYAUcwSfkLwKPuzTQ0Cepz1LxCOpj2QcHrrmUa/Ql0eQqMmc1rTPQVrh2JQ29n2dhq75ZcHvRDw==} - peerDependencies: - '@vue/runtime-core': ^3.0.0 - echarts: ^5.5.1 - vue: ^2.7.0 || ^3.1.1 - peerDependenciesMeta: - '@vue/runtime-core': - optional: true - - vue-router@4.6.3: - resolution: {integrity: sha512-ARBedLm9YlbvQomnmq91Os7ck6efydTSpRP3nuOKCvgJOHNrhRoJDSKtee8kcL1Vf7nz6U+PMBL+hTvR3bTVQg==} - peerDependencies: - vue: ^3.5.0 - - vue@3.5.22: - resolution: {integrity: sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - webpack-virtual-modules@0.6.2: - resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - zrender@5.6.1: - resolution: {integrity: sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==} - -snapshots: - - '@alloc/quick-lru@5.2.0': {} - - '@antfu/utils@0.7.10': {} - - '@babel/code-frame@7.27.1': - dependencies: - '@babel/helper-validator-identifier': 7.28.5 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.28.5': {} - - '@babel/core@7.28.5': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.5 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) - '@babel/helpers': 7.28.4 - '@babel/parser': 7.28.5 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 - '@jridgewell/remapping': 2.3.5 - convert-source-map: 2.0.0 - debug: 4.4.3 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.28.5': - dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - jsesc: 3.1.0 - - '@babel/helper-annotate-as-pure@7.27.3': - dependencies: - '@babel/types': 7.28.5 - - '@babel/helper-compilation-targets@7.27.2': - dependencies: - '@babel/compat-data': 7.28.5 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.27.0 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.28.5 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.5 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/helper-globals@7.28.0': {} - - '@babel/helper-member-expression-to-functions@7.28.5': - dependencies: - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-imports@7.27.1': - dependencies: - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/helper-optimise-call-expression@7.27.1': - dependencies: - '@babel/types': 7.28.5 - - '@babel/helper-plugin-utils@7.27.1': {} - - '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-member-expression-to-functions': 7.28.5 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - dependencies: - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/helper-string-parser@7.27.1': {} - - '@babel/helper-validator-identifier@7.28.5': {} - - '@babel/helper-validator-option@7.27.1': {} - - '@babel/helpers@7.28.4': - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.5 - - '@babel/parser@7.28.5': - dependencies: - '@babel/types': 7.28.5 - - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-typescript@7.28.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) - transitivePeerDependencies: - - supports-color - - '@babel/template@7.27.2': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 - - '@babel/traverse@7.28.5': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.5 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.5 - '@babel/template': 7.27.2 - '@babel/types': 7.28.5 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.28.5': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - - '@bufbuild/protobuf@2.10.0': {} - - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/android-arm64@0.21.5': - optional: true - - '@esbuild/android-arm@0.21.5': - optional: true - - '@esbuild/android-x64@0.21.5': - optional: true - - '@esbuild/darwin-arm64@0.21.5': - optional: true - - '@esbuild/darwin-x64@0.21.5': - optional: true - - '@esbuild/freebsd-arm64@0.21.5': - optional: true - - '@esbuild/freebsd-x64@0.21.5': - optional: true - - '@esbuild/linux-arm64@0.21.5': - optional: true - - '@esbuild/linux-arm@0.21.5': - optional: true - - '@esbuild/linux-ia32@0.21.5': - optional: true - - '@esbuild/linux-loong64@0.21.5': - optional: true - - '@esbuild/linux-mips64el@0.21.5': - optional: true - - '@esbuild/linux-ppc64@0.21.5': - optional: true - - '@esbuild/linux-riscv64@0.21.5': - optional: true - - '@esbuild/linux-s390x@0.21.5': - optional: true - - '@esbuild/linux-x64@0.21.5': - optional: true - - '@esbuild/netbsd-x64@0.21.5': - optional: true - - '@esbuild/openbsd-x64@0.21.5': - optional: true - - '@esbuild/sunos-x64@0.21.5': - optional: true - - '@esbuild/win32-arm64@0.21.5': - optional: true - - '@esbuild/win32-ia32@0.21.5': - optional: true - - '@esbuild/win32-x64@0.21.5': - optional: true - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.2 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/remapping@2.3.5': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/source-map@0.3.11': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/sourcemap-codec@1.5.5': {} - - '@jridgewell/trace-mapping@0.3.31': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 - - '@parcel/watcher-android-arm64@2.5.1': - optional: true - - '@parcel/watcher-darwin-arm64@2.5.1': - optional: true - - '@parcel/watcher-darwin-x64@2.5.1': - optional: true - - '@parcel/watcher-freebsd-x64@2.5.1': - optional: true - - '@parcel/watcher-linux-arm-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-arm-musl@2.5.1': - optional: true - - '@parcel/watcher-linux-arm64-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-arm64-musl@2.5.1': - optional: true - - '@parcel/watcher-linux-x64-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-x64-musl@2.5.1': - optional: true - - '@parcel/watcher-win32-arm64@2.5.1': - optional: true - - '@parcel/watcher-win32-ia32@2.5.1': - optional: true - - '@parcel/watcher-win32-x64@2.5.1': - optional: true - - '@parcel/watcher@2.5.1': - dependencies: - detect-libc: 1.0.3 - is-glob: 4.0.3 - micromatch: 4.0.8 - node-addon-api: 7.1.1 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.1 - '@parcel/watcher-darwin-arm64': 2.5.1 - '@parcel/watcher-darwin-x64': 2.5.1 - '@parcel/watcher-freebsd-x64': 2.5.1 - '@parcel/watcher-linux-arm-glibc': 2.5.1 - '@parcel/watcher-linux-arm-musl': 2.5.1 - '@parcel/watcher-linux-arm64-glibc': 2.5.1 - '@parcel/watcher-linux-arm64-musl': 2.5.1 - '@parcel/watcher-linux-x64-glibc': 2.5.1 - '@parcel/watcher-linux-x64-musl': 2.5.1 - '@parcel/watcher-win32-arm64': 2.5.1 - '@parcel/watcher-win32-ia32': 2.5.1 - '@parcel/watcher-win32-x64': 2.5.1 - optional: true - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@rolldown/pluginutils@1.0.0-beta.45': {} - - '@rollup/pluginutils@5.3.0(rollup@4.52.5)': - dependencies: - '@types/estree': 1.0.8 - estree-walker: 2.0.2 - picomatch: 4.0.3 - optionalDependencies: - rollup: 4.52.5 - - '@rollup/rollup-android-arm-eabi@4.52.5': - optional: true - - '@rollup/rollup-android-arm64@4.52.5': - optional: true - - '@rollup/rollup-darwin-arm64@4.52.5': - optional: true - - '@rollup/rollup-darwin-x64@4.52.5': - optional: true - - '@rollup/rollup-freebsd-arm64@4.52.5': - optional: true - - '@rollup/rollup-freebsd-x64@4.52.5': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.52.5': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.52.5': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.52.5': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.52.5': - optional: true - - '@rollup/rollup-linux-loong64-gnu@4.52.5': - optional: true - - '@rollup/rollup-linux-ppc64-gnu@4.52.5': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.52.5': - optional: true - - '@rollup/rollup-linux-riscv64-musl@4.52.5': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.52.5': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.52.5': - optional: true - - '@rollup/rollup-linux-x64-musl@4.52.5': - optional: true - - '@rollup/rollup-openharmony-arm64@4.52.5': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.52.5': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.52.5': - optional: true - - '@rollup/rollup-win32-x64-gnu@4.52.5': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.52.5': - optional: true - - '@types/estree@1.0.8': {} - - '@types/web-bluetooth@0.0.20': {} - - '@vant/popperjs@1.3.0': {} - - '@vant/use@1.6.0(vue@3.5.22)': - dependencies: - vue: 3.5.22 - - '@vitejs/plugin-vue-jsx@4.2.0(vite@5.4.21(sass-embedded@1.93.3)(sass@1.93.3)(terser@5.44.0))(vue@3.5.22)': - dependencies: - '@babel/core': 7.28.5 - '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) - '@rolldown/pluginutils': 1.0.0-beta.45 - '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.5) - vite: 5.4.21(sass-embedded@1.93.3)(sass@1.93.3)(terser@5.44.0) - vue: 3.5.22 - transitivePeerDependencies: - - supports-color - - '@vitejs/plugin-vue@5.2.4(vite@5.4.21(sass-embedded@1.93.3)(sass@1.93.3)(terser@5.44.0))(vue@3.5.22)': - dependencies: - vite: 5.4.21(sass-embedded@1.93.3)(sass@1.93.3)(terser@5.44.0) - vue: 3.5.22 - - '@vue/babel-helper-vue-transform-on@1.5.0': {} - - '@vue/babel-plugin-jsx@1.5.0(@babel/core@7.28.5)': - dependencies: - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 - '@vue/babel-helper-vue-transform-on': 1.5.0 - '@vue/babel-plugin-resolve-type': 1.5.0(@babel/core@7.28.5) - '@vue/shared': 3.5.22 - optionalDependencies: - '@babel/core': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@vue/babel-plugin-resolve-type@1.5.0(@babel/core@7.28.5)': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/core': 7.28.5 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/parser': 7.28.5 - '@vue/compiler-sfc': 3.5.22 - transitivePeerDependencies: - - supports-color - - '@vue/compiler-core@3.5.22': - dependencies: - '@babel/parser': 7.28.5 - '@vue/shared': 3.5.22 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - - '@vue/compiler-dom@3.5.22': - dependencies: - '@vue/compiler-core': 3.5.22 - '@vue/shared': 3.5.22 - - '@vue/compiler-sfc@3.5.22': - dependencies: - '@babel/parser': 7.28.5 - '@vue/compiler-core': 3.5.22 - '@vue/compiler-dom': 3.5.22 - '@vue/compiler-ssr': 3.5.22 - '@vue/shared': 3.5.22 - estree-walker: 2.0.2 - magic-string: 0.30.21 - postcss: 8.5.6 - source-map-js: 1.2.1 - - '@vue/compiler-ssr@3.5.22': - dependencies: - '@vue/compiler-dom': 3.5.22 - '@vue/shared': 3.5.22 - - '@vue/devtools-api@6.6.4': {} - - '@vue/reactivity@3.5.22': - dependencies: - '@vue/shared': 3.5.22 - - '@vue/runtime-core@3.5.22': - dependencies: - '@vue/reactivity': 3.5.22 - '@vue/shared': 3.5.22 - - '@vue/runtime-dom@3.5.22': - dependencies: - '@vue/reactivity': 3.5.22 - '@vue/runtime-core': 3.5.22 - '@vue/shared': 3.5.22 - csstype: 3.1.3 - - '@vue/server-renderer@3.5.22(vue@3.5.22)': - dependencies: - '@vue/compiler-ssr': 3.5.22 - '@vue/shared': 3.5.22 - vue: 3.5.22 - - '@vue/shared@3.5.22': {} - - '@vueuse/core@11.3.0(vue@3.5.22)': - dependencies: - '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 11.3.0 - '@vueuse/shared': 11.3.0(vue@3.5.22) - vue-demi: 0.14.10(vue@3.5.22) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - - '@vueuse/metadata@11.3.0': {} - - '@vueuse/shared@11.3.0(vue@3.5.22)': - dependencies: - vue-demi: 0.14.10(vue@3.5.22) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - - acorn@8.15.0: {} - - ansi-regex@5.0.1: {} - - ansi-regex@6.2.2: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@6.2.3: {} - - any-promise@1.3.0: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - arg@5.0.2: {} - - asynckit@0.4.0: {} - - autoprefixer@10.4.21(postcss@8.5.6): - dependencies: - browserslist: 4.27.0 - caniuse-lite: 1.0.30001752 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.1.1 - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - axios@1.13.1: - dependencies: - follow-redirects: 1.15.11 - form-data: 4.0.4 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - - balanced-match@1.0.2: {} - - baseline-browser-mapping@2.8.23: {} - - binary-extensions@2.3.0: {} - - brace-expansion@2.0.2: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - browserslist@4.27.0: - dependencies: - baseline-browser-mapping: 2.8.23 - caniuse-lite: 1.0.30001752 - electron-to-chromium: 1.5.244 - node-releases: 2.0.27 - update-browserslist-db: 1.1.4(browserslist@4.27.0) - - buffer-builder@0.2.0: {} - - buffer-from@1.1.2: {} - - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - camelcase-css@2.0.1: {} - - caniuse-lite@1.0.30001752: {} - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - chokidar@4.0.3: - dependencies: - readdirp: 4.1.2 - optional: true - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - colorjs.io@0.5.2: {} - - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 - - commander@2.20.3: {} - - commander@4.1.1: {} - - confbox@0.1.8: {} - - confbox@0.2.2: {} - - convert-source-map@2.0.0: {} - - cross-spawn@7.0.6: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - cssesc@3.0.0: {} - - csstype@3.1.3: {} - - debug@4.4.3: - dependencies: - ms: 2.1.3 - - delayed-stream@1.0.0: {} - - detect-libc@1.0.3: - optional: true - - didyoumean@1.2.2: {} - - dlv@1.1.3: {} - - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - - eastasianwidth@0.2.0: {} - - echarts@5.6.0: - dependencies: - tslib: 2.3.0 - zrender: 5.6.1 - - electron-to-chromium@1.5.244: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - - entities@4.5.0: {} - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - - es-object-atoms@1.1.1: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.1.0: - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - esbuild@0.21.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - - escalade@3.2.0: {} - - escape-string-regexp@5.0.0: {} - - estree-walker@2.0.2: {} - - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.8 - - exsolve@1.0.7: {} - - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - fastq@1.19.1: - dependencies: - reusify: 1.1.0 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - follow-redirects@1.15.11: {} - - foreground-child@3.3.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - form-data@4.0.4: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - hasown: 2.0.2 - mime-types: 2.1.35 - - fraction.js@4.3.7: {} - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - gensync@1.0.0-beta.2: {} - - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - glob@10.4.5: - dependencies: - foreground-child: 3.3.1 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - - gopd@1.2.0: {} - - has-flag@4.0.0: {} - - has-symbols@1.1.0: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - immutable@5.1.4: {} - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-core-module@2.16.1: - dependencies: - hasown: 2.0.2 - - is-extglob@2.1.1: {} - - is-fullwidth-code-point@3.0.0: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-number@7.0.0: {} - - isexe@2.0.0: {} - - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - jiti@1.21.7: {} - - js-tokens@4.0.0: {} - - js-tokens@9.0.1: {} - - jsesc@3.1.0: {} - - json5@2.2.3: {} - - lilconfig@3.1.3: {} - - lines-and-columns@1.2.4: {} - - local-pkg@0.5.1: - dependencies: - mlly: 1.8.0 - pkg-types: 1.3.1 - - local-pkg@1.1.2: - dependencies: - mlly: 1.8.0 - pkg-types: 2.3.0 - quansync: 0.2.11 - - lodash@4.17.21: {} - - lru-cache@10.4.3: {} - - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - - magic-string@0.30.21: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - - math-intrinsics@1.1.0: {} - - merge2@1.4.1: {} - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.2 - - minipass@7.1.2: {} - - mlly@1.8.0: - dependencies: - acorn: 8.15.0 - pathe: 2.0.3 - pkg-types: 1.3.1 - ufo: 1.6.1 - - ms@2.1.3: {} - - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - - nanoid@3.3.11: {} - - node-addon-api@7.1.1: - optional: true - - node-releases@2.0.27: {} - - normalize-path@3.0.0: {} - - normalize-range@0.1.2: {} - - object-assign@4.1.1: {} - - object-hash@3.0.0: {} - - package-json-from-dist@1.0.1: {} - - path-key@3.1.1: {} - - path-parse@1.0.7: {} - - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 - - pathe@2.0.3: {} - - picocolors@1.1.1: {} - - picomatch@2.3.1: {} - - picomatch@4.0.3: {} - - pify@2.3.0: {} - - pirates@4.0.7: {} - - pkg-types@1.3.1: - dependencies: - confbox: 0.1.8 - mlly: 1.8.0 - pathe: 2.0.3 - - pkg-types@2.3.0: - dependencies: - confbox: 0.2.2 - exsolve: 1.0.7 - pathe: 2.0.3 - - postcss-import@15.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.11 - - postcss-js@4.1.0(postcss@8.5.6): - dependencies: - camelcase-css: 2.0.1 - postcss: 8.5.6 - - postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6): - dependencies: - lilconfig: 3.1.3 - optionalDependencies: - jiti: 1.21.7 - postcss: 8.5.6 - - postcss-nested@6.2.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 6.1.2 - - postcss-selector-parser@6.1.2: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-value-parser@4.2.0: {} - - postcss@8.5.6: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - proxy-from-env@1.1.0: {} - - quansync@0.2.11: {} - - queue-microtask@1.2.3: {} - - read-cache@1.0.0: - dependencies: - pify: 2.3.0 - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - - readdirp@4.1.2: - optional: true - - resolve@1.22.11: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - reusify@1.1.0: {} - - rollup@4.52.5: - dependencies: - '@types/estree': 1.0.8 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.52.5 - '@rollup/rollup-android-arm64': 4.52.5 - '@rollup/rollup-darwin-arm64': 4.52.5 - '@rollup/rollup-darwin-x64': 4.52.5 - '@rollup/rollup-freebsd-arm64': 4.52.5 - '@rollup/rollup-freebsd-x64': 4.52.5 - '@rollup/rollup-linux-arm-gnueabihf': 4.52.5 - '@rollup/rollup-linux-arm-musleabihf': 4.52.5 - '@rollup/rollup-linux-arm64-gnu': 4.52.5 - '@rollup/rollup-linux-arm64-musl': 4.52.5 - '@rollup/rollup-linux-loong64-gnu': 4.52.5 - '@rollup/rollup-linux-ppc64-gnu': 4.52.5 - '@rollup/rollup-linux-riscv64-gnu': 4.52.5 - '@rollup/rollup-linux-riscv64-musl': 4.52.5 - '@rollup/rollup-linux-s390x-gnu': 4.52.5 - '@rollup/rollup-linux-x64-gnu': 4.52.5 - '@rollup/rollup-linux-x64-musl': 4.52.5 - '@rollup/rollup-openharmony-arm64': 4.52.5 - '@rollup/rollup-win32-arm64-msvc': 4.52.5 - '@rollup/rollup-win32-ia32-msvc': 4.52.5 - '@rollup/rollup-win32-x64-gnu': 4.52.5 - '@rollup/rollup-win32-x64-msvc': 4.52.5 - fsevents: 2.3.3 - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - rxjs@7.8.2: - dependencies: - tslib: 2.8.1 - - sass-embedded-all-unknown@1.93.3: - dependencies: - sass: 1.93.3 - optional: true - - sass-embedded-android-arm64@1.93.3: - optional: true - - sass-embedded-android-arm@1.93.3: - optional: true - - sass-embedded-android-riscv64@1.93.3: - optional: true - - sass-embedded-android-x64@1.93.3: - optional: true - - sass-embedded-darwin-arm64@1.93.3: - optional: true - - sass-embedded-darwin-x64@1.93.3: - optional: true - - sass-embedded-linux-arm64@1.93.3: - optional: true - - sass-embedded-linux-arm@1.93.3: - optional: true - - sass-embedded-linux-musl-arm64@1.93.3: - optional: true - - sass-embedded-linux-musl-arm@1.93.3: - optional: true - - sass-embedded-linux-musl-riscv64@1.93.3: - optional: true - - sass-embedded-linux-musl-x64@1.93.3: - optional: true - - sass-embedded-linux-riscv64@1.93.3: - optional: true - - sass-embedded-linux-x64@1.93.3: - optional: true - - sass-embedded-unknown-all@1.93.3: - dependencies: - sass: 1.93.3 - optional: true - - sass-embedded-win32-arm64@1.93.3: - optional: true - - sass-embedded-win32-x64@1.93.3: - optional: true - - sass-embedded@1.93.3: - dependencies: - '@bufbuild/protobuf': 2.10.0 - buffer-builder: 0.2.0 - colorjs.io: 0.5.2 - immutable: 5.1.4 - rxjs: 7.8.2 - supports-color: 8.1.1 - sync-child-process: 1.0.2 - varint: 6.0.0 - optionalDependencies: - sass-embedded-all-unknown: 1.93.3 - sass-embedded-android-arm: 1.93.3 - sass-embedded-android-arm64: 1.93.3 - sass-embedded-android-riscv64: 1.93.3 - sass-embedded-android-x64: 1.93.3 - sass-embedded-darwin-arm64: 1.93.3 - sass-embedded-darwin-x64: 1.93.3 - sass-embedded-linux-arm: 1.93.3 - sass-embedded-linux-arm64: 1.93.3 - sass-embedded-linux-musl-arm: 1.93.3 - sass-embedded-linux-musl-arm64: 1.93.3 - sass-embedded-linux-musl-riscv64: 1.93.3 - sass-embedded-linux-musl-x64: 1.93.3 - sass-embedded-linux-riscv64: 1.93.3 - sass-embedded-linux-x64: 1.93.3 - sass-embedded-unknown-all: 1.93.3 - sass-embedded-win32-arm64: 1.93.3 - sass-embedded-win32-x64: 1.93.3 - - sass@1.93.3: - dependencies: - chokidar: 4.0.3 - immutable: 5.1.4 - source-map-js: 1.2.1 - optionalDependencies: - '@parcel/watcher': 2.5.1 - optional: true - - scule@1.3.0: {} - - semver@6.3.1: {} - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - signal-exit@4.1.0: {} - - source-map-js@1.2.1: {} - - source-map-support@0.5.21: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - source-map@0.6.1: {} - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.2 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-ansi@7.1.2: - dependencies: - ansi-regex: 6.2.2 - - strip-literal@2.1.1: - dependencies: - js-tokens: 9.0.1 - - sucrase@3.35.0: - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - commander: 4.1.1 - glob: 10.4.5 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.7 - ts-interface-checker: 0.1.13 - - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - - supports-preserve-symlinks-flag@1.0.0: {} - - sync-child-process@1.0.2: - dependencies: - sync-message-port: 1.1.3 - - sync-message-port@1.1.3: {} - - tailwindcss@3.4.18: - dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.6.0 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.3 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.21.7 - lilconfig: 3.1.3 - micromatch: 4.0.8 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.1.1 - postcss: 8.5.6 - postcss-import: 15.1.0(postcss@8.5.6) - postcss-js: 4.1.0(postcss@8.5.6) - postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6) - postcss-nested: 6.2.0(postcss@8.5.6) - postcss-selector-parser: 6.1.2 - resolve: 1.22.11 - sucrase: 3.35.0 - transitivePeerDependencies: - - tsx - - yaml - - terser@5.44.0: - dependencies: - '@jridgewell/source-map': 0.3.11 - acorn: 8.15.0 - commander: 2.20.3 - source-map-support: 0.5.21 - - thenify-all@1.6.0: - dependencies: - thenify: 3.3.1 - - thenify@3.3.1: - dependencies: - any-promise: 1.3.0 - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - ts-interface-checker@0.1.13: {} - - tslib@2.3.0: {} - - tslib@2.8.1: {} - - ufo@1.6.1: {} - - unimport@3.14.6(rollup@4.52.5): - dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.52.5) - acorn: 8.15.0 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - fast-glob: 3.3.3 - local-pkg: 1.1.2 - magic-string: 0.30.21 - mlly: 1.8.0 - pathe: 2.0.3 - picomatch: 4.0.3 - pkg-types: 1.3.1 - scule: 1.3.0 - strip-literal: 2.1.1 - unplugin: 1.16.1 - transitivePeerDependencies: - - rollup - - unplugin-auto-import@0.18.6(@vueuse/core@11.3.0(vue@3.5.22))(rollup@4.52.5): - dependencies: - '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.3.0(rollup@4.52.5) - fast-glob: 3.3.3 - local-pkg: 0.5.1 - magic-string: 0.30.21 - minimatch: 9.0.5 - unimport: 3.14.6(rollup@4.52.5) - unplugin: 1.16.1 - optionalDependencies: - '@vueuse/core': 11.3.0(vue@3.5.22) - transitivePeerDependencies: - - rollup - - unplugin-vue-components@0.27.5(@babel/parser@7.28.5)(rollup@4.52.5)(vue@3.5.22): - dependencies: - '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.3.0(rollup@4.52.5) - chokidar: 3.6.0 - debug: 4.4.3 - fast-glob: 3.3.3 - local-pkg: 0.5.1 - magic-string: 0.30.21 - minimatch: 9.0.5 - mlly: 1.8.0 - unplugin: 1.16.1 - vue: 3.5.22 - optionalDependencies: - '@babel/parser': 7.28.5 - transitivePeerDependencies: - - rollup - - supports-color - - unplugin@1.16.1: - dependencies: - acorn: 8.15.0 - webpack-virtual-modules: 0.6.2 - - update-browserslist-db@1.1.4(browserslist@4.27.0): - dependencies: - browserslist: 4.27.0 - escalade: 3.2.0 - picocolors: 1.1.1 - - util-deprecate@1.0.2: {} - - vant@4.9.21(vue@3.5.22): - dependencies: - '@vant/popperjs': 1.3.0 - '@vant/use': 1.6.0(vue@3.5.22) - '@vue/shared': 3.5.22 - vue: 3.5.22 - - varint@6.0.0: {} - - vite@5.4.21(sass-embedded@1.93.3)(sass@1.93.3)(terser@5.44.0): - dependencies: - esbuild: 0.21.5 - postcss: 8.5.6 - rollup: 4.52.5 - optionalDependencies: - fsevents: 2.3.3 - sass: 1.93.3 - sass-embedded: 1.93.3 - terser: 5.44.0 - - vue-demi@0.13.11(vue@3.5.22): - dependencies: - vue: 3.5.22 - - vue-demi@0.14.10(vue@3.5.22): - dependencies: - vue: 3.5.22 - - vue-echarts@7.0.3(@vue/runtime-core@3.5.22)(echarts@5.6.0)(vue@3.5.22): - dependencies: - echarts: 5.6.0 - vue: 3.5.22 - vue-demi: 0.13.11(vue@3.5.22) - optionalDependencies: - '@vue/runtime-core': 3.5.22 - transitivePeerDependencies: - - '@vue/composition-api' - - vue-router@4.6.3(vue@3.5.22): - dependencies: - '@vue/devtools-api': 6.6.4 - vue: 3.5.22 - - vue@3.5.22: - dependencies: - '@vue/compiler-dom': 3.5.22 - '@vue/compiler-sfc': 3.5.22 - '@vue/runtime-dom': 3.5.22 - '@vue/server-renderer': 3.5.22(vue@3.5.22) - '@vue/shared': 3.5.22 - - webpack-virtual-modules@0.6.2: {} - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.3 - string-width: 5.1.2 - strip-ansi: 7.1.2 - - yallist@3.1.1: {} - - zrender@5.6.1: - dependencies: - tslib: 2.3.0 diff --git a/report-viewer/postcss.config.js b/report-viewer/postcss.config.js deleted file mode 100644 index 685dd1f..0000000 --- a/report-viewer/postcss.config.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -}; - diff --git a/report-viewer/public/example.json b/report-viewer/public/example.json deleted file mode 100644 index 3fbac4f..0000000 --- a/report-viewer/public/example.json +++ /dev/null @@ -1,933 +0,0 @@ -[ - { - "feature": { - "featureName": "司法涉诉", - "sort": 4 - }, - "data": { - "apiID": "FLXG0V4B", - "data": { - "entout": { - "data": { - "administrative": {}, - "bankrupt": {}, - "cases_tree": { - "criminal": [ - { - "c_ah": "(2016)桂****刑初**号", - "case_type": 200, - "n_ajbs": "***", - "stage_type": 1 - }, - { - "c_ah": "(2016)桂**刑终***号", - "case_type": 200, - "n_ajbs": "***", - "stage_type": 2 - }, - { - "c_ah": "(2019)桂****刑初**号", - "case_type": 200, - "n_ajbs": "***", - "stage_type": 1 - }, - { - "c_ah": "(2019)桂**刑终***号", - "case_type": 200, - "n_ajbs": "***", - "stage_type": 2 - } - ] - }, - "civil": {}, - "count": { - "area_stat": "广西壮族自治区(4)", - "ay_stat": "妨害社会管理秩序罪(4)", - "count_beigao": 2, - "count_jie_beigao": 2, - "count_jie_other": 0, - "count_jie_total": 4, - "count_jie_yuangao": 2, - "count_other": 0, - "count_total": 4, - "count_wei_beigao": 0, - "count_wei_other": 0, - "count_wei_total": 0, - "count_wei_yuangao": 0, - "count_yuangao": 2, - "jafs_stat": "判决(2),维持(1),改判(1)", - "larq_stat": "2016(2),2019(2)", - "money_beigao": 0, - "money_jie_beigao": 0, - "money_jie_other": 0, - "money_jie_total": 11, - "money_jie_yuangao": 11, - "money_other": 0, - "money_total": 11, - "money_wei_beigao": 0, - "money_wei_other": 0, - "money_wei_percent": 0, - "money_wei_total": 0, - "money_wei_yuangao": 0, - "money_yuangao": 11 - }, - "crc": 1635002023, - "criminal": { - "cases": [ - { - "c_ah": "(2016)桂****刑初**号", - "c_dsrxx": [ - { - "c_mc": "何某", - "n_dsrlx": "自然人", - "n_ssdw": "被告人" - }, - { - "c_mc": "覃某", - "n_dsrlx": "自然人", - "n_ssdw": "被告人" - }, - { - "c_mc": "刘某", - "n_dsrlx": "自然人", - "n_ssdw": "被告人" - }, - { - "c_mc": "陈某", - "n_dsrlx": "自然人", - "n_ssdw": "被告人" - }, - { - "c_mc": "覃某", - "n_dsrlx": "自然人", - "n_ssdw": "被告人" - }, - { - "c_mc": "陈某", - "n_dsrlx": "自然人", - "n_ssdw": "被告人" - } - ], - "c_gkws_dsr": "公诉机关广西******人民检察院。被告人何某,男,1979年7月13日出生于广西壮族自治区******县,汉族,小学文化,农民,住广西壮族自治区******县。因涉嫌犯开设赌场罪于2015年9月13日被刑事拘留,同年10月20日被逮捕。被告人陈某,男,1987年7月17日出生于广西壮族自治区******县,汉族,小学文化,农民,住广西壮族自治区******县。因涉嫌犯开设赌场罪于2015年9月16日被刑事拘留,同年10月20日被逮捕。被告人覃某,女,1979年4月15日出生于广西壮族自治区******县,汉族,初中文化,农民,住广西壮族自治区******县。因涉嫌犯开设赌场罪于2015年11月4日被羁押,次日被刑事拘留,同月26日被逮捕。被告人覃某有,男,1972年9月21日出生于广西壮族自治区******县,汉族,小学文化,农民,住广西壮族自治区******县。因涉嫌犯开设赌场罪于2015年9月17日被刑事拘留,同年10月20日被逮捕。被告人刘某飞,男,1991年4月3日出生于广西壮族自治区******县,汉族,初中文化,农民,住广西壮族自治区******县。因涉嫌犯开设赌场罪于2015年10月28日被刑事拘留,同年11月12日被逮捕。被告人陈某观,男,1990年12月2日出生于广西壮族自治区******县,汉族,初中文化,农民,住广西壮族自治区******县。因涉嫌犯开设赌场罪于2015年10月28日被刑事拘留,同年11月12日被逮捕。", - "c_gkws_id": "29130d17-a43e-448e-84dc-64e9cd203a99", - "c_gkws_pjjg": "一、被告人何某犯开设赌场罪,判处有期徒刑一年六个月,并处罚金人民币二万元。(刑期从判决执行之日起计算,判决执行以前先行羁押的,羁押一日折抵刑期一日,即自2015年9月13日起至2017年3月12日止。罚金在本判决生效后一个月内一次缴纳,期满不缴纳的,强制缴纳。)二、被告人陈某犯开设赌场罪,判处有期徒刑一年二个月,并处罚金人民币二万元。(刑期从判决执行之日起计算,判决执行以前先行羁押的,羁押一日折抵刑期一日,即自2015年9月16日起至2016年11月15日止。罚金在本判决生效后一个月内一次缴纳,期满不缴纳的,强制缴纳。)三、被告人覃某犯开设赌场罪,判处有期徒刑一年二个月,并处罚金人民币二万元。(刑期从判决执行之日起计算,判决执行以前先行羁押的,羁押一日折抵刑期一日,即自2015年11月4日起至2017年1月3日止。罚金在本判决生效后一个月内一次缴纳,期满不缴纳的,强制缴纳。)四、被告人覃某有犯开设赌场罪,判处有期徒刑八个月,并处罚金人民币二万元。(刑期从判决执行之日起计算,判决执行以前先行羁押的,羁押一日折抵刑期一日,即自2015年9月17日起至2016年5月16日止。罚金已缴纳。)五、被告人刘某飞犯开设赌场罪,判处有期徒刑六个月,并处罚金人民币一万五千元。(刑期从判决执行之日起计算,判决执行以前先行羁押的,羁押一日折抵刑期一日,即自2015年10月28日起至2016年4月27日止。罚金已缴纳。)六、被告人陈某犯开设赌场罪,判处有期徒刑六个月,并处罚金人民币一万五千元。(刑期从判决执行之日起计算,判决执行以前先行羁押的,羁押一日折抵刑期一日,即自2015年10月28日起至2016年4月27日止。罚金已缴纳。)如不服本判决,可在收到判决书之次日起十日内,通过本院或直接向广西壮族自治区*******法院提出上诉。书面上诉的应提交上诉状正本一份,副本十三份。", - "c_id": "8917c0a3f0eab1ca1f294565be7f2dc5", - "c_slfsxx": "1,2016-01-25 09:00:00,第一审判庭,1", - "c_ssdy": "广西壮族自治区", - "d_jarq": "2016-04-01", - "d_larq": "2016-01-04", - "n_ajbs": "b9a3062adcb707f23c7fe627642fe23c", - "n_ajjzjd": "已结案", - "n_ajlx": "刑事一审", - "n_bqqpcje_level": 0, - "n_ccxzxje_level": 0, - "n_crc": 178414947, - "n_fzje_level": 0, - "n_jaay": "妨害社会管理秩序罪", - "n_jaay_tree": "妨害社会管理秩序罪,扰乱公共秩序罪,开设赌场罪", - "n_jafs": "判决", - "n_jbfy": "******县人民法院", - "n_jbfy_cj": "基层法院", - "n_laay": "妨害社会管理秩序罪", - "n_laay_tree": "妨害社会管理秩序罪,扰乱公共秩序罪,开设赌场罪", - "n_pcpcje_level": 0, - "n_slcx": "一审", - "n_ssdw": "被告人", - "n_ssdw_ys": "被告人" - }, - { - "c_ah": "(2016)桂09刑终283号", - "c_dsrxx": [ - { - "c_mc": "何某", - "n_dsrlx": "自然人", - "n_ssdw": "其他" - }, - { - "c_mc": "胡某", - "n_dsrlx": "自然人", - "n_ssdw": "其他" - }, - { - "c_mc": "张某", - "n_dsrlx": "自然人", - "n_ssdw": "其他" - }, - { - "c_mc": "李某", - "n_dsrlx": "自然人", - "n_ssdw": "上诉人" - }, - { - "c_mc": "刘某", - "n_dsrlx": "自然人", - "n_ssdw": "上诉人" - }, - { - "c_mc": "陈某", - "n_dsrlx": "自然人", - "n_ssdw": "上诉人" - } - ], - "c_gkws_dsr": "原公诉机关广西壮族自治区******县人民检察院。上诉人(原审被告人)李某,农民。因涉嫌犯开设赌场罪于2015年9月13日被刑事拘留,同年10月20日被逮捕。现羁押于******县看守所。上诉人(原审被告人)陈某(曾用名陈东东),农民。因涉嫌犯开设赌场罪于2015年9月16日被刑事拘留,同年10月20日被逮捕。现羁押于******县看守所。上诉人(原审被告人)刘某,农民。因涉嫌犯开设赌场罪于2015年11月4日被羁押,次日被刑事拘留,同月26日被逮捕。现羁押于******县看守所。原审被告人胡某,农民。因涉嫌犯开设赌场罪于2015年9月17日被刑事拘留,同年10月20日被逮捕。现羁押于******县看守所。原审被告人何某,农民。因涉嫌犯开设赌场罪于2015年10月28日被刑事拘留,同年11月12日被逮捕。现羁押于******县看守所。原审被告人张某,农民。因涉嫌犯开设赌场罪于2015年10月28日被刑事拘留,同年11月12日被逮捕。现羁押于******县看守所。", - "c_gkws_glah": "(2016)桂0923刑初90号", - "c_gkws_id": "bc9c1a6b-a2c2-4065-af1b-a58267623a4a", - "c_gkws_pjjg": "一、维持广西壮族自治区******县人民法院(2016)桂0923刑初90号刑事判决的第四、第五、第六项,即:被告人胡某犯开设赌场罪,判处有期徒刑八个月,并处罚金人民币二万元。被告人何某犯开设赌场罪,判处有期徒刑六个月,并处罚金人民币一万五千元。被告人张某犯开设赌场罪,判处有期徒刑六个月,并处罚金人民币一万五千元。二、撤销广西壮族自治区******县人民法院(2016)桂0923刑初90号刑事判决的第一、第二、第三项,即:被告人李某犯开设赌场罪,判处有期徒刑一年六个月,并处罚金人民币二万元。被告人陈某犯开设赌场罪,判处有期徒刑一年二个月,并处罚金人民币二万元。被告人刘某犯开设赌场罪,判处有期徒刑一年二个月,并处罚金人民币二万元。三、上诉人(原审被告人)李某犯开设赌场罪,判处有期徒刑一年,并处罚金人民币二万元。(刑期从判决执行之日起计算。判决执行前先行羁押的,羁押一日折抵刑期一日,即自2015年9月13日起至2016年9月12日止。罚金已缴纳。)四、上诉人(原审被告人)陈某犯开设赌场罪,判处有期徒刑十个月,并处罚金人民币二万元。(刑期从判决执行之日起计算。判决执行前先行羁押的,羁押一日折抵刑期一日,即自2015年9月16日起至2016年7月15日止;已缴纳罚金一万元,罚金余款自判决生效之次日起一个月内缴纳,逾期不缴纳的,强制缴纳。)五、上诉人(原审被告人)刘某犯开设赌场罪,判处有期徒刑十个月,并处罚金人民币二万元。(刑期从判决执行之日起计算。判决执行前先行羁押的,羁押一日折抵刑期一日,即自2015年11月4日起至2016年9月3日止;已缴纳罚金一万元,罚金余款自判决生效之次日起一个月内缴纳,逾期不缴纳的,强制缴纳。)本判决为终审判决。", - "c_id": "84362df70b3678297431c3f97130e930", - "c_ssdy": "广西壮族自治区", - "d_jarq": "2016-07-14", - "d_larq": "2016-05-16", - "n_ajbs": "a64f674f1325f5e36ad429fca45ec99e", - "n_ajjzjd": "已结案", - "n_ajlx": "刑事二审", - "n_bqqpcje_level": 0, - "n_ccxzxje_gj": 170000, - "n_ccxzxje_gj_level": 11, - "n_ccxzxje_level": 0, - "n_crc": 3645650953, - "n_dzzm": "妨害社会管理秩序罪", - "n_dzzm_tree": "妨害社会管理秩序罪,扰乱公共秩序罪,开设赌场罪", - "n_fzje_level": 0, - "n_jaay": "妨害社会管理秩序罪", - "n_jaay_tree": "妨害社会管理秩序罪,扰乱公共秩序罪,开设赌场罪", - "n_jafs": "改判", - "n_jbfy": "广西壮族自治区*******法院", - "n_jbfy_cj": "中级人民法院", - "n_laay": "妨害社会管理秩序罪", - "n_laay_tree": "妨害社会管理秩序罪,扰乱公共秩序罪,开设赌场罪", - "n_pcjg": "给予刑事处罚", - "n_pcpcje_level": 0, - "n_slcx": "二审", - "n_ssdw": "上诉人" - }, - { - "c_ah": "(2019)桂0923刑初81号", - "c_dsrxx": [ - { - "c_mc": "李某", - "n_dsrlx": "自然人", - "n_ssdw": "被告人" - }, - { - "c_mc": "张某", - "n_dsrlx": "自然人", - "n_ssdw": "被告人" - } - ], - "c_gkws_dsr": "公诉机关广西壮族自治区******县人民检察院。被告人李某。被告人张某。", - "c_gkws_id": "1ee2c6cd-15b5-44a7-8f68-aae10033e5bc", - "c_gkws_pjjg": "一、被告人李某犯开设赌场罪,判处有期徒刑二年,并处罚金人民币二万元。(刑期从判决执行之日起计算,判决执行以前先行羁押的,羁押一日折抵刑期一日,即自2018年10月16日起至2020年10月15日止。罚金在本判决生效后一个月内一次缴纳,期满不缴纳的,强制缴纳。)%1、被告人张某犯开设赌场罪,判处有期徒刑一年六个月,并处罚金人民币一万五千元。(刑期从判决执行之日起计算,判决执行以前先行羁押的,羁押一日折抵刑期一日,即自2018年10月30日起至2020年4月29日止。罚金在本判决生效后一个月内一次缴纳,期满不缴纳的,强制缴纳。)三、扣押在案的赌具扑克牌、龙虎珠、骨牌及人民币八百三十五元依法予以没收,其中人民币八百三十五元上缴国库。如不服本判决,可在收到判决书之次日起十日内,通过本院或直接向广西壮族自治区*******法院提出上诉。书面上诉的应当提交上诉状正本一份,副本九份。", - "c_id": "5f4d0aa69d456e5a4c1b025aec5d310d", - "c_slfsxx": "1,2019-03-01 09:20:00,KA6第一审判庭,1", - "c_ssdy": "广西壮族自治区", - "d_jarq": "2019-03-07", - "d_larq": "2019-02-20", - "n_ajbs": "e90f9b13a9b0f102611e6b5a2ccf6a96", - "n_ajjzjd": "已结案", - "n_ajlx": "刑事一审", - "n_bqqpcje_level": 0, - "n_ccxzxje_level": 0, - "n_crc": 3676144743, - "n_dzzm": "妨害社会管理秩序罪", - "n_dzzm_tree": "妨害社会管理秩序罪,扰乱公共秩序罪,开设赌场罪", - "n_fzje_level": 0, - "n_jaay": "妨害社会管理秩序罪", - "n_jaay_tree": "妨害社会管理秩序罪,扰乱公共秩序罪,开设赌场罪", - "n_jafs": "判决", - "n_jbfy": "******县人民法院", - "n_jbfy_cj": "基层法院", - "n_laay": "妨害社会管理秩序罪", - "n_laay_tree": "妨害社会管理秩序罪,扰乱公共秩序罪,开设赌场罪", - "n_pcjg": "给予刑事处罚", - "n_pcpcje_level": 0, - "n_slcx": "一审", - "n_ssdw": "被告人", - "n_ssdw_ys": "被告人" - } - ], - "count": { - "area_stat": "广西壮族自治区(4)", - "ay_stat": "妨害社会管理秩序罪(4)", - "count_beigao": 2, - "count_jie_beigao": 2, - "count_jie_other": 0, - "count_jie_total": 4, - "count_jie_yuangao": 2, - "count_other": 0, - "count_total": 4, - "count_wei_beigao": 0, - "count_wei_other": 0, - "count_wei_total": 0, - "count_wei_yuangao": 0, - "count_yuangao": 2, - "jafs_stat": "判决(2),维持(1),改判(1)", - "larq_stat": "2016(2),2019(2)", - "money_beigao": 0, - "money_jie_beigao": 0, - "money_jie_other": 0, - "money_jie_total": 11, - "money_jie_yuangao": 11, - "money_other": 0, - "money_total": 11, - "money_wei_beigao": 0, - "money_wei_other": 0, - "money_wei_percent": 0, - "money_wei_total": 0, - "money_wei_yuangao": 0, - "money_yuangao": 11 - } - }, - "implement": {}, - "preservation": {} - }, - "msg": "查询成功" - }, - "sxbzxr": { - "data": [ - { - "ah": "(2016)*******8160号", - "fbrq": "2016-11-09", - "id": "aa98cae8cbf0e1a87cab4c713c59faa1", - "larq": "2016-08-08", - "lxqk": "全部未履行", - "pjje_gj": 0, - "sf": "北京", - "xb": "男", - "xwqx": "其他有履行能力而拒不履行生效法律文书确定义务", - "yw": "判决如下: 一、被告张某于本判决生效后十日内偿还原告兵器装备集团财务有限责任公司贷款本金二万一千零三十一元四角七分及逾期利息(截止至二O一四年十二月二十三日,逾期利息为四千八百五十四元三角五分,自二O一四年十二月二十四日起至贷款全部清偿之日止的逾期利息按《汽车消费贷款合同》及其附件约定计算); 二、原告兵器装备集团财务有限责任公司对被告张某所有的重庆长安汽车股份有限公司生产的长安牌小型轿车一辆(车架号LS5A*******02800、发动机号CC4*****967)折价或拍卖、变卖后所得的价款享有优先受偿权; 三、驳回原告兵器装备集团财务有限责任公司其他诉讼请求。 如果被告张某未按本判决指定的期间履行给付金钱义务,应当依照《中华人民共和国民事诉讼法》第二百五十三条之规定,加倍支付迟延履行期间的债务利息。 案件受理费三百七十四元(原告兵器装备集团财务有限责任公司已预交),由原告兵器装备集团财务有限责任公司负担一百一十八元,已交纳;由被告张某负担二百五十六元,于本判决书生效后七日内交纳。 如不服本判决,可在判决书送达之日起十五日内向本院递交上诉状,并按对方当事人的人数提出副本,按照不服一审判决部分的上诉请求数额交纳上诉案件受理费,上诉于北京市第一中级人民法院。如在上诉期满后七日内未交纳上诉费的,按自动撤回上诉处理。", - "zxfy": "北京市*****人民法院", - "zxyjdw": "北京市****人民法院", - "zxyjwh": "2015年*****12658号" - }, - { - "ah": "(2016)**0211执****号", - "fbrq": "2016-09-14", - "id": "***", - "larq": "2016-09-05", - "lxqk": "全部未履行", - "pjje_gj": 0, - "sf": "**省", - "xb": "*", - "xwqx": "其他有履行能力而拒不履行生效法律文书确定义务", - "yw": "被执行人支付欠款***元...", - "zxfy": "**市**区人民法院", - "zxyjdw": "**市**区人民法院", - "zxyjwh": "(2016)**0211民初****号" - } - ], - "msg": "查询成功" - }, - "xgbzxr": { - "data": [ - { - "ah": "(20*****77号", - "fbrq": "2018-08-31", - "id": "d439c2c8e6330de7c00bbae668cb9b2b", - "zxfy": "*****人民法院" - }, - { - "ah": "(2016)*****574号", - "fbrq": "2018-08-31", - "id": "763f693a894c680d4da65fae0e488fac", - "zxfy": "*******法院" - } - ], - "msg": "查询成功" - } - }, - "success": true, - "timestamp": "2024-12-13 20:29:20" - } - }, - { - "feature": { - "featureName": "名下车辆", - "sort": 2 - }, - "data": { - "apiID": "QCXG9P1C", - "data": { - "list": [ - { - "plateColor": 0, - "plateNum": "粤A9***1", - "vehicleType": 1 - }, - { - "plateColor": 1, - "plateNum": "粤A9***2", - "vehicleType": 1 - } - ], - "vehicleCount": 2 - }, - "success": true, - "timestamp": "2025-01-20 21:19:58" - } - }, - { - "feature": { - "featureName": "谛听多维报告", - "sort": 1 - }, - "data": { - "apiID": "DWBG8B4D", - "data": { - "baseInfo": { - "age": 34, - "channel": "中国移动", - "idCard": "3203**199102***152", - "location": "江苏省徐州市沛县", - "name": "封*伟", - "phone": "158****2970", - "phoneArea": "江苏-徐州", - "sex": "男", - "status": 4 - }, - "checkSuggest": "建议拒绝", - "creditScore": 300, - "elementVerificationDetail": { - "antiFraudInfo": {}, - "belongRiskFlag": 0, - "belongRisks": { - "num": "1", - "personCity": "徐州市", - "personProvence": "江苏省", - "phoneCardType": "移动", - "phoneCity": "徐州", - "phoneProvence": "江苏" - }, - "highRiskFlag": 2, - "keyPersonCheckList": { - "fangAiFlag": 0, - "fontFlag": 0, - "jingJiFontFlag": 0, - "num": "1", - "sheJiaoTongFlag": 0, - "zhongDianFlag": 0 - }, - "onlineRiskFlag": 0, - "onlineRiskList": { - "lineType": "移动", - "num": "1", - "onLineTimes": "3,6(个月)" - }, - "personCheckDetails": { - "ele": "身份证号、姓名", - "num": "1", - "result": "一致" - }, - "phoneCheckDetails": { - "ele": "身份证号、手机号、姓名", - "num": "1", - "phoneCompany": "中国移动", - "result": "不一致" - }, - "phoneVailRiskFlag": 1, - "phoneVailRisks": { - "num": "1", - "phoneCompany": "移动", - "phoneStatus": "沉默号", - "phoneTimes": "3(单位:月)" - }, - "sfzeysFlag": 2, - "sjsysFlag": 1 - }, - "fraudRule": "高风险", - "fraudScore": 100, - "leasingRiskAssessment": { - "riskFlag": 2, - "threeCInstitutionApplicationCountLast12Months": "3/2", - "threeCInstitutionApplicationCountLast12MonthsNight": "0/0", - "threeCInstitutionApplicationCountLast12MonthsWeekend": "0/0", - "threeCInstitutionApplicationCountLast14Days": "0/0", - "threeCInstitutionApplicationCountLast14DaysNight": "0/0", - "threeCInstitutionApplicationCountLast14DaysWeekend": "0/0", - "threeCInstitutionApplicationCountLast3Days": "0/0", - "threeCInstitutionApplicationCountLast3DaysNight": "0/0", - "threeCInstitutionApplicationCountLast3DaysWeekend": "0/0", - "threeCInstitutionApplicationCountLast3Months": "2/1", - "threeCInstitutionApplicationCountLast3MonthsNight": "0/0", - "threeCInstitutionApplicationCountLast3MonthsWeekend": "0/0", - "threeCInstitutionApplicationCountLast6Months": "2/1", - "threeCInstitutionApplicationCountLast6MonthsNight": "0/0", - "threeCInstitutionApplicationCountLast6MonthsWeekend": "0/0", - "threeCInstitutionApplicationCountLast7Days": "0/0", - "threeCInstitutionApplicationCountLast7DaysNight": "0/0", - "threeCInstitutionApplicationCountLast7DaysWeekend": "0/0", - "threeCInstitutionApplicationCountLastMonth": "0/0", - "threeCInstitutionApplicationCountLastMonthNight": "0/0", - "threeCInstitutionApplicationCountLastMonthWeekend": "0/0", - "threeCPlatformApplicationCountLast12Months": "3/2", - "threeCPlatformApplicationCountLast12MonthsNight": "0/0", - "threeCPlatformApplicationCountLast12MonthsWeekend": "0/0", - "threeCPlatformApplicationCountLast14Days": "0/0", - "threeCPlatformApplicationCountLast14DaysNight": "0/0", - "threeCPlatformApplicationCountLast14DaysWeekend": "0/0", - "threeCPlatformApplicationCountLast3Days": "0/0", - "threeCPlatformApplicationCountLast3DaysNight": "0/0", - "threeCPlatformApplicationCountLast3DaysWeekend": "0/0", - "threeCPlatformApplicationCountLast3Months": "2/1", - "threeCPlatformApplicationCountLast3MonthsNight": "0/0", - "threeCPlatformApplicationCountLast3MonthsWeekend": "0/0", - "threeCPlatformApplicationCountLast6Months": "2/1", - "threeCPlatformApplicationCountLast6MonthsNight": "0/0", - "threeCPlatformApplicationCountLast6MonthsWeekend": "0/0", - "threeCPlatformApplicationCountLast7Days": "0/0", - "threeCPlatformApplicationCountLast7DaysNight": "0/0", - "threeCPlatformApplicationCountLast7DaysWeekend": "0/0", - "threeCPlatformApplicationCountLastMonth": "0/0", - "threeCPlatformApplicationCountLastMonthNight": "0/0", - "threeCPlatformApplicationCountLastMonthWeekend": "0/0" - }, - "loanEvaluationVerificationDetail": { - "businessLoanPerformances": [ - { - "last12Month": "0/0", - "last12MonthCount": "0/0", - "last15Day": "0/0", - "last15DayCount": "0/0", - "last1Month": "0/0", - "last1MonthCount": "0/0", - "last3Month": "0/0", - "last3MonthCount": "0/0", - "last6Month": "0/0", - "last6MonthCount": "0/0", - "last7Day": "0/0", - "last7DayCount": "0/0", - "type": "信用卡(类信用卡)" - }, - { - "last12Month": "0/0", - "last12MonthCount": "0/0", - "last15Day": "0/0", - "last15DayCount": "0/0", - "last1Month": "0/0", - "last1MonthCount": "0/0", - "last3Month": "0/0", - "last3MonthCount": "0/0", - "last6Month": "0/0", - "last6MonthCount": "0/0", - "last7Day": "0/0", - "last7DayCount": "0/0", - "type": "线上小额现金贷" - }, - { - "last12Month": "0/0", - "last12MonthCount": "0/0", - "last15Day": "0/0", - "last15DayCount": "0/0", - "last1Month": "0/0", - "last1MonthCount": "0/0", - "last3Month": "0/0", - "last3MonthCount": "0/0", - "last6Month": "0/0", - "last6MonthCount": "0/0", - "last7Day": "0/0", - "last7DayCount": "0/0", - "type": "汽车金融" - }, - { - "last12Month": "0/0", - "last12MonthCount": "0/0", - "last15Day": "0/0", - "last15DayCount": "0/0", - "last1Month": "0/0", - "last1MonthCount": "0/0", - "last3Month": "0/0", - "last3MonthCount": "0/0", - "last6Month": "0/0", - "last6MonthCount": "0/0", - "last7Day": "0/0", - "last7DayCount": "0/0", - "type": "线上消费分期" - }, - { - "last12Month": "0/0", - "last12MonthCount": "0/0", - "last15Day": "0/0", - "last15DayCount": "0/0", - "last1Month": "0/0", - "last1MonthCount": "0/0", - "last3Month": "0/0", - "last3MonthCount": "0/0", - "last6Month": "0/0", - "last6MonthCount": "0/0", - "last7Day": "0/0", - "last7DayCount": "0/0", - "type": "线下消费分期" - }, - { - "last12Month": "0/0", - "last12MonthCount": "0/0", - "last15Day": "0/0", - "last15DayCount": "0/0", - "last1Month": "0/0", - "last1MonthCount": "0/0", - "last3Month": "0/0", - "last3MonthCount": "0/0", - "last6Month": "0/0", - "last6MonthCount": "0/0", - "last7Day": "0/0", - "last7DayCount": "0/0", - "type": "其他" - } - ], - "customerLoanPerformances": [ - { - "last12Month": "2/0", - "last12MonthCount": "2/0", - "last15Day": "0/0", - "last15DayCount": "0/0", - "last1Month": "0/0", - "last1MonthCount": "0/0", - "last3Month": "0/0", - "last3MonthCount": "0/0", - "last6Month": "2/0", - "last6MonthCount": "2/0", - "last7Day": "0/0", - "last7DayCount": "0/0", - "type": "银行汇总" - }, - { - "last12Month": "0/0", - "last12MonthCount": "0/0", - "last15Day": "0/0", - "last15DayCount": "0/0", - "last1Month": "0/0", - "last1MonthCount": "0/0", - "last3Month": "0/0", - "last3MonthCount": "0/0", - "last6Month": "0/0", - "last6MonthCount": "0/0", - "last7Day": "0/0", - "last7DayCount": "0/0", - "type": "传统银行" - }, - { - "last12Month": "2/0", - "last12MonthCount": "2/0", - "last15Day": "0/0", - "last15DayCount": "0/0", - "last1Month": "0/0", - "last1MonthCount": "0/0", - "last3Month": "0/0", - "last3MonthCount": "0/0", - "last6Month": "2/0", - "last6MonthCount": "2/0", - "last7Day": "0/0", - "last7DayCount": "0/0", - "type": "网络零售银行" - }, - { - "last12Month": "2/2", - "last12MonthCount": "2/2", - "last15Day": "0/0", - "last15DayCount": "0/0", - "last1Month": "0/0", - "last1MonthCount": "0/0", - "last3Month": "0/0", - "last3MonthCount": "0/0", - "last6Month": "2/2", - "last6MonthCount": "2/2", - "last7Day": "0/0", - "last7DayCount": "0/0", - "type": "非银汇总" - }, - { - "last12Month": "0/0", - "last12MonthCount": "0/0", - "last15Day": "0/0", - "last15DayCount": "0/0", - "last1Month": "0/0", - "last1MonthCount": "0/0", - "last3Month": "0/0", - "last3MonthCount": "0/0", - "last6Month": "0/0", - "last6MonthCount": "0/0", - "last7Day": "0/0", - "last7DayCount": "0/0", - "type": "持牌网络小贷" - }, - { - "last12Month": "2/2", - "last12MonthCount": "2/2", - "last15Day": "0/0", - "last15DayCount": "0/0", - "last1Month": "0/0", - "last1MonthCount": "0/0", - "last3Month": "0/0", - "last3MonthCount": "0/0", - "last6Month": "2/2", - "last6MonthCount": "2/2", - "last7Day": "0/0", - "last7DayCount": "0/0", - "type": "持牌消费金融" - }, - { - "last12Month": "0/0", - "last12MonthCount": "0/0", - "last15Day": "0/0", - "last15DayCount": "0/0", - "last1Month": "0/0", - "last1MonthCount": "0/0", - "last3Month": "0/0", - "last3MonthCount": "0/0", - "last6Month": "0/0", - "last6MonthCount": "0/0", - "last7Day": "0/0", - "last7DayCount": "0/0", - "type": "持牌融资租赁机构" - }, - { - "last12Month": "0/0", - "last12MonthCount": "0/0", - "last15Day": "0/0", - "last15DayCount": "0/0", - "last1Month": "0/0", - "last1MonthCount": "0/0", - "last3Month": "0/0", - "last3MonthCount": "0/0", - "last6Month": "0/0", - "last6MonthCount": "0/0", - "last7Day": "0/0", - "last7DayCount": "0/0", - "type": "持牌汽车金融" - } - ], - "organLoanPerformances": [ - { - "applyCount": "银行", - "last12Month": "2/0", - "last15Day": "0/0", - "last1Month": "0/0", - "last3Month": "0/0", - "last6Month": "2/0", - "last7Day": "0/0" - }, - { - "applyCount": "非银", - "last12Month": "2/2", - "last15Day": "0/0", - "last1Month": "0/0", - "last3Month": "0/0", - "last6Month": "2/2", - "last7Day": "0/0" - } - ], - "riskFlag": 1, - "timeLoanPerformances": [ - { - "last12Month": "0/0", - "last12MonthCount": "0/0", - "last15Day": "0/0", - "last15DayCount": "0/0", - "last1Month": "0/0", - "last1MonthCount": "0/0", - "last3Month": "0/0", - "last3MonthCount": "0/0", - "last6Month": "0/0", - "last6MonthCount": "0/0", - "last7Day": "0/0", - "last7DayCount": "0/0", - "type": "夜间-银行" - }, - { - "last12Month": "1/1", - "last12MonthCount": "1/1", - "last15Day": "0/0", - "last15DayCount": "0/0", - "last1Month": "0/0", - "last1MonthCount": "0/0", - "last3Month": "0/0", - "last3MonthCount": "0/0", - "last6Month": "1/1", - "last6MonthCount": "1/1", - "last7Day": "0/0", - "last7DayCount": "0/0", - "type": "夜间-非银" - }, - { - "last12Month": "0/0", - "last12MonthCount": "0/0", - "last15Day": "0/0", - "last15DayCount": "0/0", - "last1Month": "0/0", - "last1MonthCount": "0/0", - "last3Month": "0/0", - "last3MonthCount": "0/0", - "last6Month": "0/0", - "last6MonthCount": "0/0", - "last7Day": "0/0", - "last7DayCount": "0/0", - "type": "周末-银行" - }, - { - "last12Month": "0/0", - "last12MonthCount": "0/0", - "last15Day": "0/0", - "last15DayCount": "0/0", - "last1Month": "0/0", - "last1MonthCount": "0/0", - "last3Month": "0/0", - "last3MonthCount": "0/0", - "last6Month": "0/0", - "last6MonthCount": "0/0", - "last7Day": "0/0", - "last7DayCount": "0/0", - "type": "周末-非银" - } - ] - }, - "multCourtInfo": { - "disinCases": [], - "disinCasesFlag": 0, - "executionCases": [ - { - "caseNumber": "(2023)赣1102执保608号", - "caseReason": "未知", - "caseStatus": "已结案", - "caseType": "财产保全执行", - "court": "上饶市信州区人民法院", - "disposalMethod": "部分保全", - "disposalTime": "2023-05-17", - "executionAmount": "", - "filingTime": "2023-05-12", - "judgmentResult": "", - "litigantType": "被申请人", - "repaidAmount": "" - } - ], - "executionCasesFlag": 1, - "legalCases": [], - "legalCasesFlag": 1, - "limitCases": [], - "limitCasesFlag": 0 - }, - "overdueRiskProduct": { - "currentOverdueAmount": "1", - "currentOverdueInstitutionCount": "(0,1000)", - "daysSinceLastSuccessfulRepayment": "160+", - "dkzhktjFlag": 2, - "hasUnsettledOverdue": "逾期", - "lyjlhyFlag": 1, - "overdueLast14Days": "逾期", - "overdueLast1Day": "未逾期", - "overdueLast30Days": "逾期", - "overdueLast7Days": "未逾期", - "repaymentFailureAmountLast14Days": "(0,1000)", - "repaymentFailureAmountLast3Months": "(0,10000)", - "repaymentFailureAmountLast6Months": "[2000,30000)", - "repaymentFailureAmountLast7Days": "0", - "repaymentFailureAmountLastMonth": "(0,6000)", - "repaymentFailureCountLast14Days": "[5,15)", - "repaymentFailureCountLast3Months": "[56,+)", - "repaymentFailureCountLast6Months": "[70,+)", - "repaymentFailureCountLast7Days": "0", - "repaymentFailureCountLastMonth": "[5,34)", - "repaymentSuccessAmountLast14Days": "-", - "repaymentSuccessAmountLast3Months": "-", - "repaymentSuccessAmountLast6Months": "-", - "repaymentSuccessAmountLast7Days": "-", - "repaymentSuccessAmountLastMonth": "-", - "repaymentSuccessCountLast14Days": "-", - "repaymentSuccessCountLast3Months": "-", - "repaymentSuccessCountLast6Months": "-", - "repaymentSuccessCountLast7Days": "-", - "repaymentSuccessCountLastMonth": "-", - "settledInstitutionCount": "[17,+)", - "specialListVerification": [], - "totalLoanInstitutions": "[14,+)", - "totalLoanRepaymentAmount": "[68000,+)", - "tsmdyzFlag": 0 - }, - "reportUrl": "http://www.zhichajinkong.cn/manager/index.html#/v-report?tranId=******", - "riskSupervision": { - "details": "无", - "leastApplicationTime": "2025-06-02", - "rentalRiskListIdCardRelationsPhones": 0, - "rentalRiskListPhoneRelationsIdCards": 0 - }, - "riskWarning": { - "frequentApplicationRecent": 0, - "frequentBankApplications": 0, - "frequentNonBankApplications": 0, - "frequentRentalApplications": 0, - "gazdyrhyRiskCounts": 1, - "gazdyrhyRiskHighCounts": 1, - "gazdyrhyRiskMiddleCounts": 0, - "hasCriminalRecord": 0, - "highDebtPressure": 0, - "highFraudGangLevel": 1, - "hitAdministrativeCase": 0, - "hitBankruptcyAndLiquidation": 0, - "hitCivilCase": 0, - "hitCompensationCase": 0, - "hitCriminalRisk": 1, - "hitCurrentOverdue": 0, - "hitDirectlyUnderCase": 0, - "hitExecutionCase": 0, - "hitHighRiskBankLastTwoYears": 0, - "hitHighRiskNonBankLastTwoYears": 0, - "hitPreservationReview": 0, - "idCardPhoneProvinceMismatch": 0, - "idCardRiskCounts": 0, - "idCardRiskHighCounts": 0, - "idCardRiskMiddleCounts": 0, - "idCardTwoElementMismatch": 0, - "isAntiFraudInfo": 0, - "isDisrupSocial": 1, - "isEconomyFront": 0, - "isKeyPerson": 0, - "isTrafficRelated": 0, - "jdpgRiskCounts": 1, - "jdpgRiskHighCounts": 0, - "jdpgRiskMiddleCounts": 1, - "level": "C2,C5", - "moreFrequentBankApplications": 0, - "moreFrequentNonBankApplications": 0, - "noPhoneDuration": 1, - "phoneThreeElementMismatch": 0, - "sfhyfxRiskCounts": 1, - "sfhyfxRiskHighCounts": 1, - "sfhyfxRiskMiddleCounts": 0, - "shortPhoneDuration": 0, - "shortPhoneDurationSlight": 0, - "shortPhoneRiskCounts": 1, - "shortPhoneRiskHighCounts": 1, - "shortPhoneRiskMiddleCounts": 0, - "totalRiskCounts": 4, - "veryFrequentRentalApplications": 0, - "yqfxRiskCounts": 0, - "yqfxRiskHighCounts": 0, - "yqfxRiskMiddleCounts": 0, - "zlfxpgRiskCounts": 0, - "zlfxpgRiskHighCounts": 0, - "zlfxpgRiskMiddleCounts": 0 - }, - "standLiveInfo": { - "finalAuthResult": "0", - "inTime": "3", - "verification": "1" - }, - "success": true, - "timestamp": "2025-01-20 21:19:58", - "verifyRule": "高风险" - } - } - }, - { - "feature": { - "featureName": "收入评估", - "sort": 3 - }, - "data": { - "apiID": "JRZQ09J8", - "data": { - "level": "G" - }, - "success": true, - "timestamp": "2025-01-20 21:19:58" - } - } -] \ No newline at end of file diff --git a/report-viewer/src/App.vue b/report-viewer/src/App.vue deleted file mode 100644 index 1d0e26e..0000000 --- a/report-viewer/src/App.vue +++ /dev/null @@ -1,8 +0,0 @@ - - - - diff --git a/report-viewer/src/assets/base.css b/report-viewer/src/assets/base.css deleted file mode 100644 index 654ec72..0000000 --- a/report-viewer/src/assets/base.css +++ /dev/null @@ -1,25 +0,0 @@ -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - font-weight: normal; -} -html { - margin: auto !important; - @apply max-w-lg; - min-width: 320px; -} -body { - background-color: #f8f8f8; - min-height: 100vh; - transition: color 0.5s, background-color 0.5s; - line-height: 1.6; - font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, - Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", - sans-serif; - font-size: 15px; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} diff --git a/report-viewer/src/assets/colors.css b/report-viewer/src/assets/colors.css deleted file mode 100644 index c4fab8d..0000000 --- a/report-viewer/src/assets/colors.css +++ /dev/null @@ -1,54 +0,0 @@ -/* 统一颜色变量管理文件 */ -:root { - /* ===== 主题色系 ===== */ - --color-primary: #5d7eeb; - --color-primary-50: #f0f3ff; - --color-primary-100: #e1e8ff; - --color-primary-200: #c3d1ff; - --color-primary-300: #a5baff; - --color-primary-400: #87a3ff; - --color-primary-500: #5d7eeb; - --color-primary-600: #4a63bc; - --color-primary-700: #38488d; - --color-primary-800: #252d5e; - --color-primary-900: #13122f; - - --color-primary-light: rgba(93, 126, 235, 0.1); - --color-primary-medium: rgba(93, 126, 235, 0.15); - --color-primary-dark: rgba(93, 126, 235, 0.8); - - /* ===== 语义化颜色 ===== */ - --color-success: #07c160; - --color-warning: #ff976a; - --color-danger: #ee0a24; - --color-info: #1989fa; - - /* ===== 中性色系 ===== */ - --color-gray-50: #fafafa; - --color-gray-100: #f5f5f5; - --color-gray-200: #e5e5e5; - --color-gray-300: #d4d4d4; - --color-gray-400: #a3a3a3; - --color-gray-500: #737373; - --color-gray-600: #525252; - --color-gray-700: #404040; - --color-gray-800: #262626; - --color-gray-900: #171717; - - /* ===== 文本颜色 ===== */ - --color-text-primary: #323233; - --color-text-secondary: #646566; - --color-text-tertiary: #969799; - - /* ===== 背景颜色 ===== */ - --color-bg-primary: #ffffff; - --color-bg-secondary: #fafafa; - --color-bg-tertiary: #f8f8f8; - - /* ===== 边框颜色 ===== */ - --color-border-primary: #ebedf0; -} - -.bg-primary { - background-color: var(--color-primary) !important; -} diff --git a/report-viewer/src/assets/images/empty.svg b/report-viewer/src/assets/images/empty.svg deleted file mode 100644 index fbecc14..0000000 --- a/report-viewer/src/assets/images/empty.svg +++ /dev/null @@ -1,75 +0,0 @@ - - 空空如也 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/report-viewer/src/assets/images/public_security_record_icon.png b/report-viewer/src/assets/images/public_security_record_icon.png deleted file mode 100644 index 6fe667f..0000000 Binary files a/report-viewer/src/assets/images/public_security_record_icon.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/ajgl.png b/report-viewer/src/assets/images/report/ajgl.png deleted file mode 100644 index d8ce93d..0000000 Binary files a/report-viewer/src/assets/images/report/ajgl.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/ajlxfb.png b/report-viewer/src/assets/images/report/ajlxfb.png deleted file mode 100644 index e012d69..0000000 Binary files a/report-viewer/src/assets/images/report/ajlxfb.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/backgroundcheck_inquire_bg.png b/report-viewer/src/assets/images/report/backgroundcheck_inquire_bg.png deleted file mode 100644 index a786bfe..0000000 Binary files a/report-viewer/src/assets/images/report/backgroundcheck_inquire_bg.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/backgroundcheck_report_bg.png b/report-viewer/src/assets/images/report/backgroundcheck_report_bg.png deleted file mode 100644 index 5e5656f..0000000 Binary files a/report-viewer/src/assets/images/report/backgroundcheck_report_bg.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/bysj.png b/report-viewer/src/assets/images/report/bysj.png deleted file mode 100644 index 5918eaa..0000000 Binary files a/report-viewer/src/assets/images/report/bysj.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/dkxwfx.png b/report-viewer/src/assets/images/report/dkxwfx.png deleted file mode 100644 index 8ead64c..0000000 Binary files a/report-viewer/src/assets/images/report/dkxwfx.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/dqfx_inquire_bg.jpg b/report-viewer/src/assets/images/report/dqfx_inquire_bg.jpg deleted file mode 100644 index 951930a..0000000 Binary files a/report-viewer/src/assets/images/report/dqfx_inquire_bg.jpg and /dev/null differ diff --git a/report-viewer/src/assets/images/report/dqfx_report_bg.jpg b/report-viewer/src/assets/images/report/dqfx_report_bg.jpg deleted file mode 100644 index 6771500..0000000 Binary files a/report-viewer/src/assets/images/report/dqfx_report_bg.jpg and /dev/null differ diff --git a/report-viewer/src/assets/images/report/dwtzls.png b/report-viewer/src/assets/images/report/dwtzls.png deleted file mode 100644 index f6e5008..0000000 Binary files a/report-viewer/src/assets/images/report/dwtzls.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/fqzgz.png b/report-viewer/src/assets/images/report/fqzgz.png deleted file mode 100644 index 52fbe22..0000000 Binary files a/report-viewer/src/assets/images/report/fqzgz.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/fqzpf.png b/report-viewer/src/assets/images/report/fqzpf.png deleted file mode 100644 index 2ef6d23..0000000 Binary files a/report-viewer/src/assets/images/report/fqzpf.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/fsbq.png b/report-viewer/src/assets/images/report/fsbq.png deleted file mode 100644 index 3a011a2..0000000 Binary files a/report-viewer/src/assets/images/report/fsbq.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/fx.png b/report-viewer/src/assets/images/report/fx.png deleted file mode 100644 index b41d56d..0000000 Binary files a/report-viewer/src/assets/images/report/fx.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/fxbs.png b/report-viewer/src/assets/images/report/fxbs.png deleted file mode 100644 index ea0b045..0000000 Binary files a/report-viewer/src/assets/images/report/fxbs.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/fxgl.png b/report-viewer/src/assets/images/report/fxgl.png deleted file mode 100644 index cdbc0db..0000000 Binary files a/report-viewer/src/assets/images/report/fxgl.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/fxmd.png b/report-viewer/src/assets/images/report/fxmd.png deleted file mode 100644 index ef3255d..0000000 Binary files a/report-viewer/src/assets/images/report/fxmd.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/fxzbxq.png b/report-viewer/src/assets/images/report/fxzbxq.png deleted file mode 100644 index 354b12f..0000000 Binary files a/report-viewer/src/assets/images/report/fxzbxq.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/fxzl.png b/report-viewer/src/assets/images/report/fxzl.png deleted file mode 100644 index 6139e37..0000000 Binary files a/report-viewer/src/assets/images/report/fxzl.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/fybgt.png b/report-viewer/src/assets/images/report/fybgt.png deleted file mode 100644 index 9460e11..0000000 Binary files a/report-viewer/src/assets/images/report/fybgt.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/gazdryhy.png b/report-viewer/src/assets/images/report/gazdryhy.png deleted file mode 100644 index 15d94e4..0000000 Binary files a/report-viewer/src/assets/images/report/gazdryhy.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/gazdryhycp.png b/report-viewer/src/assets/images/report/gazdryhycp.png deleted file mode 100644 index 2a4d02a..0000000 Binary files a/report-viewer/src/assets/images/report/gazdryhycp.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/gfx.png b/report-viewer/src/assets/images/report/gfx.png deleted file mode 100644 index ce402b1..0000000 Binary files a/report-viewer/src/assets/images/report/gfx.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/gl.png b/report-viewer/src/assets/images/report/gl.png deleted file mode 100644 index c2f9cab..0000000 Binary files a/report-viewer/src/assets/images/report/gl.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/glfxjd.png b/report-viewer/src/assets/images/report/glfxjd.png deleted file mode 100644 index 9f5d4a3..0000000 Binary files a/report-viewer/src/assets/images/report/glfxjd.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/glfxjd2.png b/report-viewer/src/assets/images/report/glfxjd2.png deleted file mode 100644 index adb5429..0000000 Binary files a/report-viewer/src/assets/images/report/glfxjd2.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/glsfz.png b/report-viewer/src/assets/images/report/glsfz.png deleted file mode 100644 index 6852094..0000000 Binary files a/report-viewer/src/assets/images/report/glsfz.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/glsjh.png b/report-viewer/src/assets/images/report/glsjh.png deleted file mode 100644 index ab59c59..0000000 Binary files a/report-viewer/src/assets/images/report/glsjh.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/glzdryhy2.png b/report-viewer/src/assets/images/report/glzdryhy2.png deleted file mode 100644 index 6a29b63..0000000 Binary files a/report-viewer/src/assets/images/report/glzdryhy2.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/grdsj_inquire_bg.jpg b/report-viewer/src/assets/images/report/grdsj_inquire_bg.jpg deleted file mode 100644 index 5d90eb2..0000000 Binary files a/report-viewer/src/assets/images/report/grdsj_inquire_bg.jpg and /dev/null differ diff --git a/report-viewer/src/assets/images/report/grdsj_report_bg.jpg b/report-viewer/src/assets/images/report/grdsj_report_bg.jpg deleted file mode 100644 index 197db31..0000000 Binary files a/report-viewer/src/assets/images/report/grdsj_report_bg.jpg and /dev/null differ diff --git a/report-viewer/src/assets/images/report/gsdfx.png b/report-viewer/src/assets/images/report/gsdfx.png deleted file mode 100644 index 6a59cc4..0000000 Binary files a/report-viewer/src/assets/images/report/gsdfx.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/hktj.png b/report-viewer/src/assets/images/report/hktj.png deleted file mode 100644 index 68ca536..0000000 Binary files a/report-viewer/src/assets/images/report/hktj.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/hkylfx.png b/report-viewer/src/assets/images/report/hkylfx.png deleted file mode 100644 index 095ae8a..0000000 Binary files a/report-viewer/src/assets/images/report/hkylfx.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/homeservice_inquire_bg.jpg b/report-viewer/src/assets/images/report/homeservice_inquire_bg.jpg deleted file mode 100644 index 82fb69c..0000000 Binary files a/report-viewer/src/assets/images/report/homeservice_inquire_bg.jpg and /dev/null differ diff --git a/report-viewer/src/assets/images/report/homeservice_report_bg.jpg b/report-viewer/src/assets/images/report/homeservice_report_bg.jpg deleted file mode 100644 index 48f861b..0000000 Binary files a/report-viewer/src/assets/images/report/homeservice_report_bg.jpg and /dev/null differ diff --git a/report-viewer/src/assets/images/report/j24gyfkqk.png b/report-viewer/src/assets/images/report/j24gyfkqk.png deleted file mode 100644 index 1eab157..0000000 Binary files a/report-viewer/src/assets/images/report/j24gyfkqk.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/jdpg.png b/report-viewer/src/assets/images/report/jdpg.png deleted file mode 100644 index e0ade16..0000000 Binary files a/report-viewer/src/assets/images/report/jdpg.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/jdpggl.png b/report-viewer/src/assets/images/report/jdpggl.png deleted file mode 100644 index 2f9455a..0000000 Binary files a/report-viewer/src/assets/images/report/jdpggl.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/jgfx.png b/report-viewer/src/assets/images/report/jgfx.png deleted file mode 100644 index 55cab79..0000000 Binary files a/report-viewer/src/assets/images/report/jgfx.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/jgztxx.png b/report-viewer/src/assets/images/report/jgztxx.png deleted file mode 100644 index d03b1e2..0000000 Binary files a/report-viewer/src/assets/images/report/jgztxx.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/jyyc.png b/report-viewer/src/assets/images/report/jyyc.png deleted file mode 100644 index 7d749e8..0000000 Binary files a/report-viewer/src/assets/images/report/jyyc.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/khlxjdbx.png b/report-viewer/src/assets/images/report/khlxjdbx.png deleted file mode 100644 index 56cbb65..0000000 Binary files a/report-viewer/src/assets/images/report/khlxjdbx.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/lsjdxw.png b/report-viewer/src/assets/images/report/lsjdxw.png deleted file mode 100644 index b0fdd82..0000000 Binary files a/report-viewer/src/assets/images/report/lsjdxw.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/lyqk.png b/report-viewer/src/assets/images/report/lyqk.png deleted file mode 100644 index 4b2bf98..0000000 Binary files a/report-viewer/src/assets/images/report/lyqk.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/lyxxxq.png b/report-viewer/src/assets/images/report/lyxxxq.png deleted file mode 100644 index 38c797c..0000000 Binary files a/report-viewer/src/assets/images/report/lyxxxq.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/marriage_inquire_bg.jpg b/report-viewer/src/assets/images/report/marriage_inquire_bg.jpg deleted file mode 100644 index db0ac26..0000000 Binary files a/report-viewer/src/assets/images/report/marriage_inquire_bg.jpg and /dev/null differ diff --git a/report-viewer/src/assets/images/report/marriage_report_bg.jpg b/report-viewer/src/assets/images/report/marriage_report_bg.jpg deleted file mode 100644 index 5752966..0000000 Binary files a/report-viewer/src/assets/images/report/marriage_report_bg.jpg and /dev/null differ diff --git a/report-viewer/src/assets/images/report/ms.png b/report-viewer/src/assets/images/report/ms.png deleted file mode 100644 index fa7d7b0..0000000 Binary files a/report-viewer/src/assets/images/report/ms.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/mzfxbz.png b/report-viewer/src/assets/images/report/mzfxbz.png deleted file mode 100644 index c98045b..0000000 Binary files a/report-viewer/src/assets/images/report/mzfxbz.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/qsgg.png b/report-viewer/src/assets/images/report/qsgg.png deleted file mode 100644 index 4666fde..0000000 Binary files a/report-viewer/src/assets/images/report/qsgg.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/qspc.png b/report-viewer/src/assets/images/report/qspc.png deleted file mode 100644 index 7cdf628..0000000 Binary files a/report-viewer/src/assets/images/report/qspc.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/rkpm.png b/report-viewer/src/assets/images/report/rkpm.png deleted file mode 100644 index 8ba7f91..0000000 Binary files a/report-viewer/src/assets/images/report/rkpm.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/rzls.png b/report-viewer/src/assets/images/report/rzls.png deleted file mode 100644 index 4b13c82..0000000 Binary files a/report-viewer/src/assets/images/report/rzls.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/sagg.png b/report-viewer/src/assets/images/report/sagg.png deleted file mode 100644 index 179e0c2..0000000 Binary files a/report-viewer/src/assets/images/report/sagg.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/sdszhycp.png b/report-viewer/src/assets/images/report/sdszhycp.png deleted file mode 100644 index c49bc10..0000000 Binary files a/report-viewer/src/assets/images/report/sdszhycp.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/sdszryhy.png b/report-viewer/src/assets/images/report/sdszryhy.png deleted file mode 100644 index ba9df65..0000000 Binary files a/report-viewer/src/assets/images/report/sdszryhy.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/sfxxhy.png b/report-viewer/src/assets/images/report/sfxxhy.png deleted file mode 100644 index 323da72..0000000 Binary files a/report-viewer/src/assets/images/report/sfxxhy.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/sfz.png b/report-viewer/src/assets/images/report/sfz.png deleted file mode 100644 index f565538..0000000 Binary files a/report-viewer/src/assets/images/report/sfz.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/shjy.png b/report-viewer/src/assets/images/report/shjy.png deleted file mode 100644 index 2c9ee0c..0000000 Binary files a/report-viewer/src/assets/images/report/shjy.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/sjh.png b/report-viewer/src/assets/images/report/sjh.png deleted file mode 100644 index 17c053e..0000000 Binary files a/report-viewer/src/assets/images/report/sjh.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/sjqsfx.png b/report-viewer/src/assets/images/report/sjqsfx.png deleted file mode 100644 index 263b29d..0000000 Binary files a/report-viewer/src/assets/images/report/sjqsfx.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/slbg_inquire_icon.png b/report-viewer/src/assets/images/report/slbg_inquire_icon.png deleted file mode 100644 index eb96d45..0000000 Binary files a/report-viewer/src/assets/images/report/slbg_inquire_icon.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/srbq.png b/report-viewer/src/assets/images/report/srbq.png deleted file mode 100644 index e60b337..0000000 Binary files a/report-viewer/src/assets/images/report/srbq.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/srpg.png b/report-viewer/src/assets/images/report/srpg.png deleted file mode 100644 index f3b3dc9..0000000 Binary files a/report-viewer/src/assets/images/report/srpg.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/ssfxfx.png b/report-viewer/src/assets/images/report/ssfxfx.png deleted file mode 100644 index d7d3e6b..0000000 Binary files a/report-viewer/src/assets/images/report/ssfxfx.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/ssfxztgl.png b/report-viewer/src/assets/images/report/ssfxztgl.png deleted file mode 100644 index eb78d68..0000000 Binary files a/report-viewer/src/assets/images/report/ssfxztgl.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/sswf.png b/report-viewer/src/assets/images/report/sswf.png deleted file mode 100644 index 816aeb1..0000000 Binary files a/report-viewer/src/assets/images/report/sswf.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/swfx.png b/report-viewer/src/assets/images/report/swfx.png deleted file mode 100644 index 3ad1954..0000000 Binary files a/report-viewer/src/assets/images/report/swfx.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/sxaj.png b/report-viewer/src/assets/images/report/sxaj.png deleted file mode 100644 index 700fe0a..0000000 Binary files a/report-viewer/src/assets/images/report/sxaj.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/sxxq.png b/report-viewer/src/assets/images/report/sxxq.png deleted file mode 100644 index f0ac43c..0000000 Binary files a/report-viewer/src/assets/images/report/sxxq.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/title.png b/report-viewer/src/assets/images/report/title.png deleted file mode 100644 index 3e84f7f..0000000 Binary files a/report-viewer/src/assets/images/report/title.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/title_inquire_bg.png b/report-viewer/src/assets/images/report/title_inquire_bg.png deleted file mode 100644 index 472f6bb..0000000 Binary files a/report-viewer/src/assets/images/report/title_inquire_bg.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/title_inquire_bg_green.png b/report-viewer/src/assets/images/report/title_inquire_bg_green.png deleted file mode 100644 index 73eedbf..0000000 Binary files a/report-viewer/src/assets/images/report/title_inquire_bg_green.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/title_inquire_bg_red.png b/report-viewer/src/assets/images/report/title_inquire_bg_red.png deleted file mode 100644 index f31ccbf..0000000 Binary files a/report-viewer/src/assets/images/report/title_inquire_bg_red.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/wmz.png b/report-viewer/src/assets/images/report/wmz.png deleted file mode 100644 index 7564469..0000000 Binary files a/report-viewer/src/assets/images/report/wmz.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/wxts_icon.png b/report-viewer/src/assets/images/report/wxts_icon.png deleted file mode 100644 index d2da4b8..0000000 Binary files a/report-viewer/src/assets/images/report/wxts_icon.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/xgaj.png b/report-viewer/src/assets/images/report/xgaj.png deleted file mode 100644 index 73a1232..0000000 Binary files a/report-viewer/src/assets/images/report/xgaj.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/xl.png b/report-viewer/src/assets/images/report/xl.png deleted file mode 100644 index 59ca3dd..0000000 Binary files a/report-viewer/src/assets/images/report/xl.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/xs.png b/report-viewer/src/assets/images/report/xs.png deleted file mode 100644 index 27dc5bc..0000000 Binary files a/report-viewer/src/assets/images/report/xs.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/xwqy_inquire_bg.jpg b/report-viewer/src/assets/images/report/xwqy_inquire_bg.jpg deleted file mode 100644 index 973144d..0000000 Binary files a/report-viewer/src/assets/images/report/xwqy_inquire_bg.jpg and /dev/null differ diff --git a/report-viewer/src/assets/images/report/xwqy_report_bg.jpg b/report-viewer/src/assets/images/report/xwqy_report_bg.jpg deleted file mode 100644 index a9f1613..0000000 Binary files a/report-viewer/src/assets/images/report/xwqy_report_bg.jpg and /dev/null differ diff --git a/report-viewer/src/assets/images/report/xxlx.png b/report-viewer/src/assets/images/report/xxlx.png deleted file mode 100644 index bf3cd9c..0000000 Binary files a/report-viewer/src/assets/images/report/xxlx.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/xxxs.png b/report-viewer/src/assets/images/report/xxxs.png deleted file mode 100644 index c5461ca..0000000 Binary files a/report-viewer/src/assets/images/report/xxxs.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/xypf.png b/report-viewer/src/assets/images/report/xypf.png deleted file mode 100644 index efa7956..0000000 Binary files a/report-viewer/src/assets/images/report/xypf.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/xypf2.png b/report-viewer/src/assets/images/report/xypf2.png deleted file mode 100644 index 983f507..0000000 Binary files a/report-viewer/src/assets/images/report/xypf2.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/xz.png b/report-viewer/src/assets/images/report/xz.png deleted file mode 100644 index 039dd18..0000000 Binary files a/report-viewer/src/assets/images/report/xz.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/xzcf.png b/report-viewer/src/assets/images/report/xzcf.png deleted file mode 100644 index 542b1fe..0000000 Binary files a/report-viewer/src/assets/images/report/xzcf.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/ycsjdjdbx.png b/report-viewer/src/assets/images/report/ycsjdjdbx.png deleted file mode 100644 index 0ba9fcb..0000000 Binary files a/report-viewer/src/assets/images/report/ycsjdjdbx.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/yqfx.png b/report-viewer/src/assets/images/report/yqfx.png deleted file mode 100644 index 3d5a624..0000000 Binary files a/report-viewer/src/assets/images/report/yqfx.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/yqfxgl.png b/report-viewer/src/assets/images/report/yqfxgl.png deleted file mode 100644 index 3db496a..0000000 Binary files a/report-viewer/src/assets/images/report/yqfxgl.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/yqsjfb.png b/report-viewer/src/assets/images/report/yqsjfb.png deleted file mode 100644 index a8638af..0000000 Binary files a/report-viewer/src/assets/images/report/yqsjfb.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/yqxxxq.png b/report-viewer/src/assets/images/report/yqxxxq.png deleted file mode 100644 index dd0222f..0000000 Binary files a/report-viewer/src/assets/images/report/yqxxxq.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/yshc.png b/report-viewer/src/assets/images/report/yshc.png deleted file mode 100644 index 18abfe6..0000000 Binary files a/report-viewer/src/assets/images/report/yshc.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/ywlxjdbx.png b/report-viewer/src/assets/images/report/ywlxjdbx.png deleted file mode 100644 index f6c4fc3..0000000 Binary files a/report-viewer/src/assets/images/report/ywlxjdbx.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/yyshy.png b/report-viewer/src/assets/images/report/yyshy.png deleted file mode 100644 index f89c747..0000000 Binary files a/report-viewer/src/assets/images/report/yyshy.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/yzgz.png b/report-viewer/src/assets/images/report/yzgz.png deleted file mode 100644 index 903ac38..0000000 Binary files a/report-viewer/src/assets/images/report/yzgz.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/zfx.png b/report-viewer/src/assets/images/report/zfx.png deleted file mode 100644 index 7a9f3a5..0000000 Binary files a/report-viewer/src/assets/images/report/zfx.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/zk.png b/report-viewer/src/assets/images/report/zk.png deleted file mode 100644 index 0387bdb..0000000 Binary files a/report-viewer/src/assets/images/report/zk.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/zlfxpg.png b/report-viewer/src/assets/images/report/zlfxpg.png deleted file mode 100644 index 22d1283..0000000 Binary files a/report-viewer/src/assets/images/report/zlfxpg.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/zlfxpggl.png b/report-viewer/src/assets/images/report/zlfxpggl.png deleted file mode 100644 index f79d48a..0000000 Binary files a/report-viewer/src/assets/images/report/zlfxpggl.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/zlxw.png b/report-viewer/src/assets/images/report/zlxw.png deleted file mode 100644 index 180c1c3..0000000 Binary files a/report-viewer/src/assets/images/report/zlxw.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/zq.png b/report-viewer/src/assets/images/report/zq.png deleted file mode 100644 index 79c5be6..0000000 Binary files a/report-viewer/src/assets/images/report/zq.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/zwsc.png b/report-viewer/src/assets/images/report/zwsc.png deleted file mode 100644 index f17c762..0000000 Binary files a/report-viewer/src/assets/images/report/zwsc.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/zxaj.png b/report-viewer/src/assets/images/report/zxaj.png deleted file mode 100644 index 1c066ea..0000000 Binary files a/report-viewer/src/assets/images/report/zxaj.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/zyjy.png b/report-viewer/src/assets/images/report/zyjy.png deleted file mode 100644 index 6f51ca0..0000000 Binary files a/report-viewer/src/assets/images/report/zyjy.png and /dev/null differ diff --git a/report-viewer/src/assets/images/report/zymc.png b/report-viewer/src/assets/images/report/zymc.png deleted file mode 100644 index b46e3ac..0000000 Binary files a/report-viewer/src/assets/images/report/zymc.png and /dev/null differ diff --git a/report-viewer/src/assets/main.css b/report-viewer/src/assets/main.css deleted file mode 100644 index 934a8ba..0000000 --- a/report-viewer/src/assets/main.css +++ /dev/null @@ -1,15 +0,0 @@ -@import "./base.css"; -@import "./colors.css"; -@import "./vant-theme.css"; -@tailwind base; -@tailwind components; -@tailwind utilities; - -#app { - margin: 0 auto; - font-weight: normal; -} - -.card { - @apply shadow rounded-xl bg-white p-6; -} diff --git a/report-viewer/src/assets/nprogress.css b/report-viewer/src/assets/nprogress.css deleted file mode 100644 index 4a3f6d2..0000000 --- a/report-viewer/src/assets/nprogress.css +++ /dev/null @@ -1,10 +0,0 @@ -/* 进度条颜色 */ -#nprogress .bar { - background: var(--color-primary); /* 主题色 */ - height: 4px; /* 修改高度 */ -} - -/* 圆圈颜色 */ -#nprogress .peg { - box-shadow: 0 0 10px var(--color-primary), 0 0 5px var(--color-primary); -} diff --git a/report-viewer/src/assets/vant-theme.css b/report-viewer/src/assets/vant-theme.css deleted file mode 100644 index eeccc09..0000000 --- a/report-viewer/src/assets/vant-theme.css +++ /dev/null @@ -1,30 +0,0 @@ -/* Vant 主题色配置 */ -:root { - --van-theme-primary: #5d7eeb; - --van-theme-primary-light: rgba(93, 126, 235, 0.1); - --van-theme-primary-dark: rgba(93, 126, 235, 0.8); - --van-primary-color: var(--van-theme-primary); - --van-success-color: #07c160; - --van-warning-color: #ff976a; - --van-danger-color: #ee0a24; - --van-text-color: #323233; - --van-text-color-2: #646566; - --van-text-color-3: #969799; - --van-background-color: #ffffff; - --van-background-color-light: #fafafa; - --van-border-color: #ebedf0; - --van-active-color: #f2f3f5; -} - -.van-button--primary { - background-color: var(--van-theme-primary) !important; - border-color: var(--van-theme-primary) !important; -} - -.van-tabs__line { - background-color: var(--van-theme-primary) !important; -} - -.van-tab--active { - color: var(--van-theme-primary) !important; -} diff --git a/report-viewer/src/auto-imports.d.ts b/report-viewer/src/auto-imports.d.ts deleted file mode 100644 index f41844c..0000000 --- a/report-viewer/src/auto-imports.d.ts +++ /dev/null @@ -1,298 +0,0 @@ -/* eslint-disable */ -/* prettier-ignore */ -// @ts-nocheck -// noinspection JSUnusedGlobalSymbols -// Generated by unplugin-auto-import -// biome-ignore lint: disable -export {} -declare global { - const EffectScope: typeof import('vue')['EffectScope'] - const asyncComputed: typeof import('@vueuse/core')['asyncComputed'] - const autoResetRef: typeof import('@vueuse/core')['autoResetRef'] - const computed: typeof import('vue')['computed'] - const computedAsync: typeof import('@vueuse/core')['computedAsync'] - const computedEager: typeof import('@vueuse/core')['computedEager'] - const computedInject: typeof import('@vueuse/core')['computedInject'] - const computedWithControl: typeof import('@vueuse/core')['computedWithControl'] - const controlledComputed: typeof import('@vueuse/core')['controlledComputed'] - const controlledRef: typeof import('@vueuse/core')['controlledRef'] - const createApp: typeof import('vue')['createApp'] - const createEventHook: typeof import('@vueuse/core')['createEventHook'] - const createGlobalState: typeof import('@vueuse/core')['createGlobalState'] - const createInjectionState: typeof import('@vueuse/core')['createInjectionState'] - const createReactiveFn: typeof import('@vueuse/core')['createReactiveFn'] - const createReusableTemplate: typeof import('@vueuse/core')['createReusableTemplate'] - const createSharedComposable: typeof import('@vueuse/core')['createSharedComposable'] - const createTemplatePromise: typeof import('@vueuse/core')['createTemplatePromise'] - const createUnrefFn: typeof import('@vueuse/core')['createUnrefFn'] - const customRef: typeof import('vue')['customRef'] - const debouncedRef: typeof import('@vueuse/core')['debouncedRef'] - const debouncedWatch: typeof import('@vueuse/core')['debouncedWatch'] - const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] - const defineComponent: typeof import('vue')['defineComponent'] - const eagerComputed: typeof import('@vueuse/core')['eagerComputed'] - const effectScope: typeof import('vue')['effectScope'] - const extendRef: typeof import('@vueuse/core')['extendRef'] - const getCurrentInstance: typeof import('vue')['getCurrentInstance'] - const getCurrentScope: typeof import('vue')['getCurrentScope'] - const h: typeof import('vue')['h'] - const ignorableWatch: typeof import('@vueuse/core')['ignorableWatch'] - const inject: typeof import('vue')['inject'] - const injectLocal: typeof import('@vueuse/core')['injectLocal'] - const isDefined: typeof import('@vueuse/core')['isDefined'] - const isProxy: typeof import('vue')['isProxy'] - const isReactive: typeof import('vue')['isReactive'] - const isReadonly: typeof import('vue')['isReadonly'] - const isRef: typeof import('vue')['isRef'] - const makeDestructurable: typeof import('@vueuse/core')['makeDestructurable'] - const markRaw: typeof import('vue')['markRaw'] - const nextTick: typeof import('vue')['nextTick'] - const onActivated: typeof import('vue')['onActivated'] - const onBeforeMount: typeof import('vue')['onBeforeMount'] - const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave'] - const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate'] - const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] - const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] - const onClickOutside: typeof import('@vueuse/core')['onClickOutside'] - const onDeactivated: typeof import('vue')['onDeactivated'] - const onErrorCaptured: typeof import('vue')['onErrorCaptured'] - const onKeyStroke: typeof import('@vueuse/core')['onKeyStroke'] - const onLongPress: typeof import('@vueuse/core')['onLongPress'] - const onMounted: typeof import('vue')['onMounted'] - const onRenderTracked: typeof import('vue')['onRenderTracked'] - const onRenderTriggered: typeof import('vue')['onRenderTriggered'] - const onScopeDispose: typeof import('vue')['onScopeDispose'] - const onServerPrefetch: typeof import('vue')['onServerPrefetch'] - const onStartTyping: typeof import('@vueuse/core')['onStartTyping'] - const onUnmounted: typeof import('vue')['onUnmounted'] - const onUpdated: typeof import('vue')['onUpdated'] - const onWatcherCleanup: typeof import('vue')['onWatcherCleanup'] - const pausableWatch: typeof import('@vueuse/core')['pausableWatch'] - const provide: typeof import('vue')['provide'] - const provideLocal: typeof import('@vueuse/core')['provideLocal'] - const reactify: typeof import('@vueuse/core')['reactify'] - const reactifyObject: typeof import('@vueuse/core')['reactifyObject'] - const reactive: typeof import('vue')['reactive'] - const reactiveComputed: typeof import('@vueuse/core')['reactiveComputed'] - const reactiveOmit: typeof import('@vueuse/core')['reactiveOmit'] - const reactivePick: typeof import('@vueuse/core')['reactivePick'] - const readonly: typeof import('vue')['readonly'] - const ref: typeof import('vue')['ref'] - const refAutoReset: typeof import('@vueuse/core')['refAutoReset'] - const refDebounced: typeof import('@vueuse/core')['refDebounced'] - const refDefault: typeof import('@vueuse/core')['refDefault'] - const refThrottled: typeof import('@vueuse/core')['refThrottled'] - const refWithControl: typeof import('@vueuse/core')['refWithControl'] - const resolveComponent: typeof import('vue')['resolveComponent'] - const resolveRef: typeof import('@vueuse/core')['resolveRef'] - const resolveUnref: typeof import('@vueuse/core')['resolveUnref'] - const shallowReactive: typeof import('vue')['shallowReactive'] - const shallowReadonly: typeof import('vue')['shallowReadonly'] - const shallowRef: typeof import('vue')['shallowRef'] - const syncRef: typeof import('@vueuse/core')['syncRef'] - const syncRefs: typeof import('@vueuse/core')['syncRefs'] - const templateRef: typeof import('@vueuse/core')['templateRef'] - const throttledRef: typeof import('@vueuse/core')['throttledRef'] - const throttledWatch: typeof import('@vueuse/core')['throttledWatch'] - const toRaw: typeof import('vue')['toRaw'] - const toReactive: typeof import('@vueuse/core')['toReactive'] - const toRef: typeof import('vue')['toRef'] - const toRefs: typeof import('vue')['toRefs'] - const toValue: typeof import('vue')['toValue'] - const triggerRef: typeof import('vue')['triggerRef'] - const tryOnBeforeMount: typeof import('@vueuse/core')['tryOnBeforeMount'] - const tryOnBeforeUnmount: typeof import('@vueuse/core')['tryOnBeforeUnmount'] - const tryOnMounted: typeof import('@vueuse/core')['tryOnMounted'] - const tryOnScopeDispose: typeof import('@vueuse/core')['tryOnScopeDispose'] - const tryOnUnmounted: typeof import('@vueuse/core')['tryOnUnmounted'] - const unref: typeof import('vue')['unref'] - const unrefElement: typeof import('@vueuse/core')['unrefElement'] - const until: typeof import('@vueuse/core')['until'] - const useActiveElement: typeof import('@vueuse/core')['useActiveElement'] - const useAnimate: typeof import('@vueuse/core')['useAnimate'] - const useApiFetch: typeof import('./composables/useApiFetch.js')['default'] - const useArrayDifference: typeof import('@vueuse/core')['useArrayDifference'] - const useArrayEvery: typeof import('@vueuse/core')['useArrayEvery'] - const useArrayFilter: typeof import('@vueuse/core')['useArrayFilter'] - const useArrayFind: typeof import('@vueuse/core')['useArrayFind'] - const useArrayFindIndex: typeof import('@vueuse/core')['useArrayFindIndex'] - const useArrayFindLast: typeof import('@vueuse/core')['useArrayFindLast'] - const useArrayIncludes: typeof import('@vueuse/core')['useArrayIncludes'] - const useArrayJoin: typeof import('@vueuse/core')['useArrayJoin'] - const useArrayMap: typeof import('@vueuse/core')['useArrayMap'] - const useArrayReduce: typeof import('@vueuse/core')['useArrayReduce'] - const useArraySome: typeof import('@vueuse/core')['useArraySome'] - const useArrayUnique: typeof import('@vueuse/core')['useArrayUnique'] - const useAsyncQueue: typeof import('@vueuse/core')['useAsyncQueue'] - const useAsyncState: typeof import('@vueuse/core')['useAsyncState'] - const useAttrs: typeof import('vue')['useAttrs'] - const useBase64: typeof import('@vueuse/core')['useBase64'] - const useBattery: typeof import('@vueuse/core')['useBattery'] - const useBluetooth: typeof import('@vueuse/core')['useBluetooth'] - const useBreakpoints: typeof import('@vueuse/core')['useBreakpoints'] - const useBroadcastChannel: typeof import('@vueuse/core')['useBroadcastChannel'] - const useBrowserLocation: typeof import('@vueuse/core')['useBrowserLocation'] - const useCached: typeof import('@vueuse/core')['useCached'] - const useClipboard: typeof import('@vueuse/core')['useClipboard'] - const useClipboardItems: typeof import('@vueuse/core')['useClipboardItems'] - const useCloned: typeof import('@vueuse/core')['useCloned'] - const useColorMode: typeof import('@vueuse/core')['useColorMode'] - const useConfirmDialog: typeof import('@vueuse/core')['useConfirmDialog'] - const useCounter: typeof import('@vueuse/core')['useCounter'] - const useCssModule: typeof import('vue')['useCssModule'] - const useCssVar: typeof import('@vueuse/core')['useCssVar'] - const useCssVars: typeof import('vue')['useCssVars'] - const useCurrentElement: typeof import('@vueuse/core')['useCurrentElement'] - const useCycleList: typeof import('@vueuse/core')['useCycleList'] - const useDark: typeof import('@vueuse/core')['useDark'] - const useDateFormat: typeof import('@vueuse/core')['useDateFormat'] - const useDebounce: typeof import('@vueuse/core')['useDebounce'] - const useDebounceFn: typeof import('@vueuse/core')['useDebounceFn'] - const useDebouncedRefHistory: typeof import('@vueuse/core')['useDebouncedRefHistory'] - const useDeviceMotion: typeof import('@vueuse/core')['useDeviceMotion'] - const useDeviceOrientation: typeof import('@vueuse/core')['useDeviceOrientation'] - const useDevicePixelRatio: typeof import('@vueuse/core')['useDevicePixelRatio'] - const useDevicesList: typeof import('@vueuse/core')['useDevicesList'] - const useDisplayMedia: typeof import('@vueuse/core')['useDisplayMedia'] - const useDocumentVisibility: typeof import('@vueuse/core')['useDocumentVisibility'] - const useDraggable: typeof import('@vueuse/core')['useDraggable'] - const useDropZone: typeof import('@vueuse/core')['useDropZone'] - const useElementBounding: typeof import('@vueuse/core')['useElementBounding'] - const useElementByPoint: typeof import('@vueuse/core')['useElementByPoint'] - const useElementHover: typeof import('@vueuse/core')['useElementHover'] - const useElementSize: typeof import('@vueuse/core')['useElementSize'] - const useElementVisibility: typeof import('@vueuse/core')['useElementVisibility'] - const useEventBus: typeof import('@vueuse/core')['useEventBus'] - const useEventListener: typeof import('@vueuse/core')['useEventListener'] - const useEventSource: typeof import('@vueuse/core')['useEventSource'] - const useEyeDropper: typeof import('@vueuse/core')['useEyeDropper'] - const useFavicon: typeof import('@vueuse/core')['useFavicon'] - const useFetch: typeof import('@vueuse/core')['useFetch'] - const useFileDialog: typeof import('@vueuse/core')['useFileDialog'] - const useFileSystemAccess: typeof import('@vueuse/core')['useFileSystemAccess'] - const useFocus: typeof import('@vueuse/core')['useFocus'] - const useFocusWithin: typeof import('@vueuse/core')['useFocusWithin'] - const useFps: typeof import('@vueuse/core')['useFps'] - const useFullscreen: typeof import('@vueuse/core')['useFullscreen'] - const useGamepad: typeof import('@vueuse/core')['useGamepad'] - const useGeolocation: typeof import('@vueuse/core')['useGeolocation'] - const useId: typeof import('vue')['useId'] - const useIdle: typeof import('@vueuse/core')['useIdle'] - const useImage: typeof import('@vueuse/core')['useImage'] - const useInfiniteScroll: typeof import('@vueuse/core')['useInfiniteScroll'] - const useIntersectionObserver: typeof import('@vueuse/core')['useIntersectionObserver'] - const useInterval: typeof import('@vueuse/core')['useInterval'] - const useIntervalFn: typeof import('@vueuse/core')['useIntervalFn'] - const useKeyModifier: typeof import('@vueuse/core')['useKeyModifier'] - const useLastChanged: typeof import('@vueuse/core')['useLastChanged'] - const useLink: typeof import('vue-router')['useLink'] - const useLocalStorage: typeof import('@vueuse/core')['useLocalStorage'] - const useMagicKeys: typeof import('@vueuse/core')['useMagicKeys'] - const useManualRefHistory: typeof import('@vueuse/core')['useManualRefHistory'] - const useMediaControls: typeof import('@vueuse/core')['useMediaControls'] - const useMediaQuery: typeof import('@vueuse/core')['useMediaQuery'] - const useMemoize: typeof import('@vueuse/core')['useMemoize'] - const useMemory: typeof import('@vueuse/core')['useMemory'] - const useModel: typeof import('vue')['useModel'] - const useMounted: typeof import('@vueuse/core')['useMounted'] - const useMouse: typeof import('@vueuse/core')['useMouse'] - const useMouseInElement: typeof import('@vueuse/core')['useMouseInElement'] - const useMousePressed: typeof import('@vueuse/core')['useMousePressed'] - const useMutationObserver: typeof import('@vueuse/core')['useMutationObserver'] - const useNavigatorLanguage: typeof import('@vueuse/core')['useNavigatorLanguage'] - const useNetwork: typeof import('@vueuse/core')['useNetwork'] - const useNow: typeof import('@vueuse/core')['useNow'] - const useObjectUrl: typeof import('@vueuse/core')['useObjectUrl'] - const useOffsetPagination: typeof import('@vueuse/core')['useOffsetPagination'] - const useOnline: typeof import('@vueuse/core')['useOnline'] - const usePageLeave: typeof import('@vueuse/core')['usePageLeave'] - const useParallax: typeof import('@vueuse/core')['useParallax'] - const useParentElement: typeof import('@vueuse/core')['useParentElement'] - const usePerformanceObserver: typeof import('@vueuse/core')['usePerformanceObserver'] - const usePermission: typeof import('@vueuse/core')['usePermission'] - const usePointer: typeof import('@vueuse/core')['usePointer'] - const usePointerLock: typeof import('@vueuse/core')['usePointerLock'] - const usePointerSwipe: typeof import('@vueuse/core')['usePointerSwipe'] - const usePreferredColorScheme: typeof import('@vueuse/core')['usePreferredColorScheme'] - const usePreferredContrast: typeof import('@vueuse/core')['usePreferredContrast'] - const usePreferredDark: typeof import('@vueuse/core')['usePreferredDark'] - const usePreferredLanguages: typeof import('@vueuse/core')['usePreferredLanguages'] - const usePreferredReducedMotion: typeof import('@vueuse/core')['usePreferredReducedMotion'] - const usePrevious: typeof import('@vueuse/core')['usePrevious'] - const useRafFn: typeof import('@vueuse/core')['useRafFn'] - const useRefHistory: typeof import('@vueuse/core')['useRefHistory'] - const useResizeObserver: typeof import('@vueuse/core')['useResizeObserver'] - const useRoute: typeof import('vue-router')['useRoute'] - const useRouter: typeof import('vue-router')['useRouter'] - const useScreenOrientation: typeof import('@vueuse/core')['useScreenOrientation'] - const useScreenSafeArea: typeof import('@vueuse/core')['useScreenSafeArea'] - const useScriptTag: typeof import('@vueuse/core')['useScriptTag'] - const useScroll: typeof import('@vueuse/core')['useScroll'] - const useScrollLock: typeof import('@vueuse/core')['useScrollLock'] - const useSessionStorage: typeof import('@vueuse/core')['useSessionStorage'] - const useShare: typeof import('@vueuse/core')['useShare'] - const useSlots: typeof import('vue')['useSlots'] - const useSorted: typeof import('@vueuse/core')['useSorted'] - const useSpeechRecognition: typeof import('@vueuse/core')['useSpeechRecognition'] - const useSpeechSynthesis: typeof import('@vueuse/core')['useSpeechSynthesis'] - const useStepper: typeof import('@vueuse/core')['useStepper'] - const useStorage: typeof import('@vueuse/core')['useStorage'] - const useStorageAsync: typeof import('@vueuse/core')['useStorageAsync'] - const useStyleTag: typeof import('@vueuse/core')['useStyleTag'] - const useSupported: typeof import('@vueuse/core')['useSupported'] - const useSwipe: typeof import('@vueuse/core')['useSwipe'] - const useTemplateRef: typeof import('vue')['useTemplateRef'] - const useTemplateRefsList: typeof import('@vueuse/core')['useTemplateRefsList'] - const useTextDirection: typeof import('@vueuse/core')['useTextDirection'] - const useTextSelection: typeof import('@vueuse/core')['useTextSelection'] - const useTextareaAutosize: typeof import('@vueuse/core')['useTextareaAutosize'] - const useThrottle: typeof import('@vueuse/core')['useThrottle'] - const useThrottleFn: typeof import('@vueuse/core')['useThrottleFn'] - const useThrottledRefHistory: typeof import('@vueuse/core')['useThrottledRefHistory'] - const useTimeAgo: typeof import('@vueuse/core')['useTimeAgo'] - const useTimeout: typeof import('@vueuse/core')['useTimeout'] - const useTimeoutFn: typeof import('@vueuse/core')['useTimeoutFn'] - const useTimeoutPoll: typeof import('@vueuse/core')['useTimeoutPoll'] - const useTimestamp: typeof import('@vueuse/core')['useTimestamp'] - const useTitle: typeof import('@vueuse/core')['useTitle'] - const useToNumber: typeof import('@vueuse/core')['useToNumber'] - const useToString: typeof import('@vueuse/core')['useToString'] - const useToggle: typeof import('@vueuse/core')['useToggle'] - const useTransition: typeof import('@vueuse/core')['useTransition'] - const useUrlSearchParams: typeof import('@vueuse/core')['useUrlSearchParams'] - const useUserMedia: typeof import('@vueuse/core')['useUserMedia'] - const useVModel: typeof import('@vueuse/core')['useVModel'] - const useVModels: typeof import('@vueuse/core')['useVModels'] - const useVibrate: typeof import('@vueuse/core')['useVibrate'] - const useVirtualList: typeof import('@vueuse/core')['useVirtualList'] - const useWakeLock: typeof import('@vueuse/core')['useWakeLock'] - const useWebNotification: typeof import('@vueuse/core')['useWebNotification'] - const useWebSocket: typeof import('@vueuse/core')['useWebSocket'] - const useWebWorker: typeof import('@vueuse/core')['useWebWorker'] - const useWebWorkerFn: typeof import('@vueuse/core')['useWebWorkerFn'] - const useWindowFocus: typeof import('@vueuse/core')['useWindowFocus'] - const useWindowScroll: typeof import('@vueuse/core')['useWindowScroll'] - const useWindowSize: typeof import('@vueuse/core')['useWindowSize'] - const watch: typeof import('vue')['watch'] - const watchArray: typeof import('@vueuse/core')['watchArray'] - const watchAtMost: typeof import('@vueuse/core')['watchAtMost'] - const watchDebounced: typeof import('@vueuse/core')['watchDebounced'] - const watchDeep: typeof import('@vueuse/core')['watchDeep'] - const watchEffect: typeof import('vue')['watchEffect'] - const watchIgnorable: typeof import('@vueuse/core')['watchIgnorable'] - const watchImmediate: typeof import('@vueuse/core')['watchImmediate'] - const watchOnce: typeof import('@vueuse/core')['watchOnce'] - const watchPausable: typeof import('@vueuse/core')['watchPausable'] - const watchPostEffect: typeof import('vue')['watchPostEffect'] - const watchSyncEffect: typeof import('vue')['watchSyncEffect'] - const watchThrottled: typeof import('@vueuse/core')['watchThrottled'] - const watchTriggerable: typeof import('@vueuse/core')['watchTriggerable'] - const watchWithFilter: typeof import('@vueuse/core')['watchWithFilter'] - const whenever: typeof import('@vueuse/core')['whenever'] -} -// for type re-export -declare global { - // @ts-ignore - export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue' - import('vue') -} diff --git a/report-viewer/src/components/BaseReport.vue b/report-viewer/src/components/BaseReport.vue deleted file mode 100644 index cfdc7ec..0000000 --- a/report-viewer/src/components/BaseReport.vue +++ /dev/null @@ -1,632 +0,0 @@ - - - - - diff --git a/report-viewer/src/components/GaugeChart.vue b/report-viewer/src/components/GaugeChart.vue deleted file mode 100644 index 4331751..0000000 --- a/report-viewer/src/components/GaugeChart.vue +++ /dev/null @@ -1,254 +0,0 @@ - - - - - \ No newline at end of file diff --git a/report-viewer/src/components/LEmpty.vue b/report-viewer/src/components/LEmpty.vue deleted file mode 100644 index 20f22fc..0000000 --- a/report-viewer/src/components/LEmpty.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - - - \ No newline at end of file diff --git a/report-viewer/src/components/LRemark.vue b/report-viewer/src/components/LRemark.vue deleted file mode 100644 index d833a87..0000000 --- a/report-viewer/src/components/LRemark.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - - - \ No newline at end of file diff --git a/report-viewer/src/components/LTitle.vue b/report-viewer/src/components/LTitle.vue deleted file mode 100644 index 4c4d89a..0000000 --- a/report-viewer/src/components/LTitle.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - - - diff --git a/report-viewer/src/components/ShareReportButton.vue b/report-viewer/src/components/ShareReportButton.vue deleted file mode 100644 index 29af5d5..0000000 --- a/report-viewer/src/components/ShareReportButton.vue +++ /dev/null @@ -1,91 +0,0 @@ - - - - - diff --git a/report-viewer/src/components/StyledTabs.vue b/report-viewer/src/components/StyledTabs.vue deleted file mode 100644 index 96a2e42..0000000 --- a/report-viewer/src/components/StyledTabs.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - - - diff --git a/report-viewer/src/components/TitleBanner.vue b/report-viewer/src/components/TitleBanner.vue deleted file mode 100644 index f2b2684..0000000 --- a/report-viewer/src/components/TitleBanner.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - - - diff --git a/report-viewer/src/components/VerificationCard.vue b/report-viewer/src/components/VerificationCard.vue deleted file mode 100644 index 66972ea..0000000 --- a/report-viewer/src/components/VerificationCard.vue +++ /dev/null @@ -1,180 +0,0 @@ - - - - - diff --git a/report-viewer/src/composables/useApiFetch.js b/report-viewer/src/composables/useApiFetch.js deleted file mode 100644 index d1aca43..0000000 --- a/report-viewer/src/composables/useApiFetch.js +++ /dev/null @@ -1,72 +0,0 @@ -// 简化的 useApiFetch,用于独立项目 -import { createFetch } from "@vueuse/core"; - -// 创建全局的 fetch 实例 -const useApiFetch = createFetch({ - baseUrl: "/api/v1", // 可配置的 API 基础路径 - options: { - async beforeFetch({ url, options }) { - showLoadingToast({ - message: "加载中...", - forbidClick: true, - duration: 0, - loadingType: "spinner", - }); - - const timestamp = Date.now(); - const separator = url.includes("?") ? "&" : "?"; - url += `${separator}t=${timestamp}`; - - // 在请求前添加通用的 Header - const token = localStorage.getItem("token"); - let platform = "h5"; - const userAgent = navigator.userAgent.toLowerCase(); - const isWechat = /micromessenger/.test(userAgent); - if (isWechat) { - platform = "wxh5"; - } - options.headers['X-Platform'] = platform; - - if (token) { - options.headers = { - ...options.headers, - Authorization: `${token}`, - }; - } - return { url, options }; - }, - async afterFetch({ data, response }) { - closeToast(); - // 全局处理响应 - if (response.status === 401) { - localStorage.removeItem("token"); - localStorage.removeItem('refreshAfter'); - localStorage.removeItem('accessExpire'); - } - - if (data.code !== 200) { - if (data.code !== 200002 && data.code !== 200003 && data.code !== 200004) { - showToast({ message: data.msg }); - } - } - return { data, response }; - }, - async onFetchError({ error, response }) { - console.log("error", error); - closeToast(); - if (response.status === 401) { - localStorage.removeItem("token"); - localStorage.removeItem('refreshAfter'); - localStorage.removeItem('accessExpire'); - } else { - if (typeof error === "string") { - showToast({ message: error }); - } - } - return { error }; - }, - }, -}); - -export default useApiFetch; - diff --git a/report-viewer/src/main.js b/report-viewer/src/main.js deleted file mode 100644 index b3ddbbd..0000000 --- a/report-viewer/src/main.js +++ /dev/null @@ -1,26 +0,0 @@ -import './assets/main.css' -import { createApp } from 'vue' -import { createRouter, createWebHistory } from 'vue-router' -import App from './App.vue' - -const router = createRouter({ - history: createWebHistory(), - routes: [ - { - path: '/', - name: 'Report', - component: () => import('./views/Report.vue') - }, - { - path: '/report', - name: 'ReportView', - component: () => import('./views/Report.vue') - } - ] -}) - -const app = createApp(App) -app.use(router) - -app.mount('#app') - diff --git a/report-viewer/src/ui/CDWBG8B4D/components/ElementVerification.vue b/report-viewer/src/ui/CDWBG8B4D/components/ElementVerification.vue deleted file mode 100644 index f7e9d68..0000000 --- a/report-viewer/src/ui/CDWBG8B4D/components/ElementVerification.vue +++ /dev/null @@ -1,202 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/CDWBG8B4D/components/Identity.vue b/report-viewer/src/ui/CDWBG8B4D/components/Identity.vue deleted file mode 100644 index 2f0d4e1..0000000 --- a/report-viewer/src/ui/CDWBG8B4D/components/Identity.vue +++ /dev/null @@ -1,367 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/CDWBG8B4D/components/LeasingRiskSection.vue b/report-viewer/src/ui/CDWBG8B4D/components/LeasingRiskSection.vue deleted file mode 100644 index 6cca2b4..0000000 --- a/report-viewer/src/ui/CDWBG8B4D/components/LeasingRiskSection.vue +++ /dev/null @@ -1,492 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/CDWBG8B4D/components/LoanEvaluationSection.vue b/report-viewer/src/ui/CDWBG8B4D/components/LoanEvaluationSection.vue deleted file mode 100644 index 28e69e8..0000000 --- a/report-viewer/src/ui/CDWBG8B4D/components/LoanEvaluationSection.vue +++ /dev/null @@ -1,526 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/CDWBG8B4D/components/MultCourtInfoSection.vue b/report-viewer/src/ui/CDWBG8B4D/components/MultCourtInfoSection.vue deleted file mode 100644 index 120879b..0000000 --- a/report-viewer/src/ui/CDWBG8B4D/components/MultCourtInfoSection.vue +++ /dev/null @@ -1,521 +0,0 @@ - - - - - \ No newline at end of file diff --git a/report-viewer/src/ui/CDWBG8B4D/components/OverdueRiskSection.vue b/report-viewer/src/ui/CDWBG8B4D/components/OverdueRiskSection.vue deleted file mode 100644 index a8cd6b9..0000000 --- a/report-viewer/src/ui/CDWBG8B4D/components/OverdueRiskSection.vue +++ /dev/null @@ -1,494 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/CDWBG8B4D/components/ReportOverview.vue b/report-viewer/src/ui/CDWBG8B4D/components/ReportOverview.vue deleted file mode 100644 index 8d0d02e..0000000 --- a/report-viewer/src/ui/CDWBG8B4D/components/ReportOverview.vue +++ /dev/null @@ -1,320 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/CDWBG8B4D/components/RiskSupervisionSection.vue b/report-viewer/src/ui/CDWBG8B4D/components/RiskSupervisionSection.vue deleted file mode 100644 index c8afaab..0000000 --- a/report-viewer/src/ui/CDWBG8B4D/components/RiskSupervisionSection.vue +++ /dev/null @@ -1,176 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/CDWBG8B4D/components/RiskWarning.vue b/report-viewer/src/ui/CDWBG8B4D/components/RiskWarning.vue deleted file mode 100644 index b10f301..0000000 --- a/report-viewer/src/ui/CDWBG8B4D/components/RiskWarning.vue +++ /dev/null @@ -1,409 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/CDWBG8B4D/components/RiskWarningSection.vue b/report-viewer/src/ui/CDWBG8B4D/components/RiskWarningSection.vue deleted file mode 100644 index 5e5f204..0000000 --- a/report-viewer/src/ui/CDWBG8B4D/components/RiskWarningSection.vue +++ /dev/null @@ -1,747 +0,0 @@ - - - - - \ No newline at end of file diff --git a/report-viewer/src/ui/CDWBG8B4D/components/RiskWarningTab.vue b/report-viewer/src/ui/CDWBG8B4D/components/RiskWarningTab.vue deleted file mode 100644 index a5e6360..0000000 --- a/report-viewer/src/ui/CDWBG8B4D/components/RiskWarningTab.vue +++ /dev/null @@ -1,1147 +0,0 @@ - - - - - \ No newline at end of file diff --git a/report-viewer/src/ui/CDWBG8B4D/index.vue b/report-viewer/src/ui/CDWBG8B4D/index.vue deleted file mode 100644 index 605232c..0000000 --- a/report-viewer/src/ui/CDWBG8B4D/index.vue +++ /dev/null @@ -1,112 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/CDWBG8B4D/utils/intervalFormatter.js b/report-viewer/src/ui/CDWBG8B4D/utils/intervalFormatter.js deleted file mode 100644 index 418e3b9..0000000 --- a/report-viewer/src/ui/CDWBG8B4D/utils/intervalFormatter.js +++ /dev/null @@ -1,264 +0,0 @@ -/** - * 区间表达式格式化工具 - * 将数学区间表达式转换为用户友好的文本描述 - */ - -/** - * 格式化区间表达式 - * @param {string} interval - 区间表达式,如 "(0,1000)", "[2000,30000)", "[17,+)" - * @param {string} unit - 单位,如 "元", "次", "个", "天" 等 - * @returns {string} 格式化后的文本,如果格式化失败则返回原数据 - */ -export function formatInterval(interval, unit = "") { - // 如果数据为空或无效,返回原数据 - if (!interval || interval === "-" || interval === "0") { - return interval || "-"; - } - - try { - // 处理特殊格式,如 "3,6(个月)" - if (interval.includes("(") && interval.includes(")")) { - const match = interval.match(/^(\d+(?:,\d+)*)\((.+)\)$/); - if (match) { - const numbers = match[1].split(",").map((n) => n.trim()); - const timeUnit = match[2]; - if (numbers.length === 2) { - return `${numbers[0]}-${numbers[1]}${timeUnit}`; - } - return `${numbers.join(", ")}${timeUnit}`; - } - } - - // 处理区间表达式 - const intervalPattern = - /^([\[\(])(\d+(?:\.\d+)?),(\d+(?:\.\d+)?|\+)([\]\)])$/; - const match = interval.match(intervalPattern); - - // 如果不是区间表达式,返回原数据 - if (!match) { - return interval; - } - - const [, leftBracket, leftValue, rightValue, rightBracket] = match; - const isLeftInclusive = leftBracket === "["; - const isRightInclusive = rightBracket === "]"; - const isRightInfinity = rightValue === "+"; - - let result = ""; - - if (isRightInfinity) { - // 处理无穷大情况,如 "[17,+)" - if (isLeftInclusive) { - result = `≥${leftValue}${unit}`; - } else { - result = `>${leftValue}${unit}`; - } - } else { - // 处理有限区间 - const leftNum = parseFloat(leftValue); - const rightNum = parseFloat(rightValue); - - // 检查数值是否有效 - if (isNaN(leftNum) || isNaN(rightNum)) { - return interval; - } - - if (leftNum === rightNum) { - // 单点值 - result = `${leftNum}${unit}`; - } else { - // 区间值 - 简化为实际数值范围 - if (isLeftInclusive && isRightInclusive) { - result = `${leftNum}-${rightNum}${unit}`; - } else if (isLeftInclusive && !isRightInclusive) { - // 右开区间,显示到 rightNum-1 - result = `${leftNum}-${rightNum - 1}${unit}`; - } else if (!isLeftInclusive && isRightInclusive) { - // 左开区间,显示从 leftNum+1 - result = `${leftNum + 1}-${rightNum}${unit}`; - } else { - // 两端都不包含,显示从 leftNum+1 到 rightNum-1 - result = `${leftNum + 1}-${rightNum - 1}${unit}`; - } - } - } - - return result; - } catch (error) { - // 如果格式化过程中出现错误,返回原数据 - console.warn("区间格式化失败:", error, "原数据:", interval); - return interval; - } -} - -/** - * 格式化金额区间 - * @param {string} interval - 金额区间表达式 - * @returns {string} 格式化后的金额文本 - */ -export function formatAmountInterval(interval) { - return formatInterval(interval, "元"); -} - -/** - * 格式化次数区间 - * @param {string} interval - 次数区间表达式 - * @returns {string} 格式化后的次数文本 - */ -export function formatCountInterval(interval) { - return formatInterval(interval, "次"); -} - -/** - * 格式化天数区间 - * @param {string} interval - 天数区间表达式 - * @returns {string} 格式化后的天数文本 - */ -export function formatDaysInterval(interval) { - return formatInterval(interval, "天"); -} - -/** - * 格式化机构数量区间 - * @param {string} interval - 机构数量区间表达式 - * @returns {string} 格式化后的机构数量文本 - */ -export function formatInstitutionInterval(interval) { - return formatInterval(interval, "家"); -} - -/** - * 格式化时间区间 - * @param {string} interval - 时间区间表达式 - * @returns {string} 格式化后的时间文本 - */ -export function formatTimeInterval(interval) { - if (!interval || interval === "-") { - return "-"; - } - - // 处理特殊格式,如 "3,6(个月)" - if (interval.includes("(") && interval.includes(")")) { - const match = interval.match(/^(\d+(?:,\d+)*)\((.+)\)$/); - if (match) { - const numbers = match[1].split(",").map((n) => n.trim()); - const timeUnit = match[2]; - if (numbers.length === 2) { - return `${numbers[0]}-${numbers[1]}${timeUnit}`; - } - return `${numbers.join(", ")}${timeUnit}`; - } - } - - return formatInterval(interval, ""); -} - -/** - * 格式化申请次数区间 - * @param {string} interval - 申请次数区间表达式,格式如 "2/1" - * @returns {string} 格式化后的申请次数文本 - */ -export function formatApplicationInterval(interval) { - if (!interval || interval === "-") { - return "-"; - } - - // 处理 "2/1" 格式,表示 申请次数/机构数 - if (interval.includes("/")) { - const [applyCount, institutionCount] = interval.split("/"); - return `${applyCount}次/${institutionCount}家`; - } - - return formatCountInterval(interval); -} - -/** - * 格式化风险等级文本 - * @param {string} level - 风险等级,如 "C2,C5" - * @returns {string} 格式化后的风险等级文本 - */ -export function formatRiskLevel(level) { - if (!level) return "-"; - - const levelMap = { - 0: "正常人员", - A: "前科:侵犯公民人身权利,民主权利", - A1: "盗窃", - A2: "诈骗", - A3: "抢劫/夺", - A4: "故意伤害/杀人", - A5: "强奸/性侵/猥亵", - B: "经济类前科", - B1: "走私", - B2: "破坏金融管理秩序", - B3: "正常人员", - B4: "洗钱", - B5: "洗钱", - C: "妨害社会管理秩序", - C1: "扰乱公共秩序", - C2: "妨害司法", - C3: "涉毒", - C4: "涉黄刑案", - C5: "帮信/掩隐/侵公", - D: "重点", - D1: "危害国家、公共安全", - D2: "涉稳", - D3: "涉及境外", - D4: "涉恐、疆藏", - D5: "涉黑", - E: "涉交通案件", - F: "法院文书", - }; - - return level - .split(",") - .map((l) => levelMap[l.trim()] || l.trim()) - .join("、"); -} - -/** - * 格式化状态文本 - * @param {string} status - 状态值 - * @param {Object} statusMap - 状态映射对象 - * @returns {string} 格式化后的状态文本 - */ -export function formatStatus(status, statusMap = {}) { - if (status === undefined || status === null || status === "") { - return "-"; - } - - return statusMap[status] || status; -} - -/** - * 格式化风险标识 - * @param {number} flag - 风险标识,0=未查得,1=高风险,2=低风险 - * @returns {Object} 包含文本和样式的对象 - */ -export function formatRiskFlag(flag) { - const flagMap = { - 0: { text: "未查得", class: "bg-gray-100 text-gray-700" }, - 1: { text: "高风险", class: "bg-red-100 text-red-700" }, - 2: { text: "低风险", class: "bg-green-100 text-green-700" }, - }; - - return ( - flagMap[flag] || { text: "未知", class: "bg-gray-100 text-gray-700" } - ); -} - -/** - * 格式化验证结果 - * @param {string} result - 验证结果 - * @returns {Object} 包含文本和样式的对象 - */ -export function formatVerificationResult(result) { - const resultMap = { - 一致: { text: "一致", class: "text-green-600" }, - 不一致: { text: "不一致", class: "text-red-600" }, - 验证通过: { text: "验证通过", class: "text-green-600" }, - 验证失败: { text: "验证失败", class: "text-red-600" }, - }; - - return resultMap[result] || { text: result || "-", class: "text-gray-600" }; -} diff --git a/report-viewer/src/ui/CDWBG8B4D/utils/simpleSplitter.js b/report-viewer/src/ui/CDWBG8B4D/utils/simpleSplitter.js deleted file mode 100644 index d178c0f..0000000 --- a/report-viewer/src/ui/CDWBG8B4D/utils/simpleSplitter.js +++ /dev/null @@ -1,157 +0,0 @@ -/** - * 简单的DWBG8B4D数据拆分演示 - * 直接在BaseReport.vue中处理 - */ - -// 在BaseReport.vue的script部分添加这个函数 -function splitDWBG8B4DForTabs(reportData) { - const result = [] - - reportData.forEach(item => { - if (item.data.apiID === 'DWBG8B4D') { - // 将DWBG8B4D拆分成多个独立的tab - const dwbgData = item.data.data - - // 报告概览 - result.push({ - data: { - apiID: 'DWBG8B4D_Overview', - data: { - baseInfo: dwbgData.baseInfo, - checkSuggest: dwbgData.checkSuggest, - fraudScore: dwbgData.fraudScore, - creditScore: dwbgData.creditScore, - verifyRule: dwbgData.verifyRule, - fraudRule: dwbgData.fraudRule, - success: dwbgData.success, - timestamp: dwbgData.timestamp - } - } - }) - - // 规则风险提示 - result.push({ - data: { - apiID: 'DWBG8B4D_RiskWarningTab', - data: { - riskWarning: dwbgData.riskWarning, - success: dwbgData.success, - timestamp: dwbgData.timestamp - } - } - }) - - // 要素核查 - result.push({ - data: { - apiID: 'DWBG8B4D_ElementVerification', - data: { - sfzeysFlag: dwbgData.elementVerificationDetail?.sfzeysFlag || 0, - personCheckDetails: dwbgData.elementVerificationDetail?.personCheckDetails || {}, - sjsysFlag: dwbgData.elementVerificationDetail?.sjsysFlag || 0, - phoneCheckDetails: dwbgData.elementVerificationDetail?.phoneCheckDetails || {}, - success: dwbgData.success, - timestamp: dwbgData.timestamp - } - } - }) - - // 运营商核验 - result.push({ - data: { - apiID: 'DWBG8B4D_Identity', - data: { - inTime: dwbgData.standLiveInfo?.inTime || '', - phoneVailRiskFlag: dwbgData.elementVerificationDetail?.phoneVailRiskFlag || 0, - phoneVailRisks: dwbgData.elementVerificationDetail?.phoneVailRisks || {}, - belongRiskFlag: dwbgData.elementVerificationDetail?.belongRiskFlag || 0, - belongRisks: dwbgData.elementVerificationDetail?.belongRisks || {}, - success: dwbgData.success, - timestamp: dwbgData.timestamp - } - } - }) - - // 公安重点人员检验 - result.push({ - data: { - apiID: 'DWBG8B4D_RiskWarning', - data: { - highRiskFlag: dwbgData.elementVerificationDetail?.highRiskFlag || 0, - keyPersonCheckList: dwbgData.elementVerificationDetail?.keyPersonCheckList || {}, - antiFraudInfo: dwbgData.elementVerificationDetail?.antiFraudInfo || {}, - success: dwbgData.success, - timestamp: dwbgData.timestamp - } - } - }) - - // 逾期风险 - result.push({ - data: { - apiID: 'DWBG8B4D_OverdueRisk', - data: { - overdueRiskProduct: dwbgData.overdueRiskProduct, - success: dwbgData.success, - timestamp: dwbgData.timestamp - } - } - }) - - // 法院曝光台信息 - result.push({ - data: { - apiID: 'DWBG8B4D_CourtInfo', - data: { - multCourtInfo: dwbgData.multCourtInfo, - success: dwbgData.success, - timestamp: dwbgData.timestamp - } - } - }) - - // 借贷评估 - result.push({ - data: { - apiID: 'DWBG8B4D_LoanEvaluation', - data: { - loanEvaluationVerificationDetail: dwbgData.loanEvaluationVerificationDetail, - success: dwbgData.success, - timestamp: dwbgData.timestamp - } - } - }) - - // 租赁风险评估 - result.push({ - data: { - apiID: 'DWBG8B4D_LeasingRisk', - data: { - leasingRiskAssessment: dwbgData.leasingRiskAssessment, - success: dwbgData.success, - timestamp: dwbgData.timestamp - } - } - }) - - // 关联风险监督 - result.push({ - data: { - apiID: 'DWBG8B4D_RiskSupervision', - data: { - riskSupervision: dwbgData.riskSupervision, - success: dwbgData.success, - timestamp: dwbgData.timestamp - } - } - }) - } else { - // 其他数据直接添加 - result.push(item) - } - }) - - return result -} - -export { splitDWBG8B4DForTabs } diff --git a/report-viewer/src/ui/CFLXG0V4B/components/CaseDetail.vue b/report-viewer/src/ui/CFLXG0V4B/components/CaseDetail.vue deleted file mode 100644 index f1efe42..0000000 --- a/report-viewer/src/ui/CFLXG0V4B/components/CaseDetail.vue +++ /dev/null @@ -1,171 +0,0 @@ - - - \ No newline at end of file diff --git a/report-viewer/src/ui/CFLXG0V4B/components/StatisticsOverview.vue b/report-viewer/src/ui/CFLXG0V4B/components/StatisticsOverview.vue deleted file mode 100644 index 3d8fa47..0000000 --- a/report-viewer/src/ui/CFLXG0V4B/components/StatisticsOverview.vue +++ /dev/null @@ -1,284 +0,0 @@ - - - diff --git a/report-viewer/src/ui/CFLXG0V4B/index.vue b/report-viewer/src/ui/CFLXG0V4B/index.vue deleted file mode 100644 index fb61592..0000000 --- a/report-viewer/src/ui/CFLXG0V4B/index.vue +++ /dev/null @@ -1,451 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/CFLXG0V4B/utils/lawsuitUtils.js b/report-viewer/src/ui/CFLXG0V4B/utils/lawsuitUtils.js deleted file mode 100644 index f53f0aa..0000000 --- a/report-viewer/src/ui/CFLXG0V4B/utils/lawsuitUtils.js +++ /dev/null @@ -1,292 +0,0 @@ -// 案件类型映射表 -export const lawsuitTypeMap = { - sxbzxr: { - text: '失信被执行', - color: 'text-red-600 bg-red-50', - darkColor: 'bg-red-500', - riskLevel: 'high', // 高风险 - }, - xgbzxr: { - text: '限高被执行', - color: 'text-orange-600 bg-orange-50', - darkColor: 'bg-orange-500', - riskLevel: 'high', // 高风险 - }, - criminal: { - text: '刑事案件', - color: 'text-red-600 bg-red-50', - darkColor: 'bg-red-500', - riskLevel: 'high', // 高风险 - }, - civil: { - text: '民事案件', - color: 'text-blue-600 bg-blue-50', - darkColor: 'bg-blue-500', - riskLevel: 'medium', // 中风险 - }, - administrative: { - text: '行政案件', - color: 'text-purple-600 bg-purple-50', - darkColor: 'bg-purple-500', - riskLevel: 'medium', // 中风险 - }, - implement: { - text: '执行案件', - color: 'text-orange-600 bg-orange-50', - darkColor: 'bg-orange-500', - riskLevel: 'medium', // 中风险 - }, - bankrupt: { - text: '强制清算与破产案件', - color: 'text-rose-600 bg-rose-50', - darkColor: 'bg-rose-500', - riskLevel: 'high', // 高风险 - }, - preservation: { - text: '非诉保全审查', - color: 'text-amber-600 bg-amber-50', - darkColor: 'bg-amber-500', - riskLevel: 'low', // 低风险 - }, -} - -// 案件类型文本 -export const getCaseTypeText = type => { - return lawsuitTypeMap[type]?.text || '其他案件' -} - -// 案件类型颜色 -export const getCaseTypeColor = type => { - return lawsuitTypeMap[type]?.color || 'text-gray-600 bg-gray-50' -} - -// 案件类型深色 -export const getCaseTypeDarkColor = type => { - return lawsuitTypeMap[type]?.darkColor || 'bg-gray-500' -} - -// 格式化日期显示 -export const formatDate = dateStr => { - if (!dateStr) return '—' - // 转换YYYY-MM-DD为年月日格式 - if (dateStr.includes('-')) { - const parts = dateStr.split('-') - if (parts.length === 3) { - return `${parts[0]}年${parts[1]}月${parts[2]}日` - } - } - return dateStr // 如果不是标准格式则返回原始字符串 -} - -// 格式化金额显示 -export const formatLawsuitMoney = money => { - if (!money) return "—"; - - const value = parseFloat(money); - if (isNaN(value)) return "—"; - - // 直接显示原始金额(元) - return ( - value.toLocaleString("zh-CN", { - minimumFractionDigits: 0, - maximumFractionDigits: 2, - }) + " 元" - ); -} - -// 获取案件状态样式 -export const getCaseStatusClass = status => { - if (!status) return 'bg-gray-100 text-gray-500' - - if (status.includes('已结') || status.includes('已办结')) { - return 'bg-green-50 text-green-600' - } else if (status.includes('执行中') || status.includes('审理中')) { - return 'bg-blue-50 text-blue-600' - } else if (status.includes('未执行')) { - return 'bg-amber-50 text-amber-600' - } else { - return 'bg-gray-100 text-gray-500' - } -} - -// 获取企业状态对应的样式 -export const getStatusClass = status => { - if (!status) return 'bg-gray-100 text-gray-500' - - if (status.includes('注销') || status.includes('吊销')) { - return 'bg-red-50 text-red-600' - } else if (status.includes('存续') || status.includes('在营')) { - return 'bg-green-50 text-green-600' - } else if (status.includes('筹建') || status.includes('新设')) { - return 'bg-blue-50 text-blue-600' - } else { - return 'bg-yellow-50 text-yellow-600' - } -} - -// 格式化资本金额显示 -export const formatCapital = (capital, currency) => { - if (!capital) return '—' - - // 检查是否包含"万"字或需要显示为万元 - let unit = '' - let value = parseFloat(capital) - - // 处理原始数据中可能带有的单位 - if (typeof capital === 'string' && capital.includes('万')) { - unit = '万' - // 提取数字部分 - const numMatch = capital.match(/[\d.]+/) - value = numMatch ? parseFloat(numMatch[0]) : 0 - } else if (value >= 10000) { - // 大额数字转换为万元显示 - value = value / 10000 - unit = '万' - } - - // 格式化数字,保留两位小数(如果有小数部分) - const formattedValue = value.toLocaleString('zh-CN', { - minimumFractionDigits: 0, - maximumFractionDigits: 2, - }) - - return `${formattedValue}${unit} ${currency || '人民币'}` -} - -// 获取涉诉风险等级 -export const getRiskLevel = lawsuitInfo => { - if (!lawsuitInfo) { - return { - level: 'low', - text: '低风险', - color: 'text-green-600 bg-green-50', - } - } - - // 失信被执行人是最高风险 - if (lawsuitInfo.sxbzxr && lawsuitInfo.sxbzxr.length > 0) { - return { - level: 'high', - text: '高风险', - color: 'text-red-600 bg-red-50', - } - } - - // 限高被执行人是最高风险 - if (lawsuitInfo.xgbzxr && lawsuitInfo.xgbzxr.length > 0) { - return { - level: 'high', - text: '高风险', - color: 'text-red-600 bg-red-50', - } - } - - // 有涉诉数据的风险级别 - if (lawsuitInfo.data && Object.keys(lawsuitInfo.data).length > 0) { - // 检查是否有未结案的案件 - const data = lawsuitInfo.data - if (data.count && data.count_wei_total && data.count_wei_total > 0) { - return { - level: 'medium', - text: '中风险', - color: 'text-amber-600 bg-amber-50', - } - } - - // 只有已结案的为低中风险 - return { - level: 'low-medium', - text: '低中风险', - color: 'text-yellow-600 bg-yellow-50', - } - } - - return { - level: 'low', - text: '低风险', - color: 'text-green-600 bg-green-50', - } -} - -// 获取涉诉案件统计 -export const getLawsuitStats = lawsuitInfo => { - if (!lawsuitInfo) return null - - const stats = { - total: 0, - types: [], - } - - // 统计各类型案件数量 - Object.keys(lawsuitTypeMap).forEach(type => { - let count = 0 - - if (type === 'sxbzxr') { - count = lawsuitInfo.sxbzxr && lawsuitInfo.sxbzxr.length > 0 ? lawsuitInfo.sxbzxr.length : 0 - } else if (type === 'xgbzxr') { - count = lawsuitInfo.xgbzxr && lawsuitInfo.xgbzxr.length > 0 ? lawsuitInfo.xgbzxr.length : 0 - } else if (lawsuitInfo.data && lawsuitInfo.data[type] && Object.keys(lawsuitInfo.data[type]).length > 0) { - const typeData = lawsuitInfo.data[type] - count = typeData.cases && typeData.cases.length ? typeData.cases.length : 0 - } - - if (count > 0) { - stats.total += count - stats.types.push({ - type, - count, - name: getCaseTypeText(type), - color: getCaseTypeColor(type), - darkColor: getCaseTypeDarkColor(type), - }) - } - }) - - return stats -} - -// 获取案件类型优先级顺序 -export const getCaseTypePriority = () => { - return [ - 'sxbzxr', // 失信被执行人(最高风险) - 'xgbzxr', // 限高被执行人 - 'criminal', // 刑事案件 - 'civil', // 民事案件 - 'administrative', // 行政案件 - 'implement', // 执行案件 - 'bankrupt', // 强制清算与破产案件 - 'preservation', // 非诉保全审查 - ] -} - -// 根据案件类型获取风险等级 -export const getCaseTypeRiskLevel = caseType => { - const typeInfo = lawsuitTypeMap[caseType] - if (!typeInfo) { - return { - level: 'low', - text: '低风险', - color: 'text-green-600 bg-green-50', - } - } - - const riskLevelMap = { - high: { - text: '高风险', - color: 'text-red-600 bg-red-50', - }, - medium: { - text: '中风险', - color: 'text-amber-600 bg-amber-50', - }, - low: { - text: '低风险', - color: 'text-green-600 bg-green-50', - }, - } - - return { - level: typeInfo.riskLevel, - ...riskLevelMap[typeInfo.riskLevel], - } -} diff --git a/report-viewer/src/ui/CQCXG9P1C.vue b/report-viewer/src/ui/CQCXG9P1C.vue deleted file mode 100644 index 1d98682..0000000 --- a/report-viewer/src/ui/CQCXG9P1C.vue +++ /dev/null @@ -1,130 +0,0 @@ - - - - - \ No newline at end of file diff --git a/report-viewer/src/ui/CQYGL3F8E/README.md b/report-viewer/src/ui/CQYGL3F8E/README.md deleted file mode 100644 index 88fb581..0000000 --- a/report-viewer/src/ui/CQYGL3F8E/README.md +++ /dev/null @@ -1,238 +0,0 @@ -# CQYGL3F8E 人企关系加强版模块 - -## 概述 - -CQYGL3F8E 是人企关系加强版模块,提供全面的企业关联分析功能。该模块通过拆分功能,将原本的单一组件分解为三个独立的子模块,每个子模块专注于特定类型的企业关联信息展示。 - -## 模块结构 - -### 主模块 -- **文件位置**: `src/ui/CQYGL3F8E/index.vue` -- **功能**: 整合三个子模块,提供完整的人企关系分析视图 -- **API ID**: `QYGL3F8E` - -### 子模块 - -#### 1. 投资企业记录 (Investment) -- **文件位置**: `src/ui/CQYGL3F8E/components/Investment.vue` -- **API ID**: `CQYGL3F8E_Investment` -- **功能**: 展示用户作为股东、历史股东、法人、历史法人的企业记录 -- **数据来源**: 过滤 `relationship` 字段包含 `["sh", "his_sh", "lp", "his_lp"]` 的企业 - -#### 2. 高管任职记录 (SeniorExecutive) -- **文件位置**: `src/ui/CQYGL3F8E/components/SeniorExecutive.vue` -- **API ID**: `CQYGL3F8E_SeniorExecutive` -- **功能**: 展示用户作为高管、历史高管的企业任职记录 -- **数据来源**: 过滤 `relationship` 字段包含 `["tm", "his_tm"]` 的企业 - -#### 3. 涉诉风险 (Lawsuit) -- **文件位置**: `src/ui/CQYGL3F8E/components/Lawsuit.vue` -- **API ID**: `CQYGL3F8E_Lawsuit` -- **功能**: 展示存在涉诉风险的企业信息 -- **数据来源**: 过滤 `lawsuitInfo` 字段包含有效涉诉数据的企业 - -#### 4. 对外投资历史 (InvestHistory) -- **文件位置**: `src/ui/CQYGL3F8E/components/InvestHistory.vue` -- **API ID**: `CQYGL3F8E_InvestHistory` -- **功能**: 展示企业的对外投资历史记录 -- **数据来源**: `invest_history` 字段 - -#### 5. 融资历史 (FinancingHistory) -- **文件位置**: `src/ui/CQYGL3F8E/components/FinancingHistory.vue` -- **API ID**: `CQYGL3F8E_FinancingHistory` -- **功能**: 展示企业的融资历史记录 -- **数据来源**: `financing_history` 字段 - -#### 6. 行政处罚 (Punishment) -- **文件位置**: `src/ui/CQYGL3F8E/components/Punishment.vue` -- **API ID**: `CQYGL3F8E_Punishment` -- **功能**: 展示企业的行政处罚记录 -- **数据来源**: `punishment_info` 字段 - -#### 7. 经营异常 (Abnormal) -- **文件位置**: `src/ui/CQYGL3F8E/components/Abnormal.vue` -- **API ID**: `CQYGL3F8E_Abnormal` -- **功能**: 展示企业的经营异常记录 -- **数据来源**: `abnormal_info` 字段 - -#### 8. 欠税公告 (OwnTax) -- **文件位置**: `src/ui/CQYGL3F8E/components/OwnTax.vue` -- **API ID**: `CQYGL3F8E_OwnTax` -- **功能**: 展示企业的欠税公告记录 -- **数据来源**: `own_tax` 字段 - -#### 9. 税收违法 (TaxContravention) -- **文件位置**: `src/ui/CQYGL3F8E/components/TaxContravention.vue` -- **API ID**: `CQYGL3F8E_TaxContravention` -- **功能**: 展示企业的税收违法记录 -- **数据来源**: `tax_contravention` 字段 - -## 数据拆分逻辑 - -### 数据源结构 -```javascript -{ - data: { - apiID: 'QYGL3F8E', - data: { - items: [ - { - orgName: '企业名称', - relationship: ['sh', 'tm'], // 关系类型 - lawsuitInfo: { ... }, // 涉诉信息 - basicInfo: { ... }, // 基本信息 - stockHolderItem: { ... }, // 持股信息 - staffList: { ... } // 人员列表 - } - ] - } - } -} -``` - -### 拆分规则 - -#### 投资企业记录 -- **过滤条件**: `relationship` 包含投资类关系 -- **关系类型**: `["sh", "his_sh", "lp", "his_lp"]` -- **包含字段**: 完整的企业信息,包括持股详情 - -#### 高管任职记录 -- **过滤条件**: `relationship` 包含高管类关系 -- **关系类型**: `["tm", "his_tm"]` -- **包含字段**: 完整的企业信息,重点关注任职信息 - -#### 涉诉风险 -- **过滤条件**: `lawsuitInfo` 包含有效涉诉数据 -- **检查字段**: - - `lawsuitInfo.entout.data` (非空对象) - - `lawsuitInfo.sxbzxr.data.sxbzxr` (非空数组) - - `lawsuitInfo.xgbzxr.data.xgbzxr` (非空数组) -- **包含字段**: 涉诉企业和总数统计 - -#### 对外投资历史 -- **数据来源**: `invest_history.items` 数组 -- **包含字段**: 投资企业信息、持股比例、注册资本等 - -#### 融资历史 -- **数据来源**: `financing_history.items` 数组 -- **包含字段**: 融资轮次、融资金额、投资者、新闻信息等 - -#### 行政处罚 -- **数据来源**: `punishment_info.items` 数组 -- **包含字段**: 处罚类型、处罚金额、处罚原因、处罚部门等 - -#### 经营异常 -- **数据来源**: `abnormal_info.items` 数组 -- **包含字段**: 异常原因、列入/移出日期、相关部门等 - -#### 欠税公告 -- **数据来源**: `own_tax.items` 数组 -- **包含字段**: 欠税金额、税务类型、欠税税种、纳税人信息、税务机关等 - -#### 税收违法 -- **数据来源**: `tax_contravention.items` 数组 -- **包含字段**: 案件性质、违法ID、税务机关、发布时间、纳税人名称等 - -## 工具函数 - -### simpleSplitter.js -位置: `src/ui/CQYGL3F8E/utils/simpleSplitter.js` - -#### 主要函数 -- `splitCQYGL3F8EForTabs(reportData)`: 数据拆分主函数 -- `getRelationshipText(relation)`: 获取关系文本描述 -- `getRelationshipClass(relation)`: 获取关系样式类 -- `getStatusClass(status)`: 获取企业状态样式类 -- `formatCapital(capital, currency)`: 格式化资本金额 -- `formatDate(dateStr)`: 格式化日期显示 - -## 集成配置 - -### BaseReport.vue 配置 -```javascript -// 导入拆分函数 -import { splitCQYGL3F8EForTabs } from '@/ui/CQYGL3F8E/utils/simpleSplitter.js'; - -// 数据处理 -const processedReportData = computed(() => { - let data = reportData.value; - // ... 其他拆分 - data = splitCQYGL3F8EForTabs(data); - return data; -}); - -// 功能映射 -const featureMap = { - QYGL3F8E: { - name: "人企关系加强版", - component: defineAsyncComponent(() => import("@/ui/CQYGL3F8E/index.vue")), - remark: '人企关系加强版提供全面的企业关联分析,包括投资企业记录、高管任职记录和涉诉风险等多维度信息。' - }, - CQYGL3F8E_Investment: { - name: "投资企业记录", - component: defineAsyncComponent(() => import("@/ui/CQYGL3F8E/components/Investment.vue")), - }, - CQYGL3F8E_SeniorExecutive: { - name: "高管任职记录", - component: defineAsyncComponent(() => import("@/ui/CQYGL3F8E/components/SeniorExecutive.vue")), - }, - CQYGL3F8E_Lawsuit: { - name: "涉诉风险", - component: defineAsyncComponent(() => import("@/ui/CQYGL3F8E/components/Lawsuit.vue")), - } -}; -``` - -## 使用方式 - -### 完整视图 -访问 `QYGL3F8E` 将显示完整的人企关系分析,包含所有九个子模块。 - -### 独立子模块 -- 访问 `CQYGL3F8E_Investment` 仅显示投资企业记录 -- 访问 `CQYGL3F8E_SeniorExecutive` 仅显示高管任职记录 -- 访问 `CQYGL3F8E_Lawsuit` 仅显示涉诉风险 -- 访问 `CQYGL3F8E_InvestHistory` 仅显示对外投资历史 -- 访问 `CQYGL3F8E_FinancingHistory` 仅显示融资历史 -- 访问 `CQYGL3F8E_Punishment` 仅显示行政处罚 -- 访问 `CQYGL3F8E_Abnormal` 仅显示经营异常 -- 访问 `CQYGL3F8E_OwnTax` 仅显示欠税公告 -- 访问 `CQYGL3F8E_TaxContravention` 仅显示税收违法 - -## 特性 - -### 1. 数据过滤 -- 基于关系类型智能过滤企业数据 -- 支持多种关系类型的组合展示 - -### 2. 展开式详情 -- 企业卡片支持点击展开查看详细信息 -- 包含持股信息、基本信息、联系方式等 - -### 3. 状态标识 -- 企业状态颜色编码(存续、注销、吊销等) -- 关系类型标签展示 - -### 4. 数据格式化 -- 资本金额自动转换为万元单位 -- 日期格式化显示 -- 持股比例可视化进度条 - -### 5. 响应式设计 -- 支持移动端和桌面端 -- 自适应布局和交互 - -## 注意事项 - -1. **数据完整性**: 拆分后的数据保持原始结构的完整性 -2. **性能优化**: 使用 `defineAsyncComponent` 实现组件懒加载 -3. **错误处理**: 对缺失数据进行安全处理,避免渲染错误 -4. **样式一致性**: 保持与整体设计系统的视觉一致性 - -## 更新历史 - -- **v1.0.0**: 初始版本,支持基本的企业关联信息展示 -- **v2.0.0**: 模块拆分重构,支持独立子模块访问 -- **v2.1.0**: 优化数据处理逻辑,增强错误处理能力 -- **v2.2.0**: 新增欠税公告和税收违法模块,完善企业风险分析功能 diff --git a/report-viewer/src/ui/CQYGL3F8E/components/Abnormal.vue b/report-viewer/src/ui/CQYGL3F8E/components/Abnormal.vue deleted file mode 100644 index 4baf4e4..0000000 --- a/report-viewer/src/ui/CQYGL3F8E/components/Abnormal.vue +++ /dev/null @@ -1,273 +0,0 @@ - - - - - \ No newline at end of file diff --git a/report-viewer/src/ui/CQYGL3F8E/components/FinancingHistory.vue b/report-viewer/src/ui/CQYGL3F8E/components/FinancingHistory.vue deleted file mode 100644 index f99eec9..0000000 --- a/report-viewer/src/ui/CQYGL3F8E/components/FinancingHistory.vue +++ /dev/null @@ -1,265 +0,0 @@ - - - - - \ No newline at end of file diff --git a/report-viewer/src/ui/CQYGL3F8E/components/InvestHistory.vue b/report-viewer/src/ui/CQYGL3F8E/components/InvestHistory.vue deleted file mode 100644 index 830c1ad..0000000 --- a/report-viewer/src/ui/CQYGL3F8E/components/InvestHistory.vue +++ /dev/null @@ -1,337 +0,0 @@ - - - - - \ No newline at end of file diff --git a/report-viewer/src/ui/CQYGL3F8E/components/Investment.vue b/report-viewer/src/ui/CQYGL3F8E/components/Investment.vue deleted file mode 100644 index 19cd296..0000000 --- a/report-viewer/src/ui/CQYGL3F8E/components/Investment.vue +++ /dev/null @@ -1,335 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/CQYGL3F8E/components/Lawsuit.vue b/report-viewer/src/ui/CQYGL3F8E/components/Lawsuit.vue deleted file mode 100644 index ca85693..0000000 --- a/report-viewer/src/ui/CQYGL3F8E/components/Lawsuit.vue +++ /dev/null @@ -1,1705 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/CQYGL3F8E/components/Punishment.vue b/report-viewer/src/ui/CQYGL3F8E/components/Punishment.vue deleted file mode 100644 index 312cd6d..0000000 --- a/report-viewer/src/ui/CQYGL3F8E/components/Punishment.vue +++ /dev/null @@ -1,289 +0,0 @@ - - - - - \ No newline at end of file diff --git a/report-viewer/src/ui/CQYGL3F8E/components/SeniorExecutive.vue b/report-viewer/src/ui/CQYGL3F8E/components/SeniorExecutive.vue deleted file mode 100644 index 28660d1..0000000 --- a/report-viewer/src/ui/CQYGL3F8E/components/SeniorExecutive.vue +++ /dev/null @@ -1,307 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/CQYGL3F8E/components/TaxRisk/OwnTax.vue b/report-viewer/src/ui/CQYGL3F8E/components/TaxRisk/OwnTax.vue deleted file mode 100644 index 746d380..0000000 --- a/report-viewer/src/ui/CQYGL3F8E/components/TaxRisk/OwnTax.vue +++ /dev/null @@ -1,265 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/CQYGL3F8E/components/TaxRisk/TaxContravention.vue b/report-viewer/src/ui/CQYGL3F8E/components/TaxRisk/TaxContravention.vue deleted file mode 100644 index 05ad3dd..0000000 --- a/report-viewer/src/ui/CQYGL3F8E/components/TaxRisk/TaxContravention.vue +++ /dev/null @@ -1,208 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/CQYGL3F8E/components/TaxRisk/index.vue b/report-viewer/src/ui/CQYGL3F8E/components/TaxRisk/index.vue deleted file mode 100644 index 9e6dfed..0000000 --- a/report-viewer/src/ui/CQYGL3F8E/components/TaxRisk/index.vue +++ /dev/null @@ -1,239 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/CQYGL3F8E/index.vue b/report-viewer/src/ui/CQYGL3F8E/index.vue deleted file mode 100644 index 62e45de..0000000 --- a/report-viewer/src/ui/CQYGL3F8E/index.vue +++ /dev/null @@ -1,167 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/CQYGL3F8E/utils/simpleSplitter.js b/report-viewer/src/ui/CQYGL3F8E/utils/simpleSplitter.js deleted file mode 100644 index 94e89da..0000000 --- a/report-viewer/src/ui/CQYGL3F8E/utils/simpleSplitter.js +++ /dev/null @@ -1,302 +0,0 @@ -/** - * CQYGL3F8E企业关联数据拆分工具 - * 将企业关联数据拆分为投资企业记录、高管任职记录和涉诉风险三个独立模块 - */ - -/** - * 拆分CQYGL3F8E数据为多个独立的tab模块 - * @param {Array} reportData - 报告数据数组 - * @returns {Array} 拆分后的数据数组 - */ -export function splitCQYGL3F8EForTabs(reportData) { - const result = [] - - reportData.forEach(item => { - if (item.data?.apiID === 'QYGL3F8E') { - // 将QYGL3F8E拆分成多个独立的tab - const qyglData = item.data.data - const baseTimestamp = item.data.timestamp - - // 投资类关系 - const investRelations = ["sh", "his_sh", "lp", "his_lp"] - - // 高管类关系 - const managerRelations = ["tm", "his_tm"] - - // 获取投资企业记录(股东、历史股东、法人、历史法人) - const investCompanies = (qyglData?.items || []).filter((item) => { - const relationships = item?.relationship || [] - return relationships.some((r) => investRelations.includes(r)) - }) - - // 获取高管任职记录(高管、历史高管) - const managerPositions = (qyglData?.items || []).filter((item) => { - const relationships = item?.relationship || [] - return relationships.some((r) => managerRelations.includes(r)) - }) - - // 获取有涉诉风险的企业 - const lawsuitCompanies = (qyglData?.items || []).filter((item) => { - const lawsuit = item?.lawsuitInfo || {} - return ( - (lawsuit.entout && lawsuit.entout.data && Object.keys(lawsuit.entout.data).length > 0) || - (lawsuit.sxbzxr && lawsuit.sxbzxr.data && lawsuit.sxbzxr.data.sxbzxr && lawsuit.sxbzxr.data.sxbzxr.length > 0) || - (lawsuit.xgbzxr && lawsuit.xgbzxr.data && lawsuit.xgbzxr.data.xgbzxr && lawsuit.xgbzxr.data.xgbzxr.length > 0) - ) - }) - - // 1. 投资企业记录模块 - result.push({ - data: { - apiID: 'CQYGL3F8E_Investment', - data: investCompanies, - success: true, - timestamp: baseTimestamp - } - }) - - // 2. 高管任职记录模块 - result.push({ - data: { - apiID: 'CQYGL3F8E_SeniorExecutive', - data: managerPositions, - success: true, - timestamp: baseTimestamp - } - }) - // 3. 涉诉风险模块 - result.push({ - data: { - apiID: 'CQYGL3F8E_Lawsuit', - data: { - lawsuitCompanies: lawsuitCompanies, - totalCompanies: qyglData?.items?.length || 0 - }, - success: true, - timestamp: baseTimestamp - } - }) - // 4. 对外投资历史模块 - 从所有企业中收集投资历史 - const allInvestHistory = [] - qyglData?.items?.forEach(company => { - if (company.invest_history?.items) { - company.invest_history.items.forEach(investment => { - allInvestHistory.push({ - ...investment, - companyName: company.orgName, // 添加企业名称 - companyInfo: { - orgName: company.orgName, - relationship: company.relationship, - basicInfo: company.basicInfo - } - }) - }) - } - }) - result.push({ - data: { - apiID: 'CQYGL3F8E_InvestHistory', - data: { items: allInvestHistory, total: allInvestHistory.length }, - success: true, - timestamp: baseTimestamp - } - }) - - // 5. 融资历史模块 - 从所有企业中收集融资历史 - const allFinancingHistory = [] - qyglData?.items?.forEach(company => { - if (company.financing_history?.items) { - company.financing_history.items.forEach(financing => { - allFinancingHistory.push({ - ...financing, - companyName: company.orgName, // 添加企业名称 - companyInfo: { - orgName: company.orgName, - relationship: company.relationship, - basicInfo: company.basicInfo - } - }) - }) - } - }) - result.push({ - data: { - apiID: 'CQYGL3F8E_FinancingHistory', - data: { items: allFinancingHistory, total: allFinancingHistory.length }, - success: true, - timestamp: baseTimestamp - } - }) - - // 6. 行政处罚模块 - 从所有企业中收集行政处罚 - const allPunishmentInfo = [] - qyglData?.items?.forEach(company => { - if (company.punishment_info?.items) { - company.punishment_info.items.forEach(punishment => { - allPunishmentInfo.push({ - ...punishment, - companyName: company.orgName, // 添加企业名称 - companyInfo: { - orgName: company.orgName, - relationship: company.relationship, - basicInfo: company.basicInfo - } - }) - }) - } - }) - result.push({ - data: { - apiID: 'CQYGL3F8E_Punishment', - data: { items: allPunishmentInfo, total: allPunishmentInfo.length }, - success: true, - timestamp: baseTimestamp - } - }) - - // 7. 经营异常模块 - 从所有企业中收集经营异常 - const allAbnormalInfo = [] - qyglData?.items?.forEach(company => { - if (company.abnormal_info?.items) { - company.abnormal_info.items.forEach(abnormal => { - allAbnormalInfo.push({ - ...abnormal, - companyName: company.orgName, // 添加企业名称 - companyInfo: { - orgName: company.orgName, - relationship: company.relationship, - basicInfo: company.basicInfo - } - }) - }) - } - }) - result.push({ - data: { - apiID: 'CQYGL3F8E_Abnormal', - data: { items: allAbnormalInfo, total: allAbnormalInfo.length }, - success: true, - timestamp: baseTimestamp - } - }) - - // 8. 税务风险模块 - 包含欠税公告和税收违法 - const taxRiskCompanies = (qyglData?.items || []).filter((item) => { - const ownTax = item?.own_tax || {}; - const taxContravention = item?.tax_contravention || {}; - return (ownTax.total > 0 && ownTax.items && ownTax.items.length > 0) || - (taxContravention.total > 0 && taxContravention.items && taxContravention.items.length > 0); - }); - - result.push({ - data: { - apiID: 'CQYGL3F8E_TaxRisk', - data: { items: taxRiskCompanies }, - success: true, - timestamp: baseTimestamp - } - }) - - } else { - // 其他数据直接添加 - result.push(item) - } - }) - - return result -} - -/** - * 获取关系文本描述 - * @param {string} relation - 关系代码 - * @returns {string} 关系文本 - */ -export function getRelationshipText(relation) { - const relationshipMap = { - sh: '股东', - his_sh: '曾任股东', - lp: '法人', - his_lp: '曾任法人', - tm: '高管', - his_tm: '曾任高管' - } - return relationshipMap[relation] || relation -} - -/** - * 获取关系样式类 - * @param {string} relation - 关系代码 - * @returns {string} 样式类名 - */ -export function getRelationshipClass(relation) { - const relationshipMap = { - sh: 'bg-blue-100 text-blue-700', - his_sh: 'bg-blue-50 text-blue-600', - lp: 'bg-green-100 text-green-700', - his_lp: 'bg-green-50 text-green-600', - tm: 'bg-purple-100 text-purple-700', - his_tm: 'bg-purple-50 text-purple-600' - } - return relationshipMap[relation] || 'bg-gray-100 text-gray-600' -} - -/** - * 获取企业状态对应的样式类 - * @param {string} status - 企业状态 - * @returns {string} 样式类名 - */ -export function getStatusClass(status) { - if (!status) return 'bg-gray-100 text-gray-500' - - if (status.includes('注销') || status.includes('吊销')) { - return 'bg-red-50 text-red-600' - } else if (status.includes('存续') || status.includes('在营')) { - return 'bg-green-50 text-green-600' - } else if (status.includes('筹建') || status.includes('新设')) { - return 'bg-blue-50 text-blue-600' - } else { - return 'bg-yellow-50 text-yellow-600' - } -} - -/** - * 格式化资本金额显示 - * @param {string|number} capital - 资本金额 - * @param {string} currency - 货币类型 - * @returns {string} 格式化后的金额 - */ -export function formatCapital(capital, currency) { - if (!capital) return '—' - - let unit = '' - let value = parseFloat(capital) - - // 处理原始数据中可能带有的单位 - if (typeof capital === 'string' && capital.includes('万')) { - unit = '万' - const numMatch = capital.match(/[\d.]+/) - value = numMatch ? parseFloat(numMatch[0]) : 0 - } else if (value >= 10000) { - // 大额数字转换为万元显示 - value = value / 10000 - unit = '万' - } - - // 格式化数字,保留两位小数(如果有小数部分) - const formattedValue = value.toLocaleString('zh-CN', { - minimumFractionDigits: 0, - maximumFractionDigits: 2, - }) - - return `${formattedValue}${unit} ${currency || '人民币'}` -} - -/** - * 格式化日期显示 - * @param {string} dateStr - 日期字符串 - * @returns {string} 格式化后的日期 - */ -export function formatDate(dateStr) { - if (!dateStr) return '—' - return dateStr -} diff --git a/report-viewer/src/ui/DWBG6A2C/README.md b/report-viewer/src/ui/DWBG6A2C/README.md deleted file mode 100644 index 036c5dc..0000000 --- a/report-viewer/src/ui/DWBG6A2C/README.md +++ /dev/null @@ -1,178 +0,0 @@ -# 司南报告组件 (DWBG6A2C) - 模块化架构 - -## 概述 - -司南报告组件采用模块化架构设计,将完整的司南报告拆分成13个独立的模块,每个模块都可以作为独立的tab显示,具有独立的大标题。 - -## 数据结构 - -司南报告的数据结构如下: - -```javascript -{ - "apiID": "DWBG6A2C", - "data": { - "baseInfo": {}, // 基本信息 - "standLiveInfo": {}, // 身份信息核验 - "riskPoint": {}, // 命中风险标注 - "securityInfo": {}, // 公安重点人员核验 - "antiFraudInfo": {}, // 涉赌涉诈人员核验 - "riskList": {}, // 风险名单 - "applicationStatistics": {}, // 历史借贷行为 - "lendingStatistics": {}, // 近24个月放款情况 - "performanceStatistics": {}, // 履约情况 - "overdueRecord": {}, // 历史逾期记录 - "creditDetail": {}, // 授信详情 - "rentalBehavior": {}, // 租赁行为 - "riskSupervision": {}, // 关联风险监督 - "judiciaRiskInfos": [] // 法院风险信息 - }, - "success": true, - "timestamp": "2025-01-20 21:19:58" -} -``` - -## 模块拆分 - -司南报告被拆分成以下14个独立模块: - -| API ID | 模块名称 | 包含数据 | 组件文件 | -|--------|----------|----------|----------| -| `DWBG6A2C_BaseInfo` | 基本信息 | baseInfo | BaseInfoSection.vue | -| `DWBG6A2C_StandLiveInfo` | 身份信息核验 | standLiveInfo | StandLiveInfoSection.vue | -| `DWBG6A2C_RiskPoint` | 命中风险标注 | riskPoint | RiskPointSection.vue | -| `DWBG6A2C_SecurityInfo` | 公安重点人员核验 | securityInfo | SecurityInfoSection.vue | -| `DWBG6A2C_AntiFraudInfo` | 涉赌涉诈人员核验 | antiFraudInfo | AntiFraudInfoSection.vue | -| `DWBG6A2C_RiskList` | 风险名单 | riskList | RiskListSection.vue | -| `DWBG6A2C_ApplicationStatistics` | 历史借贷行为 | applicationStatistics | ApplicationStatisticsSection.vue | -| `DWBG6A2C_LendingStatistics` | 近24个月放款情况 | lendingStatistics | LendingStatisticsSection.vue | -| `DWBG6A2C_PerformanceStatistics` | 履约情况 | performanceStatistics | PerformanceStatisticsSection.vue | -| `DWBG6A2C_OverdueRecord` | 历史逾期记录 | overdueRecord | OverdueRecordSection.vue | -| `DWBG6A2C_CreditDetail` | 授信详情 | creditDetail | CreditDetailSection.vue | -| `DWBG6A2C_RentalBehavior` | 租赁行为 | rentalBehavior | RentalBehaviorSection.vue | -| `DWBG6A2C_RiskSupervision` | 关联风险监督 | riskSupervision | RiskSupervisionSection.vue | -| `DWBG6A2C_CourtRiskInfo` | 法院风险信息 | judiciaRiskInfos | CourtRiskInfoSection.vue | - -## 使用方法 - -### 1. 前端自动拆分 - -BaseReport.vue 已自动配置支持司南报告的模块化显示: - -```javascript -import { splitDWBG6A2CForTabs } from '@/ui/DWBG6A2C/utils/simpleSplitter.js'; - -// 处理数据拆分(支持DWBG8B4D和DWBG6A2C) -const processedReportData = computed(() => { - let data = reportData.value; - - // 拆分DWBG8B4D数据 - data = splitDWBG8B4DForTabs(data); - - // 拆分DWBG6A2C数据 - data = splitDWBG6A2CForTabs(data); - - return data; -}); -``` - -### 2. 组件配置 - -BaseReport.vue 中已配置所有司南报告模块: - -```javascript -// 司南报告 -DWBG6A2C: { - name: "司南报告", - component: defineAsyncComponent(() => import("@/ui/DWBG6A2C/index.vue")), - remark: '司南报告提供全面的个人信用风险评估,包括身份核验、风险名单、借贷行为、履约情况等多维度分析。' -}, -// ... 其他模块配置 -``` - -## 组件结构 - -``` -src/ui/DWBG6A2C/ -├── index.vue # 原始完整组件(保留) -├── README.md # 文档说明 -├── components/ # 子组件目录 -│ ├── BaseInfoSection.vue # 基本信息 -│ ├── StandLiveInfoSection.vue # 身份信息核验 -│ ├── RiskPointSection.vue # 命中风险标注 -│ ├── SecurityInfoSection.vue # 公安重点人员核验 -│ ├── AntiFraudInfoSection.vue # 涉赌涉诈人员核验 -│ ├── RiskListSection.vue # 风险名单 -│ ├── ApplicationStatisticsSection.vue # 历史借贷行为 -│ ├── LendingStatisticsSection.vue # 近24个月放款情况 -│ ├── PerformanceStatisticsSection.vue # 履约情况 -│ ├── OverdueRecordSection.vue # 历史逾期记录 -│ ├── CreditDetailSection.vue # 授信详情 -│ ├── RentalBehaviorSection.vue # 租赁行为 -│ ├── RiskSupervisionSection.vue # 关联风险监督 -│ └── CourtRiskInfoSection.vue # 法院风险信息 -└── utils/ - └── simpleSplitter.js # 数据拆分工具 -``` - -## 特色功能 - -### 1. 智能风险评估 -- 多维度风险标注 -- 智能颜色编码 -- 风险等级自动判断 - -### 2. 数据可视化 -- 渐变色彩设计 -- 图标化展示 -- 响应式布局 - -### 3. 用户友好 -- 清晰的层次结构 -- 详细的说明文档 -- 直观的风险提示 - -### 4. 模块化设计 -- 独立的模块组件 -- 可复用的工具函数 -- 灵活的数据拆分 - -## 工具函数 - -`utils/simpleSplitter.js` 提供了以下工具函数: - -- `splitDWBG6A2CForTabs()` - 数据拆分 -- `formatRiskLevel()` - 格式化风险等级 -- `formatPhoneStatus()` - 格式化手机号状态 -- `formatVerificationResult()` - 格式化身份核验结果 -- `formatInTime()` - 格式化在网时长 -- `hasRiskData()` - 检查是否有风险数据 - -## 使用示例 - -```javascript -// 在页面中使用 - -``` - -## 注意事项 - -1. 确保数据格式符合司南报告的标准结构 -2. 所有模块都支持数据为空的情况 -3. 风险评估基于实际数据动态计算 -4. 组件采用 Tailwind CSS 进行样式设计 -5. 支持移动端响应式布局 - -## 更新日志 - -- v1.0.0: 初始版本,支持完整的司南报告模块化显示 -- 包含13个独立模块 -- 支持自动数据拆分 -- 提供完整的风险评估功能 diff --git a/report-viewer/src/ui/DWBG6A2C/components/AntiFraudInfoSection.vue b/report-viewer/src/ui/DWBG6A2C/components/AntiFraudInfoSection.vue deleted file mode 100644 index 914c775..0000000 --- a/report-viewer/src/ui/DWBG6A2C/components/AntiFraudInfoSection.vue +++ /dev/null @@ -1,527 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/DWBG6A2C/components/ApplicationStatisticsSection.vue b/report-viewer/src/ui/DWBG6A2C/components/ApplicationStatisticsSection.vue deleted file mode 100644 index 08fe280..0000000 --- a/report-viewer/src/ui/DWBG6A2C/components/ApplicationStatisticsSection.vue +++ /dev/null @@ -1,398 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/DWBG6A2C/components/BaseInfoSection.vue b/report-viewer/src/ui/DWBG6A2C/components/BaseInfoSection.vue deleted file mode 100644 index 7edbf10..0000000 --- a/report-viewer/src/ui/DWBG6A2C/components/BaseInfoSection.vue +++ /dev/null @@ -1,147 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/DWBG6A2C/components/CourtRiskInfoSection.vue b/report-viewer/src/ui/DWBG6A2C/components/CourtRiskInfoSection.vue deleted file mode 100644 index 4c94553..0000000 --- a/report-viewer/src/ui/DWBG6A2C/components/CourtRiskInfoSection.vue +++ /dev/null @@ -1,591 +0,0 @@ - - - - - \ No newline at end of file diff --git a/report-viewer/src/ui/DWBG6A2C/components/CreditDetailSection.vue b/report-viewer/src/ui/DWBG6A2C/components/CreditDetailSection.vue deleted file mode 100644 index a609125..0000000 --- a/report-viewer/src/ui/DWBG6A2C/components/CreditDetailSection.vue +++ /dev/null @@ -1,300 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/DWBG6A2C/components/LendingStatisticsSection.vue b/report-viewer/src/ui/DWBG6A2C/components/LendingStatisticsSection.vue deleted file mode 100644 index 700e948..0000000 --- a/report-viewer/src/ui/DWBG6A2C/components/LendingStatisticsSection.vue +++ /dev/null @@ -1,567 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/DWBG6A2C/components/OverdueRecordSection.vue b/report-viewer/src/ui/DWBG6A2C/components/OverdueRecordSection.vue deleted file mode 100644 index 8e91936..0000000 --- a/report-viewer/src/ui/DWBG6A2C/components/OverdueRecordSection.vue +++ /dev/null @@ -1,617 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/DWBG6A2C/components/PerformanceStatisticsSection.vue b/report-viewer/src/ui/DWBG6A2C/components/PerformanceStatisticsSection.vue deleted file mode 100644 index da4c6b8..0000000 --- a/report-viewer/src/ui/DWBG6A2C/components/PerformanceStatisticsSection.vue +++ /dev/null @@ -1,522 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/DWBG6A2C/components/RentalBehaviorSection.vue b/report-viewer/src/ui/DWBG6A2C/components/RentalBehaviorSection.vue deleted file mode 100644 index 03d1c8f..0000000 --- a/report-viewer/src/ui/DWBG6A2C/components/RentalBehaviorSection.vue +++ /dev/null @@ -1,824 +0,0 @@ - - - - - \ No newline at end of file diff --git a/report-viewer/src/ui/DWBG6A2C/components/RiskListSection.vue b/report-viewer/src/ui/DWBG6A2C/components/RiskListSection.vue deleted file mode 100644 index 9f2aae6..0000000 --- a/report-viewer/src/ui/DWBG6A2C/components/RiskListSection.vue +++ /dev/null @@ -1,407 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/DWBG6A2C/components/RiskPointSection.vue b/report-viewer/src/ui/DWBG6A2C/components/RiskPointSection.vue deleted file mode 100644 index 5e946d2..0000000 --- a/report-viewer/src/ui/DWBG6A2C/components/RiskPointSection.vue +++ /dev/null @@ -1,436 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/DWBG6A2C/components/RiskSupervisionSection.vue b/report-viewer/src/ui/DWBG6A2C/components/RiskSupervisionSection.vue deleted file mode 100644 index 2e5d339..0000000 --- a/report-viewer/src/ui/DWBG6A2C/components/RiskSupervisionSection.vue +++ /dev/null @@ -1,384 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/DWBG6A2C/components/SecurityInfoSection.vue b/report-viewer/src/ui/DWBG6A2C/components/SecurityInfoSection.vue deleted file mode 100644 index 14adb53..0000000 --- a/report-viewer/src/ui/DWBG6A2C/components/SecurityInfoSection.vue +++ /dev/null @@ -1,427 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/DWBG6A2C/components/StandLiveInfoSection.vue b/report-viewer/src/ui/DWBG6A2C/components/StandLiveInfoSection.vue deleted file mode 100644 index 7d07e97..0000000 --- a/report-viewer/src/ui/DWBG6A2C/components/StandLiveInfoSection.vue +++ /dev/null @@ -1,383 +0,0 @@ - - - - \ No newline at end of file diff --git a/report-viewer/src/ui/DWBG6A2C/index.vue b/report-viewer/src/ui/DWBG6A2C/index.vue deleted file mode 100644 index 6b710b0..0000000 --- a/report-viewer/src/ui/DWBG6A2C/index.vue +++ /dev/null @@ -1,120 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/DWBG6A2C/utils/intervalFormatter.js b/report-viewer/src/ui/DWBG6A2C/utils/intervalFormatter.js deleted file mode 100644 index dd54cf2..0000000 --- a/report-viewer/src/ui/DWBG6A2C/utils/intervalFormatter.js +++ /dev/null @@ -1,304 +0,0 @@ -/** - * 区间表达式格式化工具 - * 将数学区间表达式转换为用户友好的文本描述 - */ - -/** - * 格式化区间表达式 - * @param {string} interval - 区间表达式,如 "(0,1000)", "[2000,30000)", "[17,+)" - * @param {string} unit - 单位,如 "元", "次", "个", "天" 等 - * @returns {string} 格式化后的文本,如果格式化失败则返回原数据 - */ -export function formatInterval(interval, unit = "") { - // 如果数据为空或无效,返回原数据 - if (!interval || interval === "-" || interval === "0") { - return interval || "-"; - } - - try { - // 处理特殊格式,如 "3,6(个月)" - if (interval.includes("(") && interval.includes(")")) { - const match = interval.match(/^(\d+(?:,\d+)*)\((.+)\)$/); - if (match) { - const numbers = match[1].split(",").map((n) => n.trim()); - const timeUnit = match[2]; - if (numbers.length === 2) { - return `${numbers[0]}-${numbers[1]}${timeUnit}`; - } - return `${numbers.join(", ")}${timeUnit}`; - } - } - - // 处理区间表达式 - const intervalPattern = - /^([\[\(])(\d+(?:\.\d+)?),(\d+(?:\.\d+)?|\+)([\]\)])$/; - const match = interval.match(intervalPattern); - - // 如果不是区间表达式,返回原数据 - if (!match) { - return interval; - } - - const [, leftBracket, leftValue, rightValue, rightBracket] = match; - const isLeftInclusive = leftBracket === "["; - const isRightInclusive = rightBracket === "]"; - const isRightInfinity = rightValue === "+"; - - let result = ""; - - if (isRightInfinity) { - // 处理无穷大情况,如 "[17,+)" - if (isLeftInclusive) { - result = `≥${leftValue}${unit}`; - } else { - result = `>${leftValue}${unit}`; - } - } else { - // 处理有限区间 - const leftNum = parseFloat(leftValue); - const rightNum = parseFloat(rightValue); - - // 检查数值是否有效 - if (isNaN(leftNum) || isNaN(rightNum)) { - return interval; - } - - if (leftNum === rightNum) { - // 单点值 - result = `${leftNum}${unit}`; - } else { - // 区间值 - 简化为实际数值范围 - if (isLeftInclusive && isRightInclusive) { - result = `${leftNum}-${rightNum}${unit}`; - } else if (isLeftInclusive && !isRightInclusive) { - // 右开区间,显示到 rightNum-1 - result = `${leftNum}-${rightNum - 1}${unit}`; - } else if (!isLeftInclusive && isRightInclusive) { - // 左开区间,显示从 leftNum+1 - result = `${leftNum + 1}-${rightNum}${unit}`; - } else { - // 两端都不包含,显示从 leftNum+1 到 rightNum-1 - result = `${leftNum + 1}-${rightNum - 1}${unit}`; - } - } - } - - return result; - } catch (error) { - // 如果格式化过程中出现错误,返回原数据 - console.warn("区间格式化失败:", error, "原数据:", interval); - return interval; - } -} - -/** - * 格式化金额区间 - * @param {string} interval - 金额区间表达式 - * @returns {string} 格式化后的金额文本 - */ -export function formatAmountInterval(interval) { - return formatInterval(interval, "元"); -} - -/** - * 格式化次数区间 - * @param {string} interval - 次数区间表达式 - * @returns {string} 格式化后的次数文本 - */ -export function formatCountInterval(interval) { - return formatInterval(interval, "次"); -} - -/** - * 格式化天数区间 - * @param {string} interval - 天数区间表达式 - * @returns {string} 格式化后的天数文本 - */ -export function formatDaysInterval(interval) { - return formatInterval(interval, "天"); -} - -/** - * 格式化机构数量区间 - * @param {string} interval - 机构数量区间表达式 - * @returns {string} 格式化后的机构数量文本 - */ -export function formatInstitutionInterval(interval) { - return formatInterval(interval, "家"); -} - -/** - * 格式化时间区间 - * @param {string} interval - 时间区间表达式 - * @returns {string} 格式化后的时间文本 - */ -export function formatTimeInterval(interval) { - if (!interval || interval === "-") { - return "-"; - } - - // 处理特殊格式,如 "3,6(个月)" - if (interval.includes("(") && interval.includes(")")) { - const match = interval.match(/^(\d+(?:,\d+)*)\((.+)\)$/); - if (match) { - const numbers = match[1].split(",").map((n) => n.trim()); - const timeUnit = match[2]; - if (numbers.length === 2) { - return `${numbers[0]}-${numbers[1]}${timeUnit}`; - } - return `${numbers.join(", ")}${timeUnit}`; - } - } - - return formatInterval(interval, ""); -} - -/** - * 格式化申请次数区间 - * @param {string} interval - 申请次数区间表达式,格式如 "2/1" - * @returns {string} 格式化后的申请次数文本 - */ -export function formatApplicationInterval(interval) { - if (!interval || interval === "-") { - return "-"; - } - - // 处理 "2/1" 格式,表示 申请次数/机构数 - if (interval.includes("/")) { - const [applyCount, institutionCount] = interval.split("/"); - return `${applyCount}次/${institutionCount}家`; - } - - return formatCountInterval(interval); -} - -/** - * 格式化租赁申请数据 - 专门处理司南报告中的 "次数/机构数" 格式 - * @param {string} data - 租赁申请数据,格式如 "2/1" (次数/机构数) - * @returns {Object} 包含格式化后的次数和机构数的对象 - */ -export function formatRentalApplicationData(data) { - if (!data || data === "-" || data === "0/0") { - return { - count: 0, - institutions: 0, - countText: "0 次", - institutionsText: "0 家", - combinedText: "0 次 / 0 家", - }; - } - - if (data.includes("/")) { - const [countStr, institutionsStr] = data.split("/"); - const count = parseInt(countStr) || 0; - const institutions = parseInt(institutionsStr) || 0; - - return { - count, - institutions, - countText: `${count} 次`, - institutionsText: `${institutions} 家`, - combinedText: `${count} 次 / ${institutions} 家`, - }; - } - - // 如果不是标准格式,返回原数据 - return { - count: 0, - institutions: 0, - countText: data, - institutionsText: data, - combinedText: data, - }; -} - -/** - * 格式化风险等级文本 - * @param {string} level - 风险等级,如 "C2,C5" - * @returns {string} 格式化后的风险等级文本 - */ -export function formatRiskLevel(level) { - if (!level) return "-"; - - const levelMap = { - 0: "正常人员", - A: "前科:侵犯公民人身权利,民主权利", - A1: "盗窃", - A2: "诈骗", - A3: "抢劫/夺", - A4: "故意伤害/杀人", - A5: "强奸/性侵/猥亵", - B: "经济类前科", - B1: "走私", - B2: "破坏金融管理秩序", - B3: "正常人员", - B4: "洗钱", - B5: "洗钱", - C: "妨害社会管理秩序", - C1: "扰乱公共秩序", - C2: "妨害司法", - C3: "涉毒", - C4: "涉黄刑案", - C5: "帮信/掩隐/侵公", - D: "重点", - D1: "危害国家、公共安全", - D2: "涉稳", - D3: "涉及境外", - D4: "涉恐、疆藏", - D5: "涉黑", - E: "涉交通案件", - F: "法院文书", - }; - - return level - .split(",") - .map((l) => levelMap[l.trim()] || l.trim()) - .join("、"); -} - -/** - * 格式化状态文本 - * @param {string} status - 状态值 - * @param {Object} statusMap - 状态映射对象 - * @returns {string} 格式化后的状态文本 - */ -export function formatStatus(status, statusMap = {}) { - if (status === undefined || status === null || status === "") { - return "-"; - } - - return statusMap[status] || status; -} - -/** - * 格式化风险标识 - * @param {number} flag - 风险标识,0=未查得,1=高风险,2=低风险 - * @returns {Object} 包含文本和样式的对象 - */ -export function formatRiskFlag(flag) { - const flagMap = { - 0: { text: "未查得", class: "bg-gray-100 text-gray-700" }, - 1: { text: "高风险", class: "bg-red-100 text-red-700" }, - 2: { text: "低风险", class: "bg-green-100 text-green-700" }, - }; - - return ( - flagMap[flag] || { text: "未知", class: "bg-gray-100 text-gray-700" } - ); -} - -/** - * 格式化验证结果 - * @param {string} result - 验证结果 - * @returns {Object} 包含文本和样式的对象 - */ -export function formatVerificationResult(result) { - const resultMap = { - 一致: { text: "一致", class: "text-green-600" }, - 不一致: { text: "不一致", class: "text-red-600" }, - 验证通过: { text: "验证通过", class: "text-green-600" }, - 验证失败: { text: "验证失败", class: "text-red-600" }, - }; - - return resultMap[result] || { text: result || "-", class: "text-gray-600" }; -} diff --git a/report-viewer/src/ui/DWBG6A2C/utils/simpleSplitter.js b/report-viewer/src/ui/DWBG6A2C/utils/simpleSplitter.js deleted file mode 100644 index 8dc05d1..0000000 --- a/report-viewer/src/ui/DWBG6A2C/utils/simpleSplitter.js +++ /dev/null @@ -1,311 +0,0 @@ -/** - * 司南报告(DWBG6A2C)数据拆分工具 - * 将完整的司南报告数据拆分成多个独立的模块,用于在不同的tab中显示 - */ - -/** - * 将DWBG6A2C数据拆分为多个独立的tab模块 - * @param {Array} reportData - 原始报告数据数组 - * @returns {Array} 拆分后的模块数组 - */ -export function splitDWBG6A2CForTabs(reportData) { - // 查找DWBG6A2C数据 - const dwbg6a2cData = reportData.find(item => item.data?.apiID === 'DWBG6A2C'); - - if (!dwbg6a2cData || !dwbg6a2cData.data?.data) { - return reportData; // 如果没有找到DWBG6A2C数据,返回原数据 - } - - const originalData = dwbg6a2cData.data.data; - const baseTimestamp = dwbg6a2cData.data.timestamp; - - // 创建拆分后的模块数组 - const splitModules = []; - - // 1. 基本信息 - // if (originalData.baseInfo) { - // splitModules.push({ - // data: { - // apiID: 'DWBG6A2C_BaseInfo', - // data: { - // baseInfo: originalData.baseInfo - // }, - // success: true, - // timestamp: baseTimestamp - // } - // }); - // } - - // 2. 身份信息核验 - if (originalData.standLiveInfo) { - splitModules.push({ - data: { - apiID: 'DWBG6A2C_StandLiveInfo', - data: { - standLiveInfo: originalData.standLiveInfo - }, - success: true, - timestamp: baseTimestamp - } - }); - } - - // 3. 命中风险标注 - if (originalData.riskPoint) { - splitModules.push({ - data: { - apiID: 'DWBG6A2C_RiskPoint', - data: { - riskPoint: originalData.riskPoint - }, - success: true, - timestamp: baseTimestamp - } - }); - } - - // 4. 公安重点人员核验 - if (originalData.securityInfo) { - splitModules.push({ - data: { - apiID: 'DWBG6A2C_SecurityInfo', - data: { - securityInfo: originalData.securityInfo - }, - success: true, - timestamp: baseTimestamp - } - }); - } - - // 5. 涉赌涉诈人员核验 - if (originalData.antiFraudInfo) { - splitModules.push({ - data: { - apiID: 'DWBG6A2C_AntiFraudInfo', - data: { - antiFraudInfo: originalData.antiFraudInfo - }, - success: true, - timestamp: baseTimestamp - } - }); - } - - // 6. 风险名单 - if (originalData.riskList) { - splitModules.push({ - data: { - apiID: 'DWBG6A2C_RiskList', - data: { - riskList: originalData.riskList - }, - success: true, - timestamp: baseTimestamp - } - }); - } - - // 7. 历史借贷行为 - if (originalData.applicationStatistics) { - splitModules.push({ - data: { - apiID: 'DWBG6A2C_ApplicationStatistics', - data: { - applicationStatistics: originalData.applicationStatistics - }, - success: true, - timestamp: baseTimestamp - } - }); - } - - // 8. 近24个月放款情况 - if (originalData.lendingStatistics) { - splitModules.push({ - data: { - apiID: 'DWBG6A2C_LendingStatistics', - data: { - lendingStatistics: originalData.lendingStatistics - }, - success: true, - timestamp: baseTimestamp - } - }); - } - - // 9. 履约情况 - if (originalData.performanceStatistics) { - splitModules.push({ - data: { - apiID: 'DWBG6A2C_PerformanceStatistics', - data: { - performanceStatistics: originalData.performanceStatistics - }, - success: true, - timestamp: baseTimestamp - } - }); - } - - // 10. 历史逾期记录 - if (originalData.overdueRecord) { - splitModules.push({ - data: { - apiID: 'DWBG6A2C_OverdueRecord', - data: { - overdueRecord: originalData.overdueRecord - }, - success: true, - timestamp: baseTimestamp - } - }); - } - - // 11. 授信详情 - if (originalData.creditDetail && Object.keys(originalData.creditDetail).length > 0) { - splitModules.push({ - data: { - apiID: 'DWBG6A2C_CreditDetail', - data: { - creditDetail: originalData.creditDetail - }, - success: true, - timestamp: baseTimestamp - } - }); - } - - // 12. 租赁行为 - if (originalData.rentalBehavior) { - splitModules.push({ - data: { - apiID: 'DWBG6A2C_RentalBehavior', - data: { - rentalBehavior: originalData.rentalBehavior - }, - success: true, - timestamp: baseTimestamp - } - }); - } - - // 13. 关联风险监督 - if (originalData.riskSupervision) { - splitModules.push({ - data: { - apiID: 'DWBG6A2C_RiskSupervision', - data: { - riskSupervision: originalData.riskSupervision - }, - success: true, - timestamp: baseTimestamp - } - }); - } - - // 14. 法院风险信息 - if (originalData.judiciaRiskInfos && originalData.judiciaRiskInfos.length > 0) { - splitModules.push({ - data: { - apiID: 'DWBG6A2C_CourtRiskInfo', - data: { - judiciaRiskInfos: originalData.judiciaRiskInfos - }, - success: true, - timestamp: baseTimestamp - } - }); - } - - // 移除原始的DWBG6A2C数据,添加拆分后的模块 - const otherData = reportData.filter(item => item.data?.apiID !== 'DWBG6A2C'); - - return [...otherData, ...splitModules]; -} - -/** - * 格式化风险等级描述 - * @param {string} level - 风险等级 - * @returns {object} 包含颜色和文本的对象 - */ -export function formatRiskLevel(level) { - const riskLevels = { - '0': { color: 'text-green-600', bg: 'bg-green-100', text: '无风险', icon: '✅' }, - '1': { color: 'text-red-600', bg: 'bg-red-100', text: '有风险', icon: '⚠️' }, - 'A': { color: 'text-yellow-600', bg: 'bg-yellow-100', text: '较低风险', icon: '⚠️' }, - 'B': { color: 'text-orange-600', bg: 'bg-orange-100', text: '低风险', icon: '⚠️' }, - 'C': { color: 'text-red-600', bg: 'bg-red-100', text: '中风险', icon: '🚨' }, - 'D': { color: 'text-red-700', bg: 'bg-red-200', text: '高风险', icon: '🚨' } - }; - - return riskLevels[level] || { color: 'text-gray-600', bg: 'bg-gray-100', text: '未知', icon: '❓' }; -} - -/** - * 格式化手机号码状态 - * @param {number} status - 状态码 - * @returns {object} 包含颜色和文本的对象 - */ -export function formatPhoneStatus(status) { - const statusMap = { - '-1': { color: 'text-gray-600', bg: 'bg-gray-100', text: '未查得', icon: '❓' }, - '0': { color: 'text-red-600', bg: 'bg-red-100', text: '空号', icon: '❌' }, - '1': { color: 'text-green-600', bg: 'bg-green-100', text: '实号', icon: '✅' }, - '2': { color: 'text-orange-600', bg: 'bg-orange-100', text: '停机', icon: '⏸️' }, - '3': { color: 'text-gray-600', bg: 'bg-gray-100', text: '库无', icon: '❓' }, - '4': { color: 'text-yellow-600', bg: 'bg-yellow-100', text: '沉默号', icon: '😴' }, - '5': { color: 'text-red-600', bg: 'bg-red-100', text: '风险号', icon: '⚠️' } - }; - - return statusMap[status.toString()] || { color: 'text-gray-600', bg: 'bg-gray-100', text: '未知', icon: '❓' }; -} - -/** - * 格式化身份核验结果 - * @param {string} result - 核验结果 - * @returns {object} 包含颜色和文本的对象 - */ -export function formatVerificationResult(result) { - const resultMap = { - '0': { color: 'text-green-600', bg: 'bg-green-100', text: '一致', icon: '✅' }, - '1': { color: 'text-red-600', bg: 'bg-red-100', text: '不一致或不存在', icon: '❌' } - }; - - return resultMap[result] || { color: 'text-gray-600', bg: 'bg-gray-100', text: '未知', icon: '❓' }; -} - -/** - * 格式化在网时长 - * @param {string} inTime - 在网时长代码 - * @returns {object} 包含颜色和文本的对象 - */ -export function formatInTime(inTime) { - const timeMap = { - '0': { color: 'text-red-600', bg: 'bg-red-100', text: '0-3个月', icon: '📱' }, - '3': { color: 'text-orange-600', bg: 'bg-orange-100', text: '3-6个月', icon: '📱' }, - '6': { color: 'text-yellow-600', bg: 'bg-yellow-100', text: '6-12个月', icon: '📱' }, - '12': { color: 'text-blue-600', bg: 'bg-blue-100', text: '12-24个月', icon: '📱' }, - '24': { color: 'text-green-600', bg: 'bg-green-100', text: '24个月以上', icon: '📱' }, - '99': { color: 'text-gray-600', bg: 'bg-gray-100', text: '状态异常', icon: '⚠️' }, - '-1': { color: 'text-gray-600', bg: 'bg-gray-100', text: '查无记录', icon: '❓' } - }; - - return timeMap[inTime] || { color: 'text-gray-600', bg: 'bg-gray-100', text: '未知', icon: '❓' }; -} - -/** - * 检查是否有风险数据 - * @param {Object} data - 数据对象 - * @returns {boolean} 是否有风险 - */ -export function hasRiskData(data) { - if (!data) return false; - - // 检查对象中是否有非0值 - return Object.values(data).some(value => { - if (typeof value === 'number') return value > 0; - if (typeof value === 'string') return value !== '0' && value !== '-' && value !== ''; - return false; - }); -} diff --git a/report-viewer/src/ui/FLXG7E8F/components/CaseDetail.vue b/report-viewer/src/ui/FLXG7E8F/components/CaseDetail.vue deleted file mode 100644 index 06d0299..0000000 --- a/report-viewer/src/ui/FLXG7E8F/components/CaseDetail.vue +++ /dev/null @@ -1,404 +0,0 @@ - - - - diff --git a/report-viewer/src/ui/FLXG7E8F/components/StatisticsOverview.vue b/report-viewer/src/ui/FLXG7E8F/components/StatisticsOverview.vue deleted file mode 100644 index 1fad049..0000000 --- a/report-viewer/src/ui/FLXG7E8F/components/StatisticsOverview.vue +++ /dev/null @@ -1,285 +0,0 @@ - - - - diff --git a/report-viewer/src/ui/FLXG7E8F/index.vue b/report-viewer/src/ui/FLXG7E8F/index.vue deleted file mode 100644 index cef906a..0000000 --- a/report-viewer/src/ui/FLXG7E8F/index.vue +++ /dev/null @@ -1,457 +0,0 @@ - - - - - - diff --git a/report-viewer/src/ui/FLXG7E8F/utils/lawsuitUtils.js b/report-viewer/src/ui/FLXG7E8F/utils/lawsuitUtils.js deleted file mode 100644 index 7f1ff3d..0000000 --- a/report-viewer/src/ui/FLXG7E8F/utils/lawsuitUtils.js +++ /dev/null @@ -1,303 +0,0 @@ -// 案件类型映射表 -export const lawsuitTypeMap = { - breachCase: { - text: '失信被执行', - color: 'text-red-600 bg-red-50', - darkColor: 'bg-red-500', - riskLevel: 'high', // 高风险 - }, - consumptionRestriction: { - text: '限高被执行', - color: 'text-orange-600 bg-orange-50', - darkColor: 'bg-orange-500', - riskLevel: 'high', // 高风险 - }, - criminal: { - text: '刑事案件', - color: 'text-red-600 bg-red-50', - darkColor: 'bg-red-500', - riskLevel: 'high', // 高风险 - }, - civil: { - text: '民事案件', - color: 'text-blue-600 bg-blue-50', - darkColor: 'bg-blue-500', - riskLevel: 'medium', // 中风险 - }, - administrative: { - text: '行政案件', - color: 'text-purple-600 bg-purple-50', - darkColor: 'bg-purple-500', - riskLevel: 'medium', // 中风险 - }, - implement: { - text: '执行案件', - color: 'text-orange-600 bg-orange-50', - darkColor: 'bg-orange-500', - riskLevel: 'medium', // 中风险 - }, - bankrupt: { - text: '强制清算与破产案件', - color: 'text-rose-600 bg-rose-50', - darkColor: 'bg-rose-500', - riskLevel: 'high', // 高风险 - }, - preservation: { - text: '非诉保全审查', - color: 'text-amber-600 bg-amber-50', - darkColor: 'bg-amber-500', - riskLevel: 'low', // 低风险 - }, -} - -// 案件类型文本 -export const getCaseTypeText = type => { - return lawsuitTypeMap[type]?.text || '其他案件' -} - -// 案件类型颜色 -export const getCaseTypeColor = type => { - return lawsuitTypeMap[type]?.color || 'text-gray-600 bg-gray-50' -} - -// 案件类型深色 -export const getCaseTypeDarkColor = type => { - return lawsuitTypeMap[type]?.darkColor || 'bg-gray-500' -} - -// 格式化日期显示 -export const formatDate = dateStr => { - if (!dateStr) return '—' - // 转换YYYY-MM-DD为年月日格式 - if (dateStr.includes('-')) { - const parts = dateStr.split('-') - if (parts.length === 3) { - return `${parts[0]}年${parts[1]}月${parts[2]}日` - } - } - return dateStr // 如果不是标准格式则返回原始字符串 -} - -// 格式化金额显示(单位:万元) -export const formatLawsuitMoney = money => { - if (!money) return '—' - - const value = parseFloat(money) - if (isNaN(value)) return '—' - - // 超过1亿显示亿元 - if (value >= 10000) { - return ( - (value / 10000).toLocaleString('zh-CN', { - minimumFractionDigits: 0, - maximumFractionDigits: 2, - }) + ' 亿元' - ) - } - - // 否则显示万元 - return ( - value.toLocaleString('zh-CN', { - minimumFractionDigits: 0, - maximumFractionDigits: 2, - }) + ' 万元' - ) -} - -// 获取案件状态样式 -export const getCaseStatusClass = status => { - if (!status) return 'bg-gray-100 text-gray-500' - - if (status.includes('已结') || status.includes('已办结')) { - return 'bg-green-50 text-green-600' - } else if (status.includes('执行中') || status.includes('审理中')) { - return 'bg-blue-50 text-blue-600' - } else if (status.includes('未执行')) { - return 'bg-amber-50 text-amber-600' - } else { - return 'bg-gray-100 text-gray-500' - } -} - -// 获取企业状态对应的样式 -export const getStatusClass = status => { - if (!status) return 'bg-gray-100 text-gray-500' - - if (status.includes('注销') || status.includes('吊销')) { - return 'bg-red-50 text-red-600' - } else if (status.includes('存续') || status.includes('在营')) { - return 'bg-green-50 text-green-600' - } else if (status.includes('筹建') || status.includes('新设')) { - return 'bg-blue-50 text-blue-600' - } else { - return 'bg-yellow-50 text-yellow-600' - } -} - -// 格式化资本金额显示 -export const formatCapital = (capital, currency) => { - if (!capital) return '—' - - // 检查是否包含"万"字或需要显示为万元 - let unit = '' - let value = parseFloat(capital) - - // 处理原始数据中可能带有的单位 - if (typeof capital === 'string' && capital.includes('万')) { - unit = '万' - // 提取数字部分 - const numMatch = capital.match(/[\d.]+/) - value = numMatch ? parseFloat(numMatch[0]) : 0 - } else if (value >= 10000) { - // 大额数字转换为万元显示 - value = value / 10000 - unit = '万' - } - - // 格式化数字,保留两位小数(如果有小数部分) - const formattedValue = value.toLocaleString('zh-CN', { - minimumFractionDigits: 0, - maximumFractionDigits: 2, - }) - - return `${formattedValue}${unit} ${currency || '人民币'}` -} - -// 获取涉诉风险等级 -export const getRiskLevel = lawsuitInfo => { - if (!lawsuitInfo) { - return { - level: 'low', - text: '低风险', - color: 'text-green-600 bg-green-50', - } - } - - // 失信被执行人是最高风险 - if (lawsuitInfo.breachCaseList && lawsuitInfo.breachCaseList.length > 0) { - return { - level: 'high', - text: '高风险', - color: 'text-red-600 bg-red-50', - } - } - - // 限高被执行人是最高风险 - if (lawsuitInfo.consumptionRestrictionList && lawsuitInfo.consumptionRestrictionList.length > 0) { - return { - level: 'high', - text: '高风险', - color: 'text-red-600 bg-red-50', - } - } - - // 有涉诉数据的风险级别 - if (lawsuitInfo.lawsuitStat && Object.keys(lawsuitInfo.lawsuitStat).length > 0) { - // 检查是否有未结案的案件 - const data = lawsuitInfo.lawsuitStat - if (data.count && data.count.count_wei_total && data.count.count_wei_total > 0) { - return { - level: 'medium', - text: '中风险', - color: 'text-amber-600 bg-amber-50', - } - } - - // 只有已结案的为低中风险 - return { - level: 'low-medium', - text: '低中风险', - color: 'text-yellow-600 bg-yellow-50', - } - } - - return { - level: 'low', - text: '低风险', - color: 'text-green-600 bg-green-50', - } -} - -// 获取涉诉案件统计 -export const getLawsuitStats = lawsuitInfo => { - if (!lawsuitInfo) return null - - const stats = { - total: 0, - types: [], - } - - // 统计各类型案件数量 - Object.keys(lawsuitTypeMap).forEach(type => { - let count = 0 - - if (type === 'breachCase') { - count = lawsuitInfo.breachCaseList && lawsuitInfo.breachCaseList.length > 0 ? lawsuitInfo.breachCaseList.length : 0 - } else if (type === 'consumptionRestriction') { - count = lawsuitInfo.consumptionRestrictionList && lawsuitInfo.consumptionRestrictionList.length > 0 ? lawsuitInfo.consumptionRestrictionList.length : 0 - } else if (lawsuitInfo.lawsuitStat && lawsuitInfo.lawsuitStat[type] && Object.keys(lawsuitInfo.lawsuitStat[type]).length > 0) { - const typeData = lawsuitInfo.lawsuitStat[type] - count = typeData.cases && typeData.cases.length ? typeData.cases.length : 0 - } - - if (count > 0) { - stats.total += count - stats.types.push({ - type, - count, - name: getCaseTypeText(type), - color: getCaseTypeColor(type), - darkColor: getCaseTypeDarkColor(type), - }) - } - }) - - return stats -} - -// 获取案件类型优先级顺序 -export const getCaseTypePriority = () => { - return [ - 'breachCase', // 失信被执行人(最高风险) - 'consumptionRestriction', // 限高被执行人 - 'criminal', // 刑事案件 - 'civil', // 民事案件 - 'administrative', // 行政案件 - 'implement', // 执行案件 - 'bankrupt', // 强制清算与破产案件 - 'preservation', // 非诉保全审查 - ] -} - -// 根据案件类型获取风险等级 -export const getCaseTypeRiskLevel = caseType => { - const typeInfo = lawsuitTypeMap[caseType] - if (!typeInfo) { - return { - level: 'low', - text: '低风险', - color: 'text-green-600 bg-green-50', - } - } - - const riskLevelMap = { - high: { - text: '高风险', - color: 'text-red-600 bg-red-50', - }, - medium: { - text: '中风险', - color: 'text-amber-600 bg-amber-50', - }, - low: { - text: '低风险', - color: 'text-green-600 bg-green-50', - }, - } - - return { - level: typeInfo.riskLevel, - ...riskLevelMap[typeInfo.riskLevel], - } -} - diff --git a/report-viewer/src/ui/JRZQ09J8/README.md b/report-viewer/src/ui/JRZQ09J8/README.md deleted file mode 100644 index ee245aa..0000000 --- a/report-viewer/src/ui/JRZQ09J8/README.md +++ /dev/null @@ -1,165 +0,0 @@ -# 收入评估组件 (JRZQ09J8) - -## 组件概述 - -基于全国社会保险信息系统的缴费基数数据进行收入水平评估,为企业提供专业的收入分析和风险评估服务。 - -## 组件结构 - -``` -JRZQ09J8/ -├── index.vue # 主组件 -├── components/ # 子组件目录 -│ ├── IncomeOverview.vue # 华丽的收入评估概览 -│ ├── IncomeAnalysis.vue # 详细收入分析 -│ └── IncomeLevelGuide.vue # 社保评级对照表 -├── utils/ # 工具函数目录 -│ └── incomeUtils.js # 收入评估工具函数 -└── README.md # 说明文档 -``` - -## 使用方法 - -### 基本用法 - -```vue - - - -``` - -## 数据字段说明 - -| 字段名 | 类型 | 必填 | 描述 | 示例值 | -|-------|------|------|------|--------| -| level | String | 是 | 社保评级等级 | "G" | - -## 评级对照表 - -| level 值 | 社保评级 | 对应月收入范围 | 风险等级 | -|----------|----------|----------------|----------| -| - | **无记录** | 查询无社保记录 | 高风险 | -| A | **A级** | (2000, 4000)元 | 中高风险 | -| B | **B级** | (4000, 6000)元 | 中等风险 | -| C | **C级** | (6000, 8000)元 | 中低风险 | -| D | **D级** | (8000, 10000)元 | 低风险 | -| E | **E级** | (10000, 14000)元 | 很低风险 | -| F | **F级** | (14000, 18000)元 | 极低风险 | -| G | **G级** | (18000, 22000)元 | 极低风险 | -| H | **H级** | (22000, 26000)元 | 无风险 | -| I | **I级** | (26000, 30000)元 | 无风险 | -| J | **J级** | (30000+)元 | 零风险 | - -## 组件特性 - -### 1. 华丽的视觉展示 -- **渐变背景**:使用高级渐变色彩方案 -- **3D效果**:卡片阴影和浮动动画 -- **动态装饰**:浮动圆圈装饰元素 -- **响应式设计**:完美适配各种屏幕尺寸 - -### 2. 专业的数据分析 -- **收入等级可视化**:柱状图展示收入分布 -- **市场对比分析**:与市场平均水平对比 -- **信用风险评估**:基于收入的风险评级 -- **消费能力分析**:预测消费潜力 - -### 3. 详细的评级指南 -- **完整对照表**:所有等级的详细说明 -- **特性标签**:每个等级的关键特征 -- **数据可靠性**:展示数据准确率和覆盖范围 - -### 4. 智能风险评估 -- **动态评分**:根据收入等级自动计算风险分数 -- **个性化建议**:针对不同等级的专业建议 -- **市场定位**:精确的市场百分位排名 - -## 工具函数 - -### incomeUtils.js - -提供了以下核心功能: - -- `getIncomeLevelInfo(level)` - 获取收入等级详细信息 -- `getIncomeRange(level)` - 获取收入范围 -- `getRiskLevel(level)` - 获取风险等级 -- `getMarketComparison(level)` - 获取市场对比分析 -- `getCreditRiskAssessment(level)` - 获取信用风险评估 -- `getConsumptionCapacity(level)` - 获取消费能力分析 -- `generateIncomeAssessmentReport(level)` - 生成完整评估报告 - -## 视觉设计亮点 - -### 1. 色彩系统 -- 使用专业的收入等级色彩映射 -- 渐变背景营造高端感 -- 风险等级颜色区分清晰 - -### 2. 交互体验 -- 悬停效果增强用户体验 -- 平滑的动画过渡 -- 直观的视觉反馈 - -### 3. 信息架构 -- 层次分明的信息展示 -- 重点突出的核心数据 -- 完整的补充说明 - -## 数据说明 - -### 评估依据 -- 基于全国社会保险信息系统 -- 使用社保缴费基数推算收入水平 -- 数据准确率达95%以上 - -### 使用限制 -- 收入范围为税前月收入 -- 存在地区差异,仅供参考 -- 建议结合其他收入证明材料 - -### 更新频率 -- 数据实时更新 -- 全国范围覆盖 -- 持续优化算法模型 - -## 业务价值 - -### 1. 风险控制 -- 精确的收入评估降低信贷风险 -- 多维度风险分析提升决策质量 -- 智能化评分系统提高效率 - -### 2. 客户分层 -- 基于收入的客户分级管理 -- 个性化服务策略制定 -- 精准的市场定位分析 - -### 3. 合规要求 -- 符合金融监管要求 -- 数据来源权威可靠 -- 评估过程透明公开 - -## 注意事项 - -1. 确保传入正确的level值 -2. 组件会自动处理异常数据 -3. 建议在网络良好的环境下使用 -4. 定期更新评估标准以保持准确性 - -## 更新日志 - -- v1.0.0 - 初始版本,支持基础收入评估功能 -- 华丽的视觉展示效果 -- 完整的评级对照系统 -- 专业的风险分析功能 diff --git a/report-viewer/src/ui/JRZQ09J8/components/IncomeAnalysis.vue b/report-viewer/src/ui/JRZQ09J8/components/IncomeAnalysis.vue deleted file mode 100644 index 19660bc..0000000 --- a/report-viewer/src/ui/JRZQ09J8/components/IncomeAnalysis.vue +++ /dev/null @@ -1,300 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/JRZQ09J8/components/IncomeLevelGuide.vue b/report-viewer/src/ui/JRZQ09J8/components/IncomeLevelGuide.vue deleted file mode 100644 index b4bdaad..0000000 --- a/report-viewer/src/ui/JRZQ09J8/components/IncomeLevelGuide.vue +++ /dev/null @@ -1,445 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/JRZQ09J8/components/IncomeOverview.vue b/report-viewer/src/ui/JRZQ09J8/components/IncomeOverview.vue deleted file mode 100644 index db6e3a7..0000000 --- a/report-viewer/src/ui/JRZQ09J8/components/IncomeOverview.vue +++ /dev/null @@ -1,223 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/JRZQ09J8/index.vue b/report-viewer/src/ui/JRZQ09J8/index.vue deleted file mode 100644 index 40779c4..0000000 --- a/report-viewer/src/ui/JRZQ09J8/index.vue +++ /dev/null @@ -1,524 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/JRZQ09J8/utils/incomeUtils.js b/report-viewer/src/ui/JRZQ09J8/utils/incomeUtils.js deleted file mode 100644 index 7f97535..0000000 --- a/report-viewer/src/ui/JRZQ09J8/utils/incomeUtils.js +++ /dev/null @@ -1,414 +0,0 @@ -/** - * 收入评估工具函数 - */ - -/** - * 收入等级映射表 - */ -export const INCOME_LEVEL_MAP = { - '-': { - name: '无记录', - range: '查询无社保记录', - minAmount: 0, - maxAmount: 0, - color: '#94a3b8', - riskLevel: 'high', - description: '未发现社保缴费记录,无法进行收入评估' - }, - 'A': { - name: 'A级收入', - range: '2,000 - 4,000 元', - minAmount: 2000, - maxAmount: 4000, - color: '#ef4444', - riskLevel: 'medium-high', - description: '基础收入水平,消费能力有限' - }, - 'B': { - name: 'B级收入', - range: '4,000 - 6,000 元', - minAmount: 4000, - maxAmount: 6000, - color: '#f97316', - riskLevel: 'medium', - description: '普通收入水平,具备基础消费能力' - }, - 'C': { - name: 'C级收入', - range: '6,000 - 8,000 元', - minAmount: 6000, - maxAmount: 8000, - color: '#eab308', - riskLevel: 'medium-low', - description: '中等收入水平,消费能力良好' - }, - 'D': { - name: 'D级收入', - range: '8,000 - 10,000 元', - minAmount: 8000, - maxAmount: 10000, - color: '#84cc16', - riskLevel: 'low', - description: '中等偏上收入,消费能力较强' - }, - 'E': { - name: 'E级收入', - range: '10,000 - 14,000 元', - minAmount: 10000, - maxAmount: 14000, - color: '#22c55e', - riskLevel: 'very-low', - description: '良好收入水平,消费能力强劲' - }, - 'F': { - name: 'F级收入', - range: '14,000 - 18,000 元', - minAmount: 14000, - maxAmount: 18000, - color: '#10b981', - riskLevel: 'very-low', - description: '较高收入水平,消费能力很强' - }, - 'G': { - name: 'G级收入', - range: '18,000 - 22,000 元', - minAmount: 18000, - maxAmount: 22000, - color: '#06b6d4', - riskLevel: 'minimal', - description: '高收入水平,消费能力强大' - }, - 'H': { - name: 'H级收入', - range: '22,000 - 26,000 元', - minAmount: 22000, - maxAmount: 26000, - color: '#3b82f6', - riskLevel: 'minimal', - description: '很高收入水平,消费能力顶级' - }, - 'I': { - name: 'I级收入', - range: '26,000 - 30,000 元', - minAmount: 26000, - maxAmount: 30000, - color: '#8b5cf6', - riskLevel: 'none', - description: '优秀收入水平,消费能力超强' - }, - 'J': { - name: 'J级收入', - range: '30,000+ 元', - minAmount: 30000, - maxAmount: Infinity, - color: '#d946ef', - riskLevel: 'none', - description: '卓越收入水平,消费潜力无限' - } -} - -/** - * 获取收入等级信息 - * @param {string} level - 收入等级 - * @returns {object} 等级信息 - */ -export const getIncomeLevelInfo = (level) => { - return INCOME_LEVEL_MAP[level] || { - name: '未知等级', - range: '数据异常', - minAmount: 0, - maxAmount: 0, - color: '#94a3b8', - riskLevel: 'unknown', - description: '数据异常,无法进行准确评估' - } -} - -/** - * 获取收入等级显示名称 - * @param {string} level - 收入等级 - * @returns {string} 显示名称 - */ -export const getIncomeLevelName = (level) => { - const levelInfo = getIncomeLevelInfo(level) - return levelInfo.name -} - -/** - * 获取收入范围 - * @param {string} level - 收入等级 - * @returns {string} 收入范围 - */ -export const getIncomeRange = (level) => { - const levelInfo = getIncomeLevelInfo(level) - return levelInfo.range -} - -/** - * 获取收入等级颜色 - * @param {string} level - 收入等级 - * @returns {string} 颜色值 - */ -export const getIncomeLevelColor = (level) => { - const levelInfo = getIncomeLevelInfo(level) - return levelInfo.color -} - -/** - * 获取风险等级 - * @param {string} level - 收入等级 - * @returns {string} 风险等级 - */ -export const getRiskLevel = (level) => { - const levelInfo = getIncomeLevelInfo(level) - return levelInfo.riskLevel -} - -/** - * 格式化金额 - * @param {number} amount - 金额 - * @returns {string} 格式化后的金额 - */ -export const formatAmount = (amount) => { - if (!amount || amount === 0) return '0' - - return amount.toLocaleString('zh-CN', { - style: 'currency', - currency: 'CNY', - minimumFractionDigits: 0, - maximumFractionDigits: 0 - }) -} - -/** - * 获取收入等级排名百分比 - * @param {string} level - 收入等级 - * @returns {number} 排名百分比 (0-100) - */ -export const getIncomePercentile = (level) => { - const percentileMap = { - '-': 0, - 'A': 10, - 'B': 25, - 'C': 40, - 'D': 55, - 'E': 70, - 'F': 80, - 'G': 85, - 'H': 90, - 'I': 95, - 'J': 99 - } - - return percentileMap[level] || 0 -} - -/** - * 获取市场对比描述 - * @param {string} level - 收入等级 - * @returns {string} 市场对比描述 - */ -export const getMarketComparison = (level) => { - const percentile = getIncomePercentile(level) - - if (percentile === 0) { - return '无社保记录,无法与市场平均水平进行对比' - } else if (percentile <= 20) { - return `低于市场平均收入水平,处于收入分布的底部${percentile}%区间` - } else if (percentile <= 40) { - return `略低于市场平均收入水平,处于收入分布的底部${percentile}%区间` - } else if (percentile <= 60) { - return `接近市场平均收入水平,处于收入分布的中等${percentile}%区间` - } else if (percentile <= 80) { - return `高于市场平均收入水平,处于收入分布的上层${percentile}%区间` - } else if (percentile <= 90) { - return `显著高于市场平均收入水平,处于收入分布的顶部${100-percentile}%区间` - } else { - return `远超市场绝大多数收入水平,处于收入分布的顶部${100-percentile}%区间` - } -} - -/** - * 获取信用风险评估 - * @param {string} level - 收入等级 - * @returns {object} 风险评估信息 - */ -export const getCreditRiskAssessment = (level) => { - const riskAssessments = { - '-': { - level: '高风险', - description: '缺乏社保记录,收入稳定性存在不确定性,信用风险较高', - score: 20, - recommendations: ['核实收入来源', '要求担保措施', '谨慎放贷'] - }, - 'A': { - level: '中高风险', - description: '收入水平较低,还款能力有限,需要谨慎评估信用风险', - score: 35, - recommendations: ['评估还款能力', '适当降低额度', '关注还款记录'] - }, - 'B': { - level: '中等风险', - description: '收入水平一般,具备基础还款能力,信用风险中等', - score: 50, - recommendations: ['正常业务流程', '定期跟踪', '建立信用档案'] - }, - 'C': { - level: '中低风险', - description: '收入稳定,还款能力良好,信用风险较低', - score: 65, - recommendations: ['可正常合作', '适度提升额度', '优化服务'] - }, - 'D': { - level: '低风险', - description: '收入较高,还款能力强,信用风险低', - score: 75, - recommendations: ['优质客户', '提升服务等级', '拓展业务'] - }, - 'E': { - level: '很低风险', - description: '收入良好,还款能力很强,信用风险很低', - score: 85, - recommendations: ['重点客户', '专享服务', '深度合作'] - }, - 'F': { - level: '极低风险', - description: '高收入群体,还款能力优秀,信用风险极低', - score: 90, - recommendations: ['VIP客户', '定制服务', '战略合作'] - }, - 'G': { - level: '极低风险', - description: '高收入群体,还款能力卓越,信用风险极低', - score: 92, - recommendations: ['顶级客户', '私人定制', '长期合作'] - }, - 'H': { - level: '无风险', - description: '高端收入群体,还款能力顶级,几乎无信用风险', - score: 95, - recommendations: ['钻石客户', '专属服务', '全面合作'] - }, - 'I': { - level: '无风险', - description: '精英收入群体,还款能力完美,无信用风险', - score: 97, - recommendations: ['白金客户', '尊享服务', '全方位合作'] - }, - 'J': { - level: '零风险', - description: '顶级收入群体,还款能力无限,零信用风险', - score: 99, - recommendations: ['至尊客户', '顶级服务', '战略伙伴'] - } - } - - return riskAssessments[level] || { - level: '未知风险', - description: '数据异常,无法进行风险评估', - score: 0, - recommendations: ['数据核实', '人工审核', '谨慎处理'] - } -} - -/** - * 获取消费能力分析 - * @param {string} level - 收入等级 - * @returns {object} 消费能力分析 - */ -export const getConsumptionCapacity = (level) => { - const capacityAnalysis = { - '-': { - level: '无法评估', - description: '缺乏收入数据,无法评估消费能力', - categories: [] - }, - 'A': { - level: '基础消费', - description: '主要满足基本生活需求,消费能力有限', - categories: ['基本生活用品', '必需品消费', '低价商品'] - }, - 'B': { - level: '一般消费', - description: '能够满足日常消费需求,偶有小额娱乐支出', - categories: ['日常用品', '基础娱乐', '小额投资'] - }, - 'C': { - level: '中等消费', - description: '具备良好的消费能力,可进行中档消费', - categories: ['品质商品', '休闲娱乐', '教育投资', '小额理财'] - }, - 'D': { - level: '较强消费', - description: '消费能力较强,可进行中高档消费', - categories: ['中高档商品', '旅游度假', '技能培训', '理财投资'] - }, - 'E': { - level: '强劲消费', - description: '消费能力强劲,可进行高档消费和投资', - categories: ['高档商品', '奢侈品', '高端服务', '投资理财'] - }, - 'F': { - level: '很强消费', - description: '消费能力很强,可进行奢侈消费和多元投资', - categories: ['奢侈品', '高端服务', '房产投资', '金融产品'] - }, - 'G': { - level: '强大消费', - description: '消费能力强大,属于高端消费群体', - categories: ['顶级奢侈品', '私人定制', '房产投资', '股权投资'] - }, - 'H': { - level: '顶级消费', - description: '消费能力顶级,属于超高端消费群体', - categories: ['超级奢侈品', '私人飞机', '豪华房产', '私募基金'] - }, - 'I': { - level: '超强消费', - description: '消费能力超强,属于精英消费群体', - categories: ['收藏品', '艺术品', '豪华游艇', '对冲基金'] - }, - 'J': { - level: '无限消费', - description: '消费潜力无限,属于顶级财富群体', - categories: ['任何商品', '私人岛屿', '慈善事业', '风险投资'] - } - } - - return capacityAnalysis[level] || { - level: '未知', - description: '数据异常,无法分析消费能力', - categories: [] - } -} - -/** - * 生成收入评估报告 - * @param {string} level - 收入等级 - * @returns {object} 完整的评估报告 - */ -export const generateIncomeAssessmentReport = (level) => { - const levelInfo = getIncomeLevelInfo(level) - const riskAssessment = getCreditRiskAssessment(level) - const consumptionCapacity = getConsumptionCapacity(level) - const marketComparison = getMarketComparison(level) - const percentile = getIncomePercentile(level) - - return { - level, - levelInfo, - riskAssessment, - consumptionCapacity, - marketComparison, - percentile, - timestamp: new Date().toISOString(), - summary: { - grade: levelInfo.name, - range: levelInfo.range, - riskLevel: riskAssessment.level, - riskScore: riskAssessment.score, - marketPosition: `超过${percentile}%的收入水平`, - recommendations: riskAssessment.recommendations - } - } -} diff --git a/report-viewer/src/ui/JRZQ4B6C/README.md b/report-viewer/src/ui/JRZQ4B6C/README.md deleted file mode 100644 index 383e825..0000000 --- a/report-viewer/src/ui/JRZQ4B6C/README.md +++ /dev/null @@ -1,129 +0,0 @@ -# 信贷表现组件 (JRZQ4B6C) - -## 组件概述 - -信贷表现主要为企业在背景调查过程中探查用户近期信贷表现时提供参考,帮助企业对其内部员工、外部业务进行个人信用过滤。 - -## 组件结构 - -``` -JRZQ4B6C/ -├── index.vue # 主组件 -├── components/ # 子组件目录 -│ ├── ProbeOverview.vue # 信贷表现概览组件 -│ ├── OverdueInfoSection.vue # 逾期信息组件 -│ ├── PerformanceInfoSection.vue # 履约信息组件 -│ └── InstitutionStatusSection.vue # 机构状态组件 -├── utils/ # 工具函数目录 -│ └── probeUtils.js # 信贷表现工具函数 -└── README.md # 说明文档 -``` - -## 使用方法 - -### 基本用法 - -```vue - - - -``` - -## 数据字段说明 - -| 字段名 | 类型 | 必填 | 描述 | 示例值 | -|-------|------|------|------|--------| -| result_code | String | 否 | 探查结果编码 | "1" | -| max_overdue_amt | String | 否 | 最大逾期金额 | "1000-2000" | -| max_overdue_days | String | 否 | 最长逾期天数 | "1-15" | -| latest_overdue_time | String | 否 | 最近逾期时间 | "2018-10" | -| max_performance_amt | String | 否 | 最大履约金额 | "1000-2000" | -| latest_performance_time | String | 否 | 最近履约时间 | "2018-10" | -| count_performance | String | 否 | 履约笔数 | "1" | -| currently_overdue | String | 否 | 当前逾期机构数 | "1" | -| currently_performance | String | 否 | 当前履约机构数 | "29" | -| acc_exc | String | 否 | 异常还款机构数 | "0" | -| acc_sleep | String | 否 | 睡眠机构数 | "39" | - -## 结果编码说明 - -| 编码 | 显示内容 | 探查明细说明 | 风险等级 | -|------|----------|-------------|----------| -| 1 | 用户最近一笔订单未结清 | 用户最近一笔订单未结清 | 高风险 | -| 2 | 用户订单结清情况良好 | 多笔订单用户最近一笔订单已结清且历史所有订单均已结清,或单笔订单用户该订单发生时间在3个月之内且该订单结清 | 低风险 | -| 3 | 用户最近订单已结清,历史存在未结清订单 | 用户最近一笔订单已结清,但历史存在未结清订单 | 中等风险 | -| 4 | 用户数据不充分 | 数据不充分 | 未知风险 | - -### 详细说明 - -**编码1**:通过模型计算展现该用户行为画像,用户最近一笔订单未结清 -**编码2**:通过模型计算展现该用户行为画像,用户订单结清情况良好 -**编码3**:通过模型计算展现该用户行为画像,用户最近订单已结清但历史存在未结清订单 -**编码4**:用户数据不充分无法展现该用户行为画像 - -## 金额区间说明 - -组件支持以下金额区间格式: -- 区间格式:`"1000-2000"`、`"(1000~2000]"` -- 大于格式:`">1000000"` -- 零值:`"0"` 表示无记录 - -## 组件特性 - -1. **响应式设计**:适配移动端和桌面端 -2. **数据格式化**:自动格式化金额、时间等数据 -3. **风险评估**:基于数据自动生成风险等级和建议 -4. **视觉反馈**:使用颜色区分不同风险等级 -5. **空数据处理**:优雅处理缺失或无效数据 - -## 工具函数 - -### probeUtils.js - -提供了以下工具函数: - -- `getResultCodeInfo(code)` - 获取结果编码信息 -- `formatAmountRange(amount)` - 格式化金额区间 -- `formatDaysRange(days)` - 格式化天数区间 -- `formatTime(time)` - 格式化时间 -- `generateRiskSummary(data)` - 生成风险评估总结 - -## 样式定制 - -组件使用 Tailwind CSS 构建,可以通过以下方式定制样式: - -1. 修改组件内的 CSS 类名 -2. 使用 CSS 变量覆盖默认样式 -3. 通过 props 传入自定义样式类名 - -## 注意事项 - -1. 确保传入的数据格式正确 -2. 所有字段都是可选的,组件会优雅处理缺失数据 -3. 时间格式建议使用 YYYY-MM 格式 -4. 金额和天数支持多种区间格式 - -## 更新日志 - -- v1.0.0 - 初始版本,支持信贷表现基本功能展示 diff --git a/report-viewer/src/ui/JRZQ4B6C/components/InstitutionStatusSection.vue b/report-viewer/src/ui/JRZQ4B6C/components/InstitutionStatusSection.vue deleted file mode 100644 index e9d1a06..0000000 --- a/report-viewer/src/ui/JRZQ4B6C/components/InstitutionStatusSection.vue +++ /dev/null @@ -1,164 +0,0 @@ - - - diff --git a/report-viewer/src/ui/JRZQ4B6C/components/OverdueInfoSection.vue b/report-viewer/src/ui/JRZQ4B6C/components/OverdueInfoSection.vue deleted file mode 100644 index 9300b70..0000000 --- a/report-viewer/src/ui/JRZQ4B6C/components/OverdueInfoSection.vue +++ /dev/null @@ -1,125 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/JRZQ4B6C/components/PerformanceInfoSection.vue b/report-viewer/src/ui/JRZQ4B6C/components/PerformanceInfoSection.vue deleted file mode 100644 index 7f70578..0000000 --- a/report-viewer/src/ui/JRZQ4B6C/components/PerformanceInfoSection.vue +++ /dev/null @@ -1,158 +0,0 @@ - - - diff --git a/report-viewer/src/ui/JRZQ4B6C/components/ProbeOverview.vue b/report-viewer/src/ui/JRZQ4B6C/components/ProbeOverview.vue deleted file mode 100644 index 8f5602f..0000000 --- a/report-viewer/src/ui/JRZQ4B6C/components/ProbeOverview.vue +++ /dev/null @@ -1,119 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/JRZQ4B6C/components/Remark.vue b/report-viewer/src/ui/JRZQ4B6C/components/Remark.vue deleted file mode 100644 index 7751664..0000000 --- a/report-viewer/src/ui/JRZQ4B6C/components/Remark.vue +++ /dev/null @@ -1,83 +0,0 @@ - - - - - \ No newline at end of file diff --git a/report-viewer/src/ui/JRZQ4B6C/index.vue b/report-viewer/src/ui/JRZQ4B6C/index.vue deleted file mode 100644 index 6e6aaa6..0000000 --- a/report-viewer/src/ui/JRZQ4B6C/index.vue +++ /dev/null @@ -1,136 +0,0 @@ - - - - - diff --git a/report-viewer/src/ui/JRZQ4B6C/utils/probeUtils.js b/report-viewer/src/ui/JRZQ4B6C/utils/probeUtils.js deleted file mode 100644 index 56d02af..0000000 --- a/report-viewer/src/ui/JRZQ4B6C/utils/probeUtils.js +++ /dev/null @@ -1,288 +0,0 @@ -/** - * 信贷表现工具函数 - */ - -/** - * 结果编码映射 - */ -export const RESULT_CODE_MAP = { - '1': { - text: '用户最近一笔订单未结清', - description: '通过模型计算展现该用户行为画像,用户最近一笔订单未结清,建议谨慎评估其信用状况和还款能力。', - detail: '用户最近一笔订单未结清', - color: 'text-red-500', - level: 'high' - }, - '2': { - text: '用户订单结清情况良好', - description: '通过模型计算展现该用户行为画像,多笔订单用户最近一笔订单已结清且历史所有订单均已结清,或单笔订单用户该订单发生时间在3个月之内且该订单结清,信贷表现良好。', - detail: '多笔订单用户最近一笔订单已结清且历史所有订单均已结清,或单笔订单用户该订单发生时间在3个月之内且该订单结清', - color: 'text-green-500', - level: 'low' - }, - '3': { - text: '用户最近订单已结清,历史存在未结清订单', - description: '通过模型计算展现该用户行为画像,用户最近一笔订单已结清,但历史存在未结清订单,建议关注其历史还款记录。', - detail: '用户最近一笔订单已结清,但历史存在未结清订单', - color: 'text-yellow-500', - level: 'medium' - }, - '4': { - text: '用户数据不充分', - description: '用户数据不充分无法展现该用户行为画像。建议通过其他征信渠道补充信息进行综合评估。', - detail: '数据不充分', - color: 'text-gray-500', - level: 'unknown' - } -} - -/** - * 金额区间映射(根据文档提供的区间) - */ -export const AMOUNT_RANGES = [ - '(1~1000]', - '(1000~2000]', - '(2000~3000]', - '(3000~4000]', - '(4000~6000]', - '(6000~8000]', - '(8000~10000]', - '(10000~20000]', - '(20000~40000]', - '(40000~60000]', - '(60000~80000]', - '(80000~100000]', - '(100000~150000]', - '(150000~200000]', - '(200000~250000]', - '(250000~300000]', - '(300000~350000]', - '(350000~400000]', - '(400000~450000]', - '(450000~500000]', - '(500000~550000]', - '(550000~600000]', - '(600000~650000]', - '(650000~700000]', - '(700000~750000]', - '(750000~800000]', - '(800000~850000]', - '(850000~900000]', - '(900000~950000]', - '(950000~1000000]', - '>1000000' -] - -/** - * 获取结果编码信息 - * @param {string} code - 结果编码 - * @returns {object} 结果编码信息 - */ -export const getResultCodeInfo = (code) => { - return RESULT_CODE_MAP[code] || { - text: '未知状态', - description: '信贷表现主要为企业在背景调查过程中探查用户近期信贷表现时提供参考,帮助企业对其内部员工、外部业务进行个人信用过滤。', - color: 'text-gray-500', - level: 'unknown' - } -} - -/** - * 格式化金额区间 - * @param {string} amount - 金额区间字符串 - * @returns {string} 格式化后的金额区间 - */ -export const formatAmountRange = (amount) => { - if (!amount || amount === '0') { - return '无记录' - } - - // 处理标准区间格式,如 "1000-2000" - if (amount.includes('-')) { - const [min, max] = amount.split('-') - return `${formatNumber(min)}元 - ${formatNumber(max)}元` - } - - // 处理带括号的区间格式,如 "(1000~2000]" - if (amount.includes('~')) { - const cleanAmount = amount.replace(/[()[\]]/g, '') - const [min, max] = cleanAmount.split('~') - return `${formatNumber(min)}元 - ${formatNumber(max)}元` - } - - // 处理大于某个值的格式,如 ">1000000" - if (amount.startsWith('>')) { - const value = amount.substring(1) - return `大于 ${formatNumber(value)}元` - } - - // 其他格式直接返回 - return amount -} - -/** - * 格式化天数区间 - * @param {string} days - 天数区间字符串 - * @returns {string} 格式化后的天数区间 - */ -export const formatDaysRange = (days) => { - if (!days || days === '0') { - return '无记录' - } - - // 处理区间格式,如 "1-15" - if (days.includes('-')) { - const [min, max] = days.split('-') - return `${min}天 - ${max}天` - } - - // 处理带括号的区间格式,如 "[1~15]" - if (days.includes('~')) { - const cleanDays = days.replace(/[()[\]]/g, '') - const [min, max] = cleanDays.split('~') - return `${min}天 - ${max}天` - } - - return days + '天' -} - -/** - * 格式化时间 - * @param {string} time - 时间字符串 - * @returns {string} 格式化后的时间 - */ -export const formatTime = (time) => { - if (!time) { - return '无记录' - } - - // 处理 YYYY-MM 格式 - if (time.match(/^\d{4}-\d{2}$/)) { - return time.replace('-', '年') + '月' - } - - // 处理 YYYY-MM-DD 格式 - if (time.match(/^\d{4}-\d{2}-\d{2}$/)) { - const [year, month, day] = time.split('-') - return `${year}年${month}月${day}日` - } - - return time -} - -/** - * 格式化数字,添加千分位分隔符 - * @param {string|number} num - 数字 - * @returns {string} 格式化后的数字 - */ -export const formatNumber = (num) => { - if (!num) return '0' - - const number = typeof num === 'string' ? parseFloat(num) : num - - if (isNaN(number)) return num - - return number.toLocaleString('zh-CN') -} - -/** - * 获取风险等级颜色类名 - * @param {string} level - 风险等级 - * @returns {string} CSS类名 - */ -export const getRiskLevelClass = (level) => { - const levelMap = { - 'high': 'text-red-500', - 'medium': 'text-yellow-500', - 'low': 'text-green-500', - 'unknown': 'text-gray-500' - } - - return levelMap[level] || 'text-gray-500' -} - -/** - * 获取风险等级背景色类名 - * @param {string} level - 风险等级 - * @returns {string} CSS类名 - */ -export const getRiskLevelBgClass = (level) => { - const levelMap = { - 'high': 'bg-red-50 border-red-200', - 'medium': 'bg-yellow-50 border-yellow-200', - 'low': 'bg-green-50 border-green-200', - 'unknown': 'bg-gray-50 border-gray-200' - } - - return levelMap[level] || 'bg-gray-50 border-gray-200' -} - -/** - * 生成信贷表现总结 - * @param {object} data - 信贷表现数据 - * @returns {object} 风险评估总结 - */ -export const generateRiskSummary = (data) => { - if (!data) { - return { - level: 'unknown', - text: '无法获取数据进行风险评估', - recommendations: ['建议通过其他渠道获取更多信息'] - } - } - - const resultCode = data.result_code - const codeInfo = getResultCodeInfo(resultCode) - - const currentlyOverdue = parseInt(data.currently_overdue) || 0 - const accExc = parseInt(data.acc_exc) || 0 - const accSleep = parseInt(data.acc_sleep) || 0 - - let riskLevel = codeInfo.level - let recommendations = [] - - // 基于结果编码的建议 - switch (resultCode) { - case '1': // 用户最近一笔订单未结清 - recommendations.push('用户最近一笔订单未结清,存在风险') - recommendations.push('建议进一步核实原因和当前还款能力') - recommendations.push('考虑要求提供担保或抵押措施') - break - case '2': // 用户订单结清情况良好 - recommendations.push('用户订单结清情况良好,信贷表现正常') - recommendations.push('可以正常开展业务合作') - recommendations.push('建议定期跟踪信用状况变化') - break - case '3': // 用户最近订单已结清,历史存在未结清订单 - recommendations.push('用户最近订单已结清,但历史存在未结清订单') - recommendations.push('建议关注历史还款记录和还款意愿') - recommendations.push('可考虑适当降低授信额度或增加风控措施') - break - case '4': // 用户数据不充分 - recommendations.push('用户数据不充分,无法完整评估行为画像') - recommendations.push('建议通过其他征信渠道补充信息') - recommendations.push('谨慎开展高风险业务,建议人工审核') - break - } - - // 基于其他指标的额外风险评估 - if (currentlyOverdue > 0) { - riskLevel = 'high' - recommendations.push(`当前有${currentlyOverdue}个机构逾期,风险较高`) - } - - if (accExc > 2) { - if (riskLevel !== 'high') riskLevel = 'medium' - recommendations.push(`存在${accExc}个异常还款机构,需要关注`) - } - - if (accSleep > 10) { - recommendations.push(`有${accSleep}个睡眠机构,信贷活跃度偏低`) - } - - return { - level: riskLevel, - text: codeInfo.description, - recommendations: recommendations - } -} diff --git a/report-viewer/src/views/Report.vue b/report-viewer/src/views/Report.vue deleted file mode 100644 index 2b5e445..0000000 --- a/report-viewer/src/views/Report.vue +++ /dev/null @@ -1,104 +0,0 @@ - - - - - diff --git a/report-viewer/tailwind.config.js b/report-viewer/tailwind.config.js deleted file mode 100644 index 7c8d2ac..0000000 --- a/report-viewer/tailwind.config.js +++ /dev/null @@ -1,95 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -export default { - content: [ - "./index.html", - "./src/**/*.{vue,js,ts,jsx,tsx}", - ], - theme: { - extend: { - colors: { - primary: { - DEFAULT: "#5D7EEB", - 50: "#F0F3FF", - 100: "#E1E8FF", - 200: "#C3D1FF", - 300: "#A5BAFF", - 400: "#87A3FF", - 500: "#5D7EEB", - 600: "#4A63BC", - 700: "#38488D", - 800: "#252D5E", - 900: "#13122F", - }, - success: { - DEFAULT: "#07c160", - 50: "#f0f9f0", - 100: "#e1f5e1", - 200: "#c3ebc3", - 300: "#a5e1a5", - 400: "#87d787", - 500: "#07c160", - 600: "#059a4c", - 700: "#047338", - 800: "#024c24", - 900: "#012510", - }, - warning: { - DEFAULT: "#ff976a", - 50: "#fff5f0", - 100: "#ffebe1", - 200: "#ffd7c3", - 300: "#ffc3a5", - 400: "#ffaf87", - 500: "#ff976a", - 600: "#cc7955", - 700: "#995b40", - 800: "#663d2a", - 900: "#331f15", - }, - danger: { - DEFAULT: "#ee0a24", - 50: "#fdf2f2", - 100: "#fce5e5", - 200: "#f9caca", - 300: "#f6b0b0", - 400: "#f39595", - 500: "#ee0a24", - 600: "#be081d", - 700: "#8f0616", - 800: "#5f040e", - 900: "#300207", - }, - gray: { - 50: "#fafafa", - 100: "#f5f5f5", - 200: "#e5e5e5", - 300: "#d4d4d4", - 400: "#a3a3a3", - 500: "#737373", - 600: "#525252", - 700: "#404040", - 800: "#262626", - 900: "#171717", - }, - }, - fontFamily: { - sans: [ - "Inter", - "-apple-system", - "BlinkMacSystemFont", - "Segoe UI", - "Roboto", - "Oxygen", - "Ubuntu", - "Cantarell", - "Fira Sans", - "Droid Sans", - "Helvetica Neue", - "sans-serif", - ], - }, - }, - }, - plugins: [], -}; - diff --git a/report-viewer/vite.config.js b/report-viewer/vite.config.js deleted file mode 100644 index c0968f1..0000000 --- a/report-viewer/vite.config.js +++ /dev/null @@ -1,66 +0,0 @@ -import { fileURLToPath, URL } from "node:url"; -import AutoImport from "unplugin-auto-import/vite"; -import Components from "unplugin-vue-components/vite"; -import { VantResolver } from "@vant/auto-import-resolver"; -import { defineConfig } from "vite"; -import vue from "@vitejs/plugin-vue"; -import vueJsx from "@vitejs/plugin-vue-jsx"; - -export default defineConfig({ - server: { - host: "0.0.0.0", - port: 3000, - strictPort: true, - }, - build: { - target: 'es2015', - minify: 'terser', - terserOptions: { - compress: { - drop_console: true, - drop_debugger: true, - }, - }, - rollupOptions: { - output: { - manualChunks: { - vendor: ['vue', 'vue-router'], - vant: ['vant'], - utils: ['axios', 'lodash'], - charts: ['echarts', 'vue-echarts'], - }, - }, - }, - cssCodeSplit: true, - assetsInlineLimit: 4096, - }, - plugins: [ - vue(), - AutoImport({ - imports: [ - "vue", - "vue-router", - "@vueuse/core", - ], - dts: "src/auto-imports.d.ts", - dirs: [ - "src/composables", - "src/components", - ], - resolvers: [VantResolver()], - }), - Components({ - resolvers: [VantResolver()], - }), - vueJsx(), - ], - resolve: { - alias: { - "@": fileURLToPath(new URL("./src", import.meta.url)), - }, - }, - optimizeDeps: { - include: ['vue', 'vue-router', 'vant', 'axios'], - }, -}); - diff --git a/report-viewer/使用说明.md b/report-viewer/使用说明.md deleted file mode 100644 index 4262add..0000000 --- a/report-viewer/使用说明.md +++ /dev/null @@ -1,198 +0,0 @@ -# 报告查看器使用说明 - -## 📋 已包含的组件 - -本项目已包含以下报告组件的完整代码: - -1. **DWBG6A2C** - 司南报告(包含所有子模块) -2. **FLXG0V4B** - 司法涉诉 -3. **QYGL3F8E** - 人企关系加强版(包含所有子模块) -4. **JRZQ4B6C** - 信贷表现 -5. **JRZQ09J8** - 收入评估 -6. **QCXG9P1C** - 名下车辆 -7. **DWBG8B4D** - 谛听多维报告(包含所有子模块) - -## 📁 需要提供的文件清单 - -如果要将这些组件提供给其他人使用,需要提供以下文件: - -### 1. 核心文件 -- ✅ `src/views/Report.vue` - 报告页面视图 -- ✅ `src/components/BaseReport.vue` - 报告主组件 - -### 2. UI 业务组件目录 -- ✅ `src/ui/DWBG6A2C/` - 司南报告(完整目录) -- ✅ `src/ui/CFLXG0V4B/` - 司法涉诉(完整目录) -- ✅ `src/ui/CQYGL3F8E/` - 人企关系加强版(完整目录) -- ✅ `src/ui/JRZQ4B6C/` - 信贷表现(完整目录) -- ✅ `src/ui/JRZQ09J8/` - 收入评估(完整目录) -- ✅ `src/ui/CQCXG9P1C.vue` - 名下车辆组件 -- ✅ `src/ui/CDWBG8B4D/` - 谛听多维报告(完整目录) - -### 3. 基础组件 -- ✅ `src/components/GaugeChart.vue` - 评分图表 -- ✅ `src/components/ShareReportButton.vue` - 分享按钮 -- ✅ `src/components/TitleBanner.vue` - 标题横幅 -- ✅ `src/components/VerificationCard.vue` - 验证卡片 -- ✅ `src/components/StyledTabs.vue` - 样式化标签页 -- ✅ `src/components/LEmpty.vue` - 空状态组件 -- ✅ `src/components/LRemark.vue` - 备注组件 -- ✅ `src/components/LTitle.vue` - 标题组件 - -### 4. 工具和配置 -- ✅ `src/composables/useApiFetch.js` - API 请求工具 -- ✅ `src/assets/` - 所有样式文件和图片资源 -- ✅ `package.json` - 依赖配置 -- ✅ `vite.config.js` - Vite 配置 -- ✅ `tailwind.config.js` - Tailwind 配置 -- ✅ `postcss.config.js` - PostCSS 配置 - -### 5. 入口文件 -- ✅ `src/main.js` - 应用入口 -- ✅ `src/App.vue` - 根组件 -- ✅ `index.html` - HTML 模板 - -## 🚀 快速开始 - -### 方式一:使用独立项目(推荐) - -1. 将整个 `report-viewer` 文件夹复制给别人 -2. 进入目录:`cd report-viewer` -3. 安装依赖:`npm install` 或 `pnpm install` -4. 启动开发服务器:`npm run dev` -5. 访问:`http://localhost:3000/?orderId=xxx` 或 `http://localhost:3000/?orderNo=xxx` - -### 方式二:集成到现有项目 - -1. 复制以下目录到你的项目中: - - `src/ui/` - 所有 UI 组件 - - `src/components/` - 报告相关基础组件 - - `src/views/Report.vue` - 报告视图 - - `src/composables/useApiFetch.js` - API 工具(如果需要) - -2. 确保安装以下依赖: - ```json - { - "vue": "^3.5.12", - "vue-router": "^4.4.5", - "vant": "^4.9.9", - "echarts": "^5.5.1", - "vue-echarts": "^7.0.3", - "@vueuse/core": "^11.3.0", - "axios": "^1.7.7", - "lodash": "^4.17.21", - "tailwindcss": "^3.4.15" - } - ``` - -3. 配置路由(如果需要): - ```javascript - { - path: '/report', - component: () => import('@/views/Report.vue') - } - ``` - -## ⚙️ 配置说明 - -### API 地址配置 - -编辑 `src/composables/useApiFetch.js`: - -```javascript -const useApiFetch = createFetch({ - baseUrl: "/api/v1", // 修改为你的 API 地址 - // ... -}); -``` - -### 路由参数 - -报告页面支持以下 URL 参数: - -- `orderId` - 订单ID(数字) -- `orderNo` - 订单号(字符串) -- `out_trade_no` - 交易订单号(字符串) -- `order_id` - 订单ID(字符串,从查询参数获取) - -### 使用示例 - -```javascript -// 在组件中使用 BaseReport -import BaseReport from '@/components/BaseReport.vue' - - -``` - -## 📦 项目结构 - -``` -report-viewer/ -├── src/ -│ ├── components/ # 基础组件 -│ │ ├── BaseReport.vue # ⭐ 核心组件 -│ │ ├── GaugeChart.vue -│ │ └── ... -│ ├── views/ -│ │ └── Report.vue # ⭐ 报告页面 -│ ├── ui/ # ⭐ 业务组件 -│ │ ├── DWBG6A2C/ # 司南报告 -│ │ ├── CFLXG0V4B/ # 司法涉诉 -│ │ ├── CQYGL3F8E/ # 人企关系加强版 -│ │ ├── JRZQ4B6C/ # 信贷表现 -│ │ ├── JRZQ09J8/ # 收入评估 -│ │ ├── CQCXG9P1C.vue # 名下车辆 -│ │ └── CDWBG8B4D/ # 谛听多维报告 -│ ├── composables/ -│ │ └── useApiFetch.js # API 工具 -│ └── assets/ # 样式和图片 -│ ├── images/ -│ └── *.css -├── package.json -├── vite.config.js -├── tailwind.config.js -└── README.md -``` - -## 🔧 注意事项 - -1. **图片资源**:确保所有图片文件路径正确,特别是背景图片 -2. **API 接口**:需要根据实际后端 API 调整请求地址和格式 -3. **样式依赖**:项目依赖 Tailwind CSS 和 Vant UI,确保正确引入 -4. **浏览器兼容**:需要现代浏览器支持(ES2015+) -5. **Token 认证**:如果需要认证,确保在 localStorage 中设置 token - -## 🐛 常见问题 - -### Q: 组件导入失败? -A: 检查路径别名 `@` 是否正确配置在 `vite.config.js` 中 - -### Q: 样式不生效? -A: 确保 `tailwind.config.js` 中包含了正确的 content 路径 - -### Q: API 请求失败? -A: 检查 `useApiFetch.js` 中的 `baseUrl` 配置和 CORS 设置 - -### Q: 图片加载失败? -A: 检查图片路径是否正确,确保图片文件已复制到 `src/assets/images/` 目录 - -## 📞 技术支持 - -如有问题,请检查: -1. 控制台错误信息 -2. 网络请求是否正常 -3. 依赖是否正确安装 -4. 文件路径是否正确 - ---- - -**提示**:这是一个独立的 Vue3 项目,可以直接运行,也可以集成到现有项目中。 - diff --git a/src/components/BaseReport.vue b/src/components/BaseReport.vue index d4c382a..261b8b2 100644 --- a/src/components/BaseReport.vue +++ b/src/components/BaseReport.vue @@ -407,6 +407,11 @@ const featureMap = { component: defineAsyncComponent(() => import("@/ui/JRZQ09J8/index.vue")), remark: '基于全国社会保险信息系统的缴费基数数据进行收入水平评估。评级反映相对收入水平,实际收入可能因地区差异而有所不同,建议结合其他收入证明材料进行综合评估。' }, + JRZQ8B3C: { + name: "个人消费能力", + component: defineAsyncComponent(() => import("@/ui/JRZQ8B3C/index.vue")), + remark: '根据个人的消费能力,评估其消费水平,从而评估其信用风险。' + }, // 司南报告 DWBG6A2C: { name: "司南报告", @@ -596,6 +601,7 @@ const featureRiskLevels = { 'IVYZ5733': 3, // 婚姻状态 'IVYZ9A2B': 3, // 学历信息 'IVYZ3P9M': 3, // 学历信息查询(实时版) + 'JRZQ8B3C': 3, // 个人消费能力 // 📊 复合报告类 - 按子模块动态计算 'DWBG8B4D': 0, // 谛听多维报告(由子模块计算) diff --git a/src/components/Payment.vue b/src/components/Payment.vue index ebeadf3..5f5180b 100644 --- a/src/components/Payment.vue +++ b/src/components/Payment.vue @@ -1,10 +1,6 @@ diff --git a/src/ui/FLXG7E8F/utils/lawsuitUtils.js b/src/ui/FLXG7E8F/utils/lawsuitUtils.js index 8ee1142..cec54c4 100644 --- a/src/ui/FLXG7E8F/utils/lawsuitUtils.js +++ b/src/ui/FLXG7E8F/utils/lawsuitUtils.js @@ -81,15 +81,21 @@ export const formatDate = (dateStr) => { export const formatLawsuitMoney = (money) => { if (!money) return "—"; + // 如果是字符串且已经包含"元"后缀,直接返回 + if (typeof money === "string" && money.endsWith("元")) { + return money; + } + + // 尝试解析为数字 const value = parseFloat(money); if (isNaN(value)) return "—"; - // 直接显示原始金额(元) + // 格式化数字并添加"元"后缀 return ( value.toLocaleString("zh-CN", { minimumFractionDigits: 0, maximumFractionDigits: 2, - }) + " 元" + }) + "元" ); }; diff --git a/src/ui/JRZQ8B3C/README.md b/src/ui/JRZQ8B3C/README.md new file mode 100644 index 0000000..d17a1c2 --- /dev/null +++ b/src/ui/JRZQ8B3C/README.md @@ -0,0 +1,149 @@ +# 个人消费能力等级组件 (JRZQ8B3C) + +## 组件概述 + +基于个人收入指数评分进行消费能力等级评估,为企业提供专业的消费能力分析和风险评估服务。 + +## 组件结构 + +``` +JRZQ8B3C/ +├── index.vue # 主组件 +└── README.md # 说明文档 +``` + +## 使用方法 + +### 基本用法 + +```vue + + + +``` + +## 数据字段说明 + +| 字段名 | 类型 | 必填 | 描述 | 示例值 | +|-------|------|------|------|--------| +| personincome_index_2.0 | String | 是 | 个人收入指数评分 | "200" | + +## 评分分档说明 + +| 分值 | 收入区间(元/月) | 消费能力等级 | 风险等级 | +|------|----------------|------------|----------| +| -1 | **未命中** | 无法获取收入信息 | 高风险 | +| 100 | (1000, 2000] | 第1档 | 高风险 | +| 200 | (2000, 4000] | 第2档 | 高风险 | +| 300 | (4000, 6000] | 第3档 | 高风险 | +| 400 | (6000, 8000] | 第4档 | 中等风险 | +| 500 | (8000, 10000] | 第5档 | 中等风险 | +| 600 | (10000, 12000] | 第6档 | 中等风险 | +| 700 | (12000, 15000] | 第7档 | 低风险 | +| 800 | (15000, 20000] | 第8档 | 低风险 | +| 900 | (20000, 25000] | 第9档 | 低风险 | +| 1000 | (25000, +∞) | 第10档 | 低风险 | + +## 特殊值说明 + +- **-1**: 表示未命中(无法获取收入信息) +- **评分范围**: 100-1000分,共10个等级 +- **等级意义**: 等级越高,对应的消费能力越强 +- **区间定义**: 收入区间为左开右闭区间(如:1000 < 收入 ≤ 2000) + +## 组件特性 + +### 1. 专业的视觉展示 +- **评分展示**:大数字显示个人收入指数评分 +- **进度条可视化**:直观展示评分在100-1000分范围内的位置 +- **颜色编码**:根据评分等级使用不同颜色(低=红色,中=黄色,高=绿色) +- **响应式设计**:完美适配各种屏幕尺寸 + +### 2. 全面的数据分析 +- **收入区间显示**:清晰展示对应的月收入范围 +- **等级描述**:显示当前评分对应的消费能力等级 +- **市场对比分析**:与市场平均水平对比 +- **消费能力评估**:基于收入指数的消费能力分析 + +### 3. 智能风险评估 +- **动态评分**:根据收入指数自动计算风险分数(30-100分) +- **风险等级标签**:直观显示当前风险等级 +- **个性化建议**:针对不同等级的专业建议 + +## 视觉设计亮点 + +### 1. 色彩系统 +- **低风险(700-1000分)**:绿色系,表示消费能力强 +- **中等风险(400-600分)**:黄色系,表示消费能力中等 +- **高风险(100-300分/-1)**:红色系,表示消费能力有限 + +### 2. 交互体验 +- 平滑的动画过渡 +- 直观的视觉反馈 +- 清晰的信息层次 + +### 3. 信息架构 +- 层次分明的信息展示 +- 重点突出的核心数据 +- 完整的补充说明 + +## 数据说明 + +### 评估依据 +- 基于个人收入指数评分 +- 使用10档分级评分体系 +- 数据准确可靠 + +### 使用限制 +- 收入范围为税前月收入 +- 存在地区差异,仅供参考 +- 建议结合其他收入证明材料 + +### 评分计算 +- 风险评分范围:30-100分 +- 100分对应30分风险评分 +- 1000分对应100分风险评分(最安全) +- -1(未命中)对应30分风险评分 + +## 业务价值 + +### 1. 风险控制 +- 精确的消费能力评估降低信贷风险 +- 多维度风险分析提升决策质量 +- 智能化评分系统提高效率 + +### 2. 客户分层 +- 基于消费能力的客户分级管理 +- 个性化服务策略制定 +- 精准的市场定位分析 + +### 3. 合规要求 +- 符合金融监管要求 +- 数据来源权威可靠 +- 评估过程透明公开 + +## 注意事项 + +1. 确保传入正确的 `personincome_index_2.0` 值 +2. 组件会自动处理 -1 特殊值(未命中) +3. 建议在网络良好的环境下使用 +4. 定期更新评估标准以保持准确性 + +## 更新日志 + +- v1.0.0 - 初始版本,支持基础消费能力等级评估功能 +- 专业的视觉展示效果 +- 完整的评分分档系统 +- 专业的风险分析功能 + diff --git a/src/ui/JRZQ8B3C/index.vue b/src/ui/JRZQ8B3C/index.vue new file mode 100644 index 0000000..73ff6c6 --- /dev/null +++ b/src/ui/JRZQ8B3C/index.vue @@ -0,0 +1,377 @@ + + + + + diff --git a/src/views/index.vue b/src/views/index.vue index 6580e5f..52004cb 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -58,7 +58,7 @@ function toInquire(name) { // 婚姻状况跳转到婚姻查询 router.push(`/inquire/toc_Marriage`); } else if (name === "VehiclesUnderName") { - // 名下车辆跳转 + // 车辆查询跳转 router.push(`/inquire/toc_VehiclesUnderName`); } else if (name === "Promote") { // 推广报告跳转 @@ -121,9 +121,9 @@ function toPromote() {
名下车辆图标 + alt="车辆查询图标" />
- 名下车辆 + 车辆查询