diff --git a/COLOR_GUIDE.md b/COLOR_GUIDE.md index 2a983a5..63eb4ce 100644 --- a/COLOR_GUIDE.md +++ b/COLOR_GUIDE.md @@ -95,7 +95,7 @@ const serviceColor = 'var(--color-service-personal)'; ### 业务特定颜色 - `--color-service-personal`: 个人大数据服务色 - `--color-service-company`: 小微企业服务色 -- `--color-service-loan`: 贷前背调服务色 +- `--color-service-loan`: 贷前风险服务色 ## 🔧 自定义主题 diff --git a/public/image/help/direct_earnings.jpg b/public/image/help/direct-earnings.jpg similarity index 100% rename from public/image/help/direct_earnings.jpg rename to public/image/help/direct-earnings.jpg diff --git a/report-viewer/README.md b/report-viewer/README.md new file mode 100644 index 0000000..fde278b --- /dev/null +++ b/report-viewer/README.md @@ -0,0 +1,137 @@ +# 报告查看器 - 独立 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 new file mode 100644 index 0000000..cb56af5 --- /dev/null +++ b/report-viewer/index.html @@ -0,0 +1,110 @@ + + + + + + + 报告查看器 + + + + +
+
+
加载中
+
+
+ + + + + + diff --git a/report-viewer/package.json b/report-viewer/package.json new file mode 100644 index 0000000..b23c5a3 --- /dev/null +++ b/report-viewer/package.json @@ -0,0 +1,34 @@ +{ + "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 new file mode 100644 index 0000000..6fe4673 --- /dev/null +++ b/report-viewer/pnpm-lock.yaml @@ -0,0 +1,3093 @@ +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 new file mode 100644 index 0000000..685dd1f --- /dev/null +++ b/report-viewer/postcss.config.js @@ -0,0 +1,7 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; + diff --git a/report-viewer/public/example.json b/report-viewer/public/example.json new file mode 100644 index 0000000..3fbac4f --- /dev/null +++ b/report-viewer/public/example.json @@ -0,0 +1,933 @@ +[ + { + "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 new file mode 100644 index 0000000..1d0e26e --- /dev/null +++ b/report-viewer/src/App.vue @@ -0,0 +1,8 @@ + + + + diff --git a/report-viewer/src/assets/base.css b/report-viewer/src/assets/base.css new file mode 100644 index 0000000..654ec72 --- /dev/null +++ b/report-viewer/src/assets/base.css @@ -0,0 +1,25 @@ +*, +*::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 new file mode 100644 index 0000000..c4fab8d --- /dev/null +++ b/report-viewer/src/assets/colors.css @@ -0,0 +1,54 @@ +/* 统一颜色变量管理文件 */ +: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 new file mode 100644 index 0000000..fbecc14 --- /dev/null +++ b/report-viewer/src/assets/images/empty.svg @@ -0,0 +1,75 @@ + + 空空如也 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..6fe667f Binary files /dev/null and b/report-viewer/src/assets/images/public_security_record_icon.png differ diff --git a/report-viewer/src/assets/images/report/ajgl.png b/report-viewer/src/assets/images/report/ajgl.png new file mode 100644 index 0000000..d8ce93d Binary files /dev/null and b/report-viewer/src/assets/images/report/ajgl.png differ diff --git a/report-viewer/src/assets/images/report/ajlxfb.png b/report-viewer/src/assets/images/report/ajlxfb.png new file mode 100644 index 0000000..e012d69 Binary files /dev/null and b/report-viewer/src/assets/images/report/ajlxfb.png 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 new file mode 100644 index 0000000..a786bfe Binary files /dev/null and b/report-viewer/src/assets/images/report/backgroundcheck_inquire_bg.png 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 new file mode 100644 index 0000000..5e5656f Binary files /dev/null and b/report-viewer/src/assets/images/report/backgroundcheck_report_bg.png differ diff --git a/report-viewer/src/assets/images/report/bysj.png b/report-viewer/src/assets/images/report/bysj.png new file mode 100644 index 0000000..5918eaa Binary files /dev/null and b/report-viewer/src/assets/images/report/bysj.png differ diff --git a/report-viewer/src/assets/images/report/dkxwfx.png b/report-viewer/src/assets/images/report/dkxwfx.png new file mode 100644 index 0000000..8ead64c Binary files /dev/null and b/report-viewer/src/assets/images/report/dkxwfx.png 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 new file mode 100644 index 0000000..951930a Binary files /dev/null and b/report-viewer/src/assets/images/report/dqfx_inquire_bg.jpg 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 new file mode 100644 index 0000000..6771500 Binary files /dev/null and b/report-viewer/src/assets/images/report/dqfx_report_bg.jpg differ diff --git a/report-viewer/src/assets/images/report/dwtzls.png b/report-viewer/src/assets/images/report/dwtzls.png new file mode 100644 index 0000000..f6e5008 Binary files /dev/null and b/report-viewer/src/assets/images/report/dwtzls.png differ diff --git a/report-viewer/src/assets/images/report/fqzgz.png b/report-viewer/src/assets/images/report/fqzgz.png new file mode 100644 index 0000000..52fbe22 Binary files /dev/null and b/report-viewer/src/assets/images/report/fqzgz.png differ diff --git a/report-viewer/src/assets/images/report/fqzpf.png b/report-viewer/src/assets/images/report/fqzpf.png new file mode 100644 index 0000000..2ef6d23 Binary files /dev/null and b/report-viewer/src/assets/images/report/fqzpf.png differ diff --git a/report-viewer/src/assets/images/report/fsbq.png b/report-viewer/src/assets/images/report/fsbq.png new file mode 100644 index 0000000..3a011a2 Binary files /dev/null and b/report-viewer/src/assets/images/report/fsbq.png differ diff --git a/report-viewer/src/assets/images/report/fx.png b/report-viewer/src/assets/images/report/fx.png new file mode 100644 index 0000000..b41d56d Binary files /dev/null and b/report-viewer/src/assets/images/report/fx.png differ diff --git a/report-viewer/src/assets/images/report/fxbs.png b/report-viewer/src/assets/images/report/fxbs.png new file mode 100644 index 0000000..ea0b045 Binary files /dev/null and b/report-viewer/src/assets/images/report/fxbs.png differ diff --git a/report-viewer/src/assets/images/report/fxgl.png b/report-viewer/src/assets/images/report/fxgl.png new file mode 100644 index 0000000..cdbc0db Binary files /dev/null and b/report-viewer/src/assets/images/report/fxgl.png differ diff --git a/report-viewer/src/assets/images/report/fxmd.png b/report-viewer/src/assets/images/report/fxmd.png new file mode 100644 index 0000000..ef3255d Binary files /dev/null and b/report-viewer/src/assets/images/report/fxmd.png differ diff --git a/report-viewer/src/assets/images/report/fxzbxq.png b/report-viewer/src/assets/images/report/fxzbxq.png new file mode 100644 index 0000000..354b12f Binary files /dev/null and b/report-viewer/src/assets/images/report/fxzbxq.png differ diff --git a/report-viewer/src/assets/images/report/fxzl.png b/report-viewer/src/assets/images/report/fxzl.png new file mode 100644 index 0000000..6139e37 Binary files /dev/null and b/report-viewer/src/assets/images/report/fxzl.png differ diff --git a/report-viewer/src/assets/images/report/fybgt.png b/report-viewer/src/assets/images/report/fybgt.png new file mode 100644 index 0000000..9460e11 Binary files /dev/null and b/report-viewer/src/assets/images/report/fybgt.png differ diff --git a/report-viewer/src/assets/images/report/gazdryhy.png b/report-viewer/src/assets/images/report/gazdryhy.png new file mode 100644 index 0000000..15d94e4 Binary files /dev/null and b/report-viewer/src/assets/images/report/gazdryhy.png differ diff --git a/report-viewer/src/assets/images/report/gazdryhycp.png b/report-viewer/src/assets/images/report/gazdryhycp.png new file mode 100644 index 0000000..2a4d02a Binary files /dev/null and b/report-viewer/src/assets/images/report/gazdryhycp.png differ diff --git a/report-viewer/src/assets/images/report/gfx.png b/report-viewer/src/assets/images/report/gfx.png new file mode 100644 index 0000000..ce402b1 Binary files /dev/null and b/report-viewer/src/assets/images/report/gfx.png differ diff --git a/report-viewer/src/assets/images/report/gl.png b/report-viewer/src/assets/images/report/gl.png new file mode 100644 index 0000000..c2f9cab Binary files /dev/null and b/report-viewer/src/assets/images/report/gl.png differ diff --git a/report-viewer/src/assets/images/report/glfxjd.png b/report-viewer/src/assets/images/report/glfxjd.png new file mode 100644 index 0000000..9f5d4a3 Binary files /dev/null and b/report-viewer/src/assets/images/report/glfxjd.png differ diff --git a/report-viewer/src/assets/images/report/glfxjd2.png b/report-viewer/src/assets/images/report/glfxjd2.png new file mode 100644 index 0000000..adb5429 Binary files /dev/null and b/report-viewer/src/assets/images/report/glfxjd2.png differ diff --git a/report-viewer/src/assets/images/report/glsfz.png b/report-viewer/src/assets/images/report/glsfz.png new file mode 100644 index 0000000..6852094 Binary files /dev/null and b/report-viewer/src/assets/images/report/glsfz.png differ diff --git a/report-viewer/src/assets/images/report/glsjh.png b/report-viewer/src/assets/images/report/glsjh.png new file mode 100644 index 0000000..ab59c59 Binary files /dev/null and b/report-viewer/src/assets/images/report/glsjh.png differ diff --git a/report-viewer/src/assets/images/report/glzdryhy2.png b/report-viewer/src/assets/images/report/glzdryhy2.png new file mode 100644 index 0000000..6a29b63 Binary files /dev/null and b/report-viewer/src/assets/images/report/glzdryhy2.png 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 new file mode 100644 index 0000000..5d90eb2 Binary files /dev/null and b/report-viewer/src/assets/images/report/grdsj_inquire_bg.jpg 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 new file mode 100644 index 0000000..197db31 Binary files /dev/null and b/report-viewer/src/assets/images/report/grdsj_report_bg.jpg differ diff --git a/report-viewer/src/assets/images/report/gsdfx.png b/report-viewer/src/assets/images/report/gsdfx.png new file mode 100644 index 0000000..6a59cc4 Binary files /dev/null and b/report-viewer/src/assets/images/report/gsdfx.png differ diff --git a/report-viewer/src/assets/images/report/hktj.png b/report-viewer/src/assets/images/report/hktj.png new file mode 100644 index 0000000..68ca536 Binary files /dev/null and b/report-viewer/src/assets/images/report/hktj.png differ diff --git a/report-viewer/src/assets/images/report/hkylfx.png b/report-viewer/src/assets/images/report/hkylfx.png new file mode 100644 index 0000000..095ae8a Binary files /dev/null and b/report-viewer/src/assets/images/report/hkylfx.png 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 new file mode 100644 index 0000000..82fb69c Binary files /dev/null and b/report-viewer/src/assets/images/report/homeservice_inquire_bg.jpg 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 new file mode 100644 index 0000000..48f861b Binary files /dev/null and b/report-viewer/src/assets/images/report/homeservice_report_bg.jpg differ diff --git a/report-viewer/src/assets/images/report/j24gyfkqk.png b/report-viewer/src/assets/images/report/j24gyfkqk.png new file mode 100644 index 0000000..1eab157 Binary files /dev/null and b/report-viewer/src/assets/images/report/j24gyfkqk.png differ diff --git a/report-viewer/src/assets/images/report/jdpg.png b/report-viewer/src/assets/images/report/jdpg.png new file mode 100644 index 0000000..e0ade16 Binary files /dev/null and b/report-viewer/src/assets/images/report/jdpg.png differ diff --git a/report-viewer/src/assets/images/report/jdpggl.png b/report-viewer/src/assets/images/report/jdpggl.png new file mode 100644 index 0000000..2f9455a Binary files /dev/null and b/report-viewer/src/assets/images/report/jdpggl.png differ diff --git a/report-viewer/src/assets/images/report/jgfx.png b/report-viewer/src/assets/images/report/jgfx.png new file mode 100644 index 0000000..55cab79 Binary files /dev/null and b/report-viewer/src/assets/images/report/jgfx.png differ diff --git a/report-viewer/src/assets/images/report/jgztxx.png b/report-viewer/src/assets/images/report/jgztxx.png new file mode 100644 index 0000000..d03b1e2 Binary files /dev/null and b/report-viewer/src/assets/images/report/jgztxx.png differ diff --git a/report-viewer/src/assets/images/report/jyyc.png b/report-viewer/src/assets/images/report/jyyc.png new file mode 100644 index 0000000..7d749e8 Binary files /dev/null and b/report-viewer/src/assets/images/report/jyyc.png differ diff --git a/report-viewer/src/assets/images/report/khlxjdbx.png b/report-viewer/src/assets/images/report/khlxjdbx.png new file mode 100644 index 0000000..56cbb65 Binary files /dev/null and b/report-viewer/src/assets/images/report/khlxjdbx.png differ diff --git a/report-viewer/src/assets/images/report/lsjdxw.png b/report-viewer/src/assets/images/report/lsjdxw.png new file mode 100644 index 0000000..b0fdd82 Binary files /dev/null and b/report-viewer/src/assets/images/report/lsjdxw.png differ diff --git a/report-viewer/src/assets/images/report/lyqk.png b/report-viewer/src/assets/images/report/lyqk.png new file mode 100644 index 0000000..4b2bf98 Binary files /dev/null and b/report-viewer/src/assets/images/report/lyqk.png differ diff --git a/report-viewer/src/assets/images/report/lyxxxq.png b/report-viewer/src/assets/images/report/lyxxxq.png new file mode 100644 index 0000000..38c797c Binary files /dev/null and b/report-viewer/src/assets/images/report/lyxxxq.png 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 new file mode 100644 index 0000000..db0ac26 Binary files /dev/null and b/report-viewer/src/assets/images/report/marriage_inquire_bg.jpg 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 new file mode 100644 index 0000000..5752966 Binary files /dev/null and b/report-viewer/src/assets/images/report/marriage_report_bg.jpg differ diff --git a/report-viewer/src/assets/images/report/ms.png b/report-viewer/src/assets/images/report/ms.png new file mode 100644 index 0000000..fa7d7b0 Binary files /dev/null and b/report-viewer/src/assets/images/report/ms.png differ diff --git a/report-viewer/src/assets/images/report/mzfxbz.png b/report-viewer/src/assets/images/report/mzfxbz.png new file mode 100644 index 0000000..c98045b Binary files /dev/null and b/report-viewer/src/assets/images/report/mzfxbz.png differ diff --git a/report-viewer/src/assets/images/report/qsgg.png b/report-viewer/src/assets/images/report/qsgg.png new file mode 100644 index 0000000..4666fde Binary files /dev/null and b/report-viewer/src/assets/images/report/qsgg.png differ diff --git a/report-viewer/src/assets/images/report/qspc.png b/report-viewer/src/assets/images/report/qspc.png new file mode 100644 index 0000000..7cdf628 Binary files /dev/null and b/report-viewer/src/assets/images/report/qspc.png differ diff --git a/report-viewer/src/assets/images/report/rkpm.png b/report-viewer/src/assets/images/report/rkpm.png new file mode 100644 index 0000000..8ba7f91 Binary files /dev/null and b/report-viewer/src/assets/images/report/rkpm.png differ diff --git a/report-viewer/src/assets/images/report/rzls.png b/report-viewer/src/assets/images/report/rzls.png new file mode 100644 index 0000000..4b13c82 Binary files /dev/null and b/report-viewer/src/assets/images/report/rzls.png differ diff --git a/report-viewer/src/assets/images/report/sagg.png b/report-viewer/src/assets/images/report/sagg.png new file mode 100644 index 0000000..179e0c2 Binary files /dev/null and b/report-viewer/src/assets/images/report/sagg.png differ diff --git a/report-viewer/src/assets/images/report/sdszhycp.png b/report-viewer/src/assets/images/report/sdszhycp.png new file mode 100644 index 0000000..c49bc10 Binary files /dev/null and b/report-viewer/src/assets/images/report/sdszhycp.png differ diff --git a/report-viewer/src/assets/images/report/sdszryhy.png b/report-viewer/src/assets/images/report/sdszryhy.png new file mode 100644 index 0000000..ba9df65 Binary files /dev/null and b/report-viewer/src/assets/images/report/sdszryhy.png differ diff --git a/report-viewer/src/assets/images/report/sfxxhy.png b/report-viewer/src/assets/images/report/sfxxhy.png new file mode 100644 index 0000000..323da72 Binary files /dev/null and b/report-viewer/src/assets/images/report/sfxxhy.png differ diff --git a/report-viewer/src/assets/images/report/sfz.png b/report-viewer/src/assets/images/report/sfz.png new file mode 100644 index 0000000..f565538 Binary files /dev/null and b/report-viewer/src/assets/images/report/sfz.png differ diff --git a/report-viewer/src/assets/images/report/shjy.png b/report-viewer/src/assets/images/report/shjy.png new file mode 100644 index 0000000..2c9ee0c Binary files /dev/null and b/report-viewer/src/assets/images/report/shjy.png differ diff --git a/report-viewer/src/assets/images/report/sjh.png b/report-viewer/src/assets/images/report/sjh.png new file mode 100644 index 0000000..17c053e Binary files /dev/null and b/report-viewer/src/assets/images/report/sjh.png differ diff --git a/report-viewer/src/assets/images/report/sjqsfx.png b/report-viewer/src/assets/images/report/sjqsfx.png new file mode 100644 index 0000000..263b29d Binary files /dev/null and b/report-viewer/src/assets/images/report/sjqsfx.png 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 new file mode 100644 index 0000000..eb96d45 Binary files /dev/null and b/report-viewer/src/assets/images/report/slbg_inquire_icon.png differ diff --git a/report-viewer/src/assets/images/report/srbq.png b/report-viewer/src/assets/images/report/srbq.png new file mode 100644 index 0000000..e60b337 Binary files /dev/null and b/report-viewer/src/assets/images/report/srbq.png differ diff --git a/report-viewer/src/assets/images/report/srpg.png b/report-viewer/src/assets/images/report/srpg.png new file mode 100644 index 0000000..f3b3dc9 Binary files /dev/null and b/report-viewer/src/assets/images/report/srpg.png differ diff --git a/report-viewer/src/assets/images/report/ssfxfx.png b/report-viewer/src/assets/images/report/ssfxfx.png new file mode 100644 index 0000000..d7d3e6b Binary files /dev/null and b/report-viewer/src/assets/images/report/ssfxfx.png differ diff --git a/report-viewer/src/assets/images/report/ssfxztgl.png b/report-viewer/src/assets/images/report/ssfxztgl.png new file mode 100644 index 0000000..eb78d68 Binary files /dev/null and b/report-viewer/src/assets/images/report/ssfxztgl.png differ diff --git a/report-viewer/src/assets/images/report/sswf.png b/report-viewer/src/assets/images/report/sswf.png new file mode 100644 index 0000000..816aeb1 Binary files /dev/null and b/report-viewer/src/assets/images/report/sswf.png differ diff --git a/report-viewer/src/assets/images/report/swfx.png b/report-viewer/src/assets/images/report/swfx.png new file mode 100644 index 0000000..3ad1954 Binary files /dev/null and b/report-viewer/src/assets/images/report/swfx.png differ diff --git a/report-viewer/src/assets/images/report/sxaj.png b/report-viewer/src/assets/images/report/sxaj.png new file mode 100644 index 0000000..700fe0a Binary files /dev/null and b/report-viewer/src/assets/images/report/sxaj.png differ diff --git a/report-viewer/src/assets/images/report/sxxq.png b/report-viewer/src/assets/images/report/sxxq.png new file mode 100644 index 0000000..f0ac43c Binary files /dev/null and b/report-viewer/src/assets/images/report/sxxq.png differ diff --git a/report-viewer/src/assets/images/report/title.png b/report-viewer/src/assets/images/report/title.png new file mode 100644 index 0000000..3e84f7f Binary files /dev/null and b/report-viewer/src/assets/images/report/title.png 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 new file mode 100644 index 0000000..472f6bb Binary files /dev/null and b/report-viewer/src/assets/images/report/title_inquire_bg.png 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 new file mode 100644 index 0000000..73eedbf Binary files /dev/null and b/report-viewer/src/assets/images/report/title_inquire_bg_green.png 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 new file mode 100644 index 0000000..f31ccbf Binary files /dev/null and b/report-viewer/src/assets/images/report/title_inquire_bg_red.png differ diff --git a/report-viewer/src/assets/images/report/wmz.png b/report-viewer/src/assets/images/report/wmz.png new file mode 100644 index 0000000..7564469 Binary files /dev/null and b/report-viewer/src/assets/images/report/wmz.png differ diff --git a/report-viewer/src/assets/images/report/wxts_icon.png b/report-viewer/src/assets/images/report/wxts_icon.png new file mode 100644 index 0000000..d2da4b8 Binary files /dev/null and b/report-viewer/src/assets/images/report/wxts_icon.png differ diff --git a/report-viewer/src/assets/images/report/xgaj.png b/report-viewer/src/assets/images/report/xgaj.png new file mode 100644 index 0000000..73a1232 Binary files /dev/null and b/report-viewer/src/assets/images/report/xgaj.png differ diff --git a/report-viewer/src/assets/images/report/xl.png b/report-viewer/src/assets/images/report/xl.png new file mode 100644 index 0000000..59ca3dd Binary files /dev/null and b/report-viewer/src/assets/images/report/xl.png differ diff --git a/report-viewer/src/assets/images/report/xs.png b/report-viewer/src/assets/images/report/xs.png new file mode 100644 index 0000000..27dc5bc Binary files /dev/null and b/report-viewer/src/assets/images/report/xs.png 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 new file mode 100644 index 0000000..973144d Binary files /dev/null and b/report-viewer/src/assets/images/report/xwqy_inquire_bg.jpg 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 new file mode 100644 index 0000000..a9f1613 Binary files /dev/null and b/report-viewer/src/assets/images/report/xwqy_report_bg.jpg differ diff --git a/report-viewer/src/assets/images/report/xxlx.png b/report-viewer/src/assets/images/report/xxlx.png new file mode 100644 index 0000000..bf3cd9c Binary files /dev/null and b/report-viewer/src/assets/images/report/xxlx.png differ diff --git a/report-viewer/src/assets/images/report/xxxs.png b/report-viewer/src/assets/images/report/xxxs.png new file mode 100644 index 0000000..c5461ca Binary files /dev/null and b/report-viewer/src/assets/images/report/xxxs.png differ diff --git a/report-viewer/src/assets/images/report/xypf.png b/report-viewer/src/assets/images/report/xypf.png new file mode 100644 index 0000000..efa7956 Binary files /dev/null and b/report-viewer/src/assets/images/report/xypf.png differ diff --git a/report-viewer/src/assets/images/report/xypf2.png b/report-viewer/src/assets/images/report/xypf2.png new file mode 100644 index 0000000..983f507 Binary files /dev/null and b/report-viewer/src/assets/images/report/xypf2.png differ diff --git a/report-viewer/src/assets/images/report/xz.png b/report-viewer/src/assets/images/report/xz.png new file mode 100644 index 0000000..039dd18 Binary files /dev/null and b/report-viewer/src/assets/images/report/xz.png differ diff --git a/report-viewer/src/assets/images/report/xzcf.png b/report-viewer/src/assets/images/report/xzcf.png new file mode 100644 index 0000000..542b1fe Binary files /dev/null and b/report-viewer/src/assets/images/report/xzcf.png differ diff --git a/report-viewer/src/assets/images/report/ycsjdjdbx.png b/report-viewer/src/assets/images/report/ycsjdjdbx.png new file mode 100644 index 0000000..0ba9fcb Binary files /dev/null and b/report-viewer/src/assets/images/report/ycsjdjdbx.png differ diff --git a/report-viewer/src/assets/images/report/yqfx.png b/report-viewer/src/assets/images/report/yqfx.png new file mode 100644 index 0000000..3d5a624 Binary files /dev/null and b/report-viewer/src/assets/images/report/yqfx.png differ diff --git a/report-viewer/src/assets/images/report/yqfxgl.png b/report-viewer/src/assets/images/report/yqfxgl.png new file mode 100644 index 0000000..3db496a Binary files /dev/null and b/report-viewer/src/assets/images/report/yqfxgl.png differ diff --git a/report-viewer/src/assets/images/report/yqsjfb.png b/report-viewer/src/assets/images/report/yqsjfb.png new file mode 100644 index 0000000..a8638af Binary files /dev/null and b/report-viewer/src/assets/images/report/yqsjfb.png differ diff --git a/report-viewer/src/assets/images/report/yqxxxq.png b/report-viewer/src/assets/images/report/yqxxxq.png new file mode 100644 index 0000000..dd0222f Binary files /dev/null and b/report-viewer/src/assets/images/report/yqxxxq.png differ diff --git a/report-viewer/src/assets/images/report/yshc.png b/report-viewer/src/assets/images/report/yshc.png new file mode 100644 index 0000000..18abfe6 Binary files /dev/null and b/report-viewer/src/assets/images/report/yshc.png differ diff --git a/report-viewer/src/assets/images/report/ywlxjdbx.png b/report-viewer/src/assets/images/report/ywlxjdbx.png new file mode 100644 index 0000000..f6c4fc3 Binary files /dev/null and b/report-viewer/src/assets/images/report/ywlxjdbx.png differ diff --git a/report-viewer/src/assets/images/report/yyshy.png b/report-viewer/src/assets/images/report/yyshy.png new file mode 100644 index 0000000..f89c747 Binary files /dev/null and b/report-viewer/src/assets/images/report/yyshy.png differ diff --git a/report-viewer/src/assets/images/report/yzgz.png b/report-viewer/src/assets/images/report/yzgz.png new file mode 100644 index 0000000..903ac38 Binary files /dev/null and b/report-viewer/src/assets/images/report/yzgz.png differ diff --git a/report-viewer/src/assets/images/report/zfx.png b/report-viewer/src/assets/images/report/zfx.png new file mode 100644 index 0000000..7a9f3a5 Binary files /dev/null and b/report-viewer/src/assets/images/report/zfx.png differ diff --git a/report-viewer/src/assets/images/report/zk.png b/report-viewer/src/assets/images/report/zk.png new file mode 100644 index 0000000..0387bdb Binary files /dev/null and b/report-viewer/src/assets/images/report/zk.png differ diff --git a/report-viewer/src/assets/images/report/zlfxpg.png b/report-viewer/src/assets/images/report/zlfxpg.png new file mode 100644 index 0000000..22d1283 Binary files /dev/null and b/report-viewer/src/assets/images/report/zlfxpg.png differ diff --git a/report-viewer/src/assets/images/report/zlfxpggl.png b/report-viewer/src/assets/images/report/zlfxpggl.png new file mode 100644 index 0000000..f79d48a Binary files /dev/null and b/report-viewer/src/assets/images/report/zlfxpggl.png differ diff --git a/report-viewer/src/assets/images/report/zlxw.png b/report-viewer/src/assets/images/report/zlxw.png new file mode 100644 index 0000000..180c1c3 Binary files /dev/null and b/report-viewer/src/assets/images/report/zlxw.png differ diff --git a/report-viewer/src/assets/images/report/zq.png b/report-viewer/src/assets/images/report/zq.png new file mode 100644 index 0000000..79c5be6 Binary files /dev/null and b/report-viewer/src/assets/images/report/zq.png differ diff --git a/report-viewer/src/assets/images/report/zwsc.png b/report-viewer/src/assets/images/report/zwsc.png new file mode 100644 index 0000000..f17c762 Binary files /dev/null and b/report-viewer/src/assets/images/report/zwsc.png differ diff --git a/report-viewer/src/assets/images/report/zxaj.png b/report-viewer/src/assets/images/report/zxaj.png new file mode 100644 index 0000000..1c066ea Binary files /dev/null and b/report-viewer/src/assets/images/report/zxaj.png differ diff --git a/report-viewer/src/assets/images/report/zyjy.png b/report-viewer/src/assets/images/report/zyjy.png new file mode 100644 index 0000000..6f51ca0 Binary files /dev/null and b/report-viewer/src/assets/images/report/zyjy.png differ diff --git a/report-viewer/src/assets/images/report/zymc.png b/report-viewer/src/assets/images/report/zymc.png new file mode 100644 index 0000000..b46e3ac Binary files /dev/null and b/report-viewer/src/assets/images/report/zymc.png differ diff --git a/report-viewer/src/assets/main.css b/report-viewer/src/assets/main.css new file mode 100644 index 0000000..934a8ba --- /dev/null +++ b/report-viewer/src/assets/main.css @@ -0,0 +1,15 @@ +@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 new file mode 100644 index 0000000..4a3f6d2 --- /dev/null +++ b/report-viewer/src/assets/nprogress.css @@ -0,0 +1,10 @@ +/* 进度条颜色 */ +#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 new file mode 100644 index 0000000..eeccc09 --- /dev/null +++ b/report-viewer/src/assets/vant-theme.css @@ -0,0 +1,30 @@ +/* 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 new file mode 100644 index 0000000..f41844c --- /dev/null +++ b/report-viewer/src/auto-imports.d.ts @@ -0,0 +1,298 @@ +/* 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 new file mode 100644 index 0000000..3d99eda --- /dev/null +++ b/report-viewer/src/components/BaseReport.vue @@ -0,0 +1,631 @@ + + + + + diff --git a/report-viewer/src/components/GaugeChart.vue b/report-viewer/src/components/GaugeChart.vue new file mode 100644 index 0000000..4331751 --- /dev/null +++ b/report-viewer/src/components/GaugeChart.vue @@ -0,0 +1,254 @@ + + + + + \ No newline at end of file diff --git a/report-viewer/src/components/LEmpty.vue b/report-viewer/src/components/LEmpty.vue new file mode 100644 index 0000000..20f22fc --- /dev/null +++ b/report-viewer/src/components/LEmpty.vue @@ -0,0 +1,41 @@ + + + + + \ No newline at end of file diff --git a/report-viewer/src/components/LRemark.vue b/report-viewer/src/components/LRemark.vue new file mode 100644 index 0000000..d833a87 --- /dev/null +++ b/report-viewer/src/components/LRemark.vue @@ -0,0 +1,92 @@ + + + + + \ No newline at end of file diff --git a/report-viewer/src/components/LTitle.vue b/report-viewer/src/components/LTitle.vue new file mode 100644 index 0000000..4c4d89a --- /dev/null +++ b/report-viewer/src/components/LTitle.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/report-viewer/src/components/ShareReportButton.vue b/report-viewer/src/components/ShareReportButton.vue new file mode 100644 index 0000000..29af5d5 --- /dev/null +++ b/report-viewer/src/components/ShareReportButton.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/report-viewer/src/components/StyledTabs.vue b/report-viewer/src/components/StyledTabs.vue new file mode 100644 index 0000000..96a2e42 --- /dev/null +++ b/report-viewer/src/components/StyledTabs.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/report-viewer/src/components/TitleBanner.vue b/report-viewer/src/components/TitleBanner.vue new file mode 100644 index 0000000..f2b2684 --- /dev/null +++ b/report-viewer/src/components/TitleBanner.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/report-viewer/src/components/VerificationCard.vue b/report-viewer/src/components/VerificationCard.vue new file mode 100644 index 0000000..66972ea --- /dev/null +++ b/report-viewer/src/components/VerificationCard.vue @@ -0,0 +1,180 @@ + + + + + diff --git a/report-viewer/src/composables/useApiFetch.js b/report-viewer/src/composables/useApiFetch.js new file mode 100644 index 0000000..d1aca43 --- /dev/null +++ b/report-viewer/src/composables/useApiFetch.js @@ -0,0 +1,72 @@ +// 简化的 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 new file mode 100644 index 0000000..b3ddbbd --- /dev/null +++ b/report-viewer/src/main.js @@ -0,0 +1,26 @@ +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 new file mode 100644 index 0000000..f7e9d68 --- /dev/null +++ b/report-viewer/src/ui/CDWBG8B4D/components/ElementVerification.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/report-viewer/src/ui/CDWBG8B4D/components/Identity.vue b/report-viewer/src/ui/CDWBG8B4D/components/Identity.vue new file mode 100644 index 0000000..2f0d4e1 --- /dev/null +++ b/report-viewer/src/ui/CDWBG8B4D/components/Identity.vue @@ -0,0 +1,367 @@ + + + + + diff --git a/report-viewer/src/ui/CDWBG8B4D/components/LeasingRiskSection.vue b/report-viewer/src/ui/CDWBG8B4D/components/LeasingRiskSection.vue new file mode 100644 index 0000000..6cca2b4 --- /dev/null +++ b/report-viewer/src/ui/CDWBG8B4D/components/LeasingRiskSection.vue @@ -0,0 +1,492 @@ + + + + + diff --git a/report-viewer/src/ui/CDWBG8B4D/components/LoanEvaluationSection.vue b/report-viewer/src/ui/CDWBG8B4D/components/LoanEvaluationSection.vue new file mode 100644 index 0000000..28e69e8 --- /dev/null +++ b/report-viewer/src/ui/CDWBG8B4D/components/LoanEvaluationSection.vue @@ -0,0 +1,526 @@ + + + + + diff --git a/report-viewer/src/ui/CDWBG8B4D/components/MultCourtInfoSection.vue b/report-viewer/src/ui/CDWBG8B4D/components/MultCourtInfoSection.vue new file mode 100644 index 0000000..120879b --- /dev/null +++ b/report-viewer/src/ui/CDWBG8B4D/components/MultCourtInfoSection.vue @@ -0,0 +1,521 @@ + + + + + \ 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 new file mode 100644 index 0000000..a8cd6b9 --- /dev/null +++ b/report-viewer/src/ui/CDWBG8B4D/components/OverdueRiskSection.vue @@ -0,0 +1,494 @@ + + + + + diff --git a/report-viewer/src/ui/CDWBG8B4D/components/ReportOverview.vue b/report-viewer/src/ui/CDWBG8B4D/components/ReportOverview.vue new file mode 100644 index 0000000..8d0d02e --- /dev/null +++ b/report-viewer/src/ui/CDWBG8B4D/components/ReportOverview.vue @@ -0,0 +1,320 @@ + + + + + diff --git a/report-viewer/src/ui/CDWBG8B4D/components/RiskSupervisionSection.vue b/report-viewer/src/ui/CDWBG8B4D/components/RiskSupervisionSection.vue new file mode 100644 index 0000000..c8afaab --- /dev/null +++ b/report-viewer/src/ui/CDWBG8B4D/components/RiskSupervisionSection.vue @@ -0,0 +1,176 @@ + + + + + diff --git a/report-viewer/src/ui/CDWBG8B4D/components/RiskWarning.vue b/report-viewer/src/ui/CDWBG8B4D/components/RiskWarning.vue new file mode 100644 index 0000000..b10f301 --- /dev/null +++ b/report-viewer/src/ui/CDWBG8B4D/components/RiskWarning.vue @@ -0,0 +1,409 @@ + + + + + diff --git a/report-viewer/src/ui/CDWBG8B4D/components/RiskWarningSection.vue b/report-viewer/src/ui/CDWBG8B4D/components/RiskWarningSection.vue new file mode 100644 index 0000000..5e5f204 --- /dev/null +++ b/report-viewer/src/ui/CDWBG8B4D/components/RiskWarningSection.vue @@ -0,0 +1,747 @@ + + + + + \ 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 new file mode 100644 index 0000000..a5e6360 --- /dev/null +++ b/report-viewer/src/ui/CDWBG8B4D/components/RiskWarningTab.vue @@ -0,0 +1,1147 @@ + + + + + \ No newline at end of file diff --git a/report-viewer/src/ui/CDWBG8B4D/index.vue b/report-viewer/src/ui/CDWBG8B4D/index.vue new file mode 100644 index 0000000..605232c --- /dev/null +++ b/report-viewer/src/ui/CDWBG8B4D/index.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/report-viewer/src/ui/CDWBG8B4D/utils/intervalFormatter.js b/report-viewer/src/ui/CDWBG8B4D/utils/intervalFormatter.js new file mode 100644 index 0000000..418e3b9 --- /dev/null +++ b/report-viewer/src/ui/CDWBG8B4D/utils/intervalFormatter.js @@ -0,0 +1,264 @@ +/** + * 区间表达式格式化工具 + * 将数学区间表达式转换为用户友好的文本描述 + */ + +/** + * 格式化区间表达式 + * @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 new file mode 100644 index 0000000..d178c0f --- /dev/null +++ b/report-viewer/src/ui/CDWBG8B4D/utils/simpleSplitter.js @@ -0,0 +1,157 @@ +/** + * 简单的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 new file mode 100644 index 0000000..f1efe42 --- /dev/null +++ b/report-viewer/src/ui/CFLXG0V4B/components/CaseDetail.vue @@ -0,0 +1,171 @@ + + + \ 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 new file mode 100644 index 0000000..3d8fa47 --- /dev/null +++ b/report-viewer/src/ui/CFLXG0V4B/components/StatisticsOverview.vue @@ -0,0 +1,284 @@ + + + diff --git a/report-viewer/src/ui/CFLXG0V4B/index.vue b/report-viewer/src/ui/CFLXG0V4B/index.vue new file mode 100644 index 0000000..fb61592 --- /dev/null +++ b/report-viewer/src/ui/CFLXG0V4B/index.vue @@ -0,0 +1,451 @@ + + + + + diff --git a/report-viewer/src/ui/CFLXG0V4B/utils/lawsuitUtils.js b/report-viewer/src/ui/CFLXG0V4B/utils/lawsuitUtils.js new file mode 100644 index 0000000..8b225f0 --- /dev/null +++ b/report-viewer/src/ui/CFLXG0V4B/utils/lawsuitUtils.js @@ -0,0 +1,302 @@ +// 案件类型映射表 +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 '—' + + // 超过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.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 new file mode 100644 index 0000000..1d98682 --- /dev/null +++ b/report-viewer/src/ui/CQCXG9P1C.vue @@ -0,0 +1,130 @@ + + + + + \ No newline at end of file diff --git a/report-viewer/src/ui/CQYGL3F8E/README.md b/report-viewer/src/ui/CQYGL3F8E/README.md new file mode 100644 index 0000000..88fb581 --- /dev/null +++ b/report-viewer/src/ui/CQYGL3F8E/README.md @@ -0,0 +1,238 @@ +# 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 new file mode 100644 index 0000000..4baf4e4 --- /dev/null +++ b/report-viewer/src/ui/CQYGL3F8E/components/Abnormal.vue @@ -0,0 +1,273 @@ + + + + + \ 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 new file mode 100644 index 0000000..f99eec9 --- /dev/null +++ b/report-viewer/src/ui/CQYGL3F8E/components/FinancingHistory.vue @@ -0,0 +1,265 @@ + + + + + \ 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 new file mode 100644 index 0000000..830c1ad --- /dev/null +++ b/report-viewer/src/ui/CQYGL3F8E/components/InvestHistory.vue @@ -0,0 +1,337 @@ + + + + + \ 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 new file mode 100644 index 0000000..19cd296 --- /dev/null +++ b/report-viewer/src/ui/CQYGL3F8E/components/Investment.vue @@ -0,0 +1,335 @@ + + + + + diff --git a/report-viewer/src/ui/CQYGL3F8E/components/Lawsuit.vue b/report-viewer/src/ui/CQYGL3F8E/components/Lawsuit.vue new file mode 100644 index 0000000..a9f92f1 --- /dev/null +++ b/report-viewer/src/ui/CQYGL3F8E/components/Lawsuit.vue @@ -0,0 +1,1715 @@ + + + + + diff --git a/report-viewer/src/ui/CQYGL3F8E/components/Punishment.vue b/report-viewer/src/ui/CQYGL3F8E/components/Punishment.vue new file mode 100644 index 0000000..312cd6d --- /dev/null +++ b/report-viewer/src/ui/CQYGL3F8E/components/Punishment.vue @@ -0,0 +1,289 @@ + + + + + \ 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 new file mode 100644 index 0000000..28660d1 --- /dev/null +++ b/report-viewer/src/ui/CQYGL3F8E/components/SeniorExecutive.vue @@ -0,0 +1,307 @@ + + + + + diff --git a/report-viewer/src/ui/CQYGL3F8E/components/TaxRisk/OwnTax.vue b/report-viewer/src/ui/CQYGL3F8E/components/TaxRisk/OwnTax.vue new file mode 100644 index 0000000..746d380 --- /dev/null +++ b/report-viewer/src/ui/CQYGL3F8E/components/TaxRisk/OwnTax.vue @@ -0,0 +1,265 @@ + + + + + diff --git a/report-viewer/src/ui/CQYGL3F8E/components/TaxRisk/TaxContravention.vue b/report-viewer/src/ui/CQYGL3F8E/components/TaxRisk/TaxContravention.vue new file mode 100644 index 0000000..05ad3dd --- /dev/null +++ b/report-viewer/src/ui/CQYGL3F8E/components/TaxRisk/TaxContravention.vue @@ -0,0 +1,208 @@ + + + + + diff --git a/report-viewer/src/ui/CQYGL3F8E/components/TaxRisk/index.vue b/report-viewer/src/ui/CQYGL3F8E/components/TaxRisk/index.vue new file mode 100644 index 0000000..9e6dfed --- /dev/null +++ b/report-viewer/src/ui/CQYGL3F8E/components/TaxRisk/index.vue @@ -0,0 +1,239 @@ + + + + + diff --git a/report-viewer/src/ui/CQYGL3F8E/index.vue b/report-viewer/src/ui/CQYGL3F8E/index.vue new file mode 100644 index 0000000..62e45de --- /dev/null +++ b/report-viewer/src/ui/CQYGL3F8E/index.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/report-viewer/src/ui/CQYGL3F8E/utils/simpleSplitter.js b/report-viewer/src/ui/CQYGL3F8E/utils/simpleSplitter.js new file mode 100644 index 0000000..94e89da --- /dev/null +++ b/report-viewer/src/ui/CQYGL3F8E/utils/simpleSplitter.js @@ -0,0 +1,302 @@ +/** + * 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 new file mode 100644 index 0000000..036c5dc --- /dev/null +++ b/report-viewer/src/ui/DWBG6A2C/README.md @@ -0,0 +1,178 @@ +# 司南报告组件 (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 new file mode 100644 index 0000000..914c775 --- /dev/null +++ b/report-viewer/src/ui/DWBG6A2C/components/AntiFraudInfoSection.vue @@ -0,0 +1,527 @@ + + + + + diff --git a/report-viewer/src/ui/DWBG6A2C/components/ApplicationStatisticsSection.vue b/report-viewer/src/ui/DWBG6A2C/components/ApplicationStatisticsSection.vue new file mode 100644 index 0000000..08fe280 --- /dev/null +++ b/report-viewer/src/ui/DWBG6A2C/components/ApplicationStatisticsSection.vue @@ -0,0 +1,398 @@ + + + + + diff --git a/report-viewer/src/ui/DWBG6A2C/components/BaseInfoSection.vue b/report-viewer/src/ui/DWBG6A2C/components/BaseInfoSection.vue new file mode 100644 index 0000000..7edbf10 --- /dev/null +++ b/report-viewer/src/ui/DWBG6A2C/components/BaseInfoSection.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/report-viewer/src/ui/DWBG6A2C/components/CourtRiskInfoSection.vue b/report-viewer/src/ui/DWBG6A2C/components/CourtRiskInfoSection.vue new file mode 100644 index 0000000..4c94553 --- /dev/null +++ b/report-viewer/src/ui/DWBG6A2C/components/CourtRiskInfoSection.vue @@ -0,0 +1,591 @@ + + + + + \ 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 new file mode 100644 index 0000000..a609125 --- /dev/null +++ b/report-viewer/src/ui/DWBG6A2C/components/CreditDetailSection.vue @@ -0,0 +1,300 @@ + + + + + diff --git a/report-viewer/src/ui/DWBG6A2C/components/LendingStatisticsSection.vue b/report-viewer/src/ui/DWBG6A2C/components/LendingStatisticsSection.vue new file mode 100644 index 0000000..700e948 --- /dev/null +++ b/report-viewer/src/ui/DWBG6A2C/components/LendingStatisticsSection.vue @@ -0,0 +1,567 @@ + + + + + diff --git a/report-viewer/src/ui/DWBG6A2C/components/OverdueRecordSection.vue b/report-viewer/src/ui/DWBG6A2C/components/OverdueRecordSection.vue new file mode 100644 index 0000000..8e91936 --- /dev/null +++ b/report-viewer/src/ui/DWBG6A2C/components/OverdueRecordSection.vue @@ -0,0 +1,617 @@ + + + + + diff --git a/report-viewer/src/ui/DWBG6A2C/components/PerformanceStatisticsSection.vue b/report-viewer/src/ui/DWBG6A2C/components/PerformanceStatisticsSection.vue new file mode 100644 index 0000000..da4c6b8 --- /dev/null +++ b/report-viewer/src/ui/DWBG6A2C/components/PerformanceStatisticsSection.vue @@ -0,0 +1,522 @@ + + + + + diff --git a/report-viewer/src/ui/DWBG6A2C/components/RentalBehaviorSection.vue b/report-viewer/src/ui/DWBG6A2C/components/RentalBehaviorSection.vue new file mode 100644 index 0000000..03d1c8f --- /dev/null +++ b/report-viewer/src/ui/DWBG6A2C/components/RentalBehaviorSection.vue @@ -0,0 +1,824 @@ + + + + + \ 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 new file mode 100644 index 0000000..9f2aae6 --- /dev/null +++ b/report-viewer/src/ui/DWBG6A2C/components/RiskListSection.vue @@ -0,0 +1,407 @@ + + + + + diff --git a/report-viewer/src/ui/DWBG6A2C/components/RiskPointSection.vue b/report-viewer/src/ui/DWBG6A2C/components/RiskPointSection.vue new file mode 100644 index 0000000..5e946d2 --- /dev/null +++ b/report-viewer/src/ui/DWBG6A2C/components/RiskPointSection.vue @@ -0,0 +1,436 @@ + + + + + diff --git a/report-viewer/src/ui/DWBG6A2C/components/RiskSupervisionSection.vue b/report-viewer/src/ui/DWBG6A2C/components/RiskSupervisionSection.vue new file mode 100644 index 0000000..2e5d339 --- /dev/null +++ b/report-viewer/src/ui/DWBG6A2C/components/RiskSupervisionSection.vue @@ -0,0 +1,384 @@ + + + + + diff --git a/report-viewer/src/ui/DWBG6A2C/components/SecurityInfoSection.vue b/report-viewer/src/ui/DWBG6A2C/components/SecurityInfoSection.vue new file mode 100644 index 0000000..14adb53 --- /dev/null +++ b/report-viewer/src/ui/DWBG6A2C/components/SecurityInfoSection.vue @@ -0,0 +1,427 @@ + + + + + diff --git a/report-viewer/src/ui/DWBG6A2C/components/StandLiveInfoSection.vue b/report-viewer/src/ui/DWBG6A2C/components/StandLiveInfoSection.vue new file mode 100644 index 0000000..7d07e97 --- /dev/null +++ b/report-viewer/src/ui/DWBG6A2C/components/StandLiveInfoSection.vue @@ -0,0 +1,383 @@ + + + + \ No newline at end of file diff --git a/report-viewer/src/ui/DWBG6A2C/index.vue b/report-viewer/src/ui/DWBG6A2C/index.vue new file mode 100644 index 0000000..6b710b0 --- /dev/null +++ b/report-viewer/src/ui/DWBG6A2C/index.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/report-viewer/src/ui/DWBG6A2C/utils/intervalFormatter.js b/report-viewer/src/ui/DWBG6A2C/utils/intervalFormatter.js new file mode 100644 index 0000000..dd54cf2 --- /dev/null +++ b/report-viewer/src/ui/DWBG6A2C/utils/intervalFormatter.js @@ -0,0 +1,304 @@ +/** + * 区间表达式格式化工具 + * 将数学区间表达式转换为用户友好的文本描述 + */ + +/** + * 格式化区间表达式 + * @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 new file mode 100644 index 0000000..8dc05d1 --- /dev/null +++ b/report-viewer/src/ui/DWBG6A2C/utils/simpleSplitter.js @@ -0,0 +1,311 @@ +/** + * 司南报告(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/JRZQ09J8/README.md b/report-viewer/src/ui/JRZQ09J8/README.md new file mode 100644 index 0000000..ee245aa --- /dev/null +++ b/report-viewer/src/ui/JRZQ09J8/README.md @@ -0,0 +1,165 @@ +# 收入评估组件 (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 new file mode 100644 index 0000000..19660bc --- /dev/null +++ b/report-viewer/src/ui/JRZQ09J8/components/IncomeAnalysis.vue @@ -0,0 +1,300 @@ + + + + + diff --git a/report-viewer/src/ui/JRZQ09J8/components/IncomeLevelGuide.vue b/report-viewer/src/ui/JRZQ09J8/components/IncomeLevelGuide.vue new file mode 100644 index 0000000..b4bdaad --- /dev/null +++ b/report-viewer/src/ui/JRZQ09J8/components/IncomeLevelGuide.vue @@ -0,0 +1,445 @@ + + + + + diff --git a/report-viewer/src/ui/JRZQ09J8/components/IncomeOverview.vue b/report-viewer/src/ui/JRZQ09J8/components/IncomeOverview.vue new file mode 100644 index 0000000..db6e3a7 --- /dev/null +++ b/report-viewer/src/ui/JRZQ09J8/components/IncomeOverview.vue @@ -0,0 +1,223 @@ + + + + + diff --git a/report-viewer/src/ui/JRZQ09J8/index.vue b/report-viewer/src/ui/JRZQ09J8/index.vue new file mode 100644 index 0000000..40779c4 --- /dev/null +++ b/report-viewer/src/ui/JRZQ09J8/index.vue @@ -0,0 +1,524 @@ + + + + + diff --git a/report-viewer/src/ui/JRZQ09J8/utils/incomeUtils.js b/report-viewer/src/ui/JRZQ09J8/utils/incomeUtils.js new file mode 100644 index 0000000..7f97535 --- /dev/null +++ b/report-viewer/src/ui/JRZQ09J8/utils/incomeUtils.js @@ -0,0 +1,414 @@ +/** + * 收入评估工具函数 + */ + +/** + * 收入等级映射表 + */ +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 new file mode 100644 index 0000000..383e825 --- /dev/null +++ b/report-viewer/src/ui/JRZQ4B6C/README.md @@ -0,0 +1,129 @@ +# 信贷表现组件 (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 new file mode 100644 index 0000000..e9d1a06 --- /dev/null +++ b/report-viewer/src/ui/JRZQ4B6C/components/InstitutionStatusSection.vue @@ -0,0 +1,164 @@ + + + diff --git a/report-viewer/src/ui/JRZQ4B6C/components/OverdueInfoSection.vue b/report-viewer/src/ui/JRZQ4B6C/components/OverdueInfoSection.vue new file mode 100644 index 0000000..9300b70 --- /dev/null +++ b/report-viewer/src/ui/JRZQ4B6C/components/OverdueInfoSection.vue @@ -0,0 +1,125 @@ + + + + + diff --git a/report-viewer/src/ui/JRZQ4B6C/components/PerformanceInfoSection.vue b/report-viewer/src/ui/JRZQ4B6C/components/PerformanceInfoSection.vue new file mode 100644 index 0000000..7f70578 --- /dev/null +++ b/report-viewer/src/ui/JRZQ4B6C/components/PerformanceInfoSection.vue @@ -0,0 +1,158 @@ + + + diff --git a/report-viewer/src/ui/JRZQ4B6C/components/ProbeOverview.vue b/report-viewer/src/ui/JRZQ4B6C/components/ProbeOverview.vue new file mode 100644 index 0000000..8f5602f --- /dev/null +++ b/report-viewer/src/ui/JRZQ4B6C/components/ProbeOverview.vue @@ -0,0 +1,119 @@ + + + + + diff --git a/report-viewer/src/ui/JRZQ4B6C/components/Remark.vue b/report-viewer/src/ui/JRZQ4B6C/components/Remark.vue new file mode 100644 index 0000000..7751664 --- /dev/null +++ b/report-viewer/src/ui/JRZQ4B6C/components/Remark.vue @@ -0,0 +1,83 @@ + + + + + \ No newline at end of file diff --git a/report-viewer/src/ui/JRZQ4B6C/index.vue b/report-viewer/src/ui/JRZQ4B6C/index.vue new file mode 100644 index 0000000..6e6aaa6 --- /dev/null +++ b/report-viewer/src/ui/JRZQ4B6C/index.vue @@ -0,0 +1,136 @@ + + + + + diff --git a/report-viewer/src/ui/JRZQ4B6C/utils/probeUtils.js b/report-viewer/src/ui/JRZQ4B6C/utils/probeUtils.js new file mode 100644 index 0000000..56d02af --- /dev/null +++ b/report-viewer/src/ui/JRZQ4B6C/utils/probeUtils.js @@ -0,0 +1,288 @@ +/** + * 信贷表现工具函数 + */ + +/** + * 结果编码映射 + */ +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 new file mode 100644 index 0000000..2b5e445 --- /dev/null +++ b/report-viewer/src/views/Report.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/report-viewer/tailwind.config.js b/report-viewer/tailwind.config.js new file mode 100644 index 0000000..7c8d2ac --- /dev/null +++ b/report-viewer/tailwind.config.js @@ -0,0 +1,95 @@ +/** @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 new file mode 100644 index 0000000..c0968f1 --- /dev/null +++ b/report-viewer/vite.config.js @@ -0,0 +1,66 @@ +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 new file mode 100644 index 0000000..4262add --- /dev/null +++ b/report-viewer/使用说明.md @@ -0,0 +1,198 @@ +# 报告查看器使用说明 + +## 📋 已包含的组件 + +本项目已包含以下报告组件的完整代码: + +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/assets/colors.css b/src/assets/colors.css index d9df991..830f175 100644 --- a/src/assets/colors.css +++ b/src/assets/colors.css @@ -107,7 +107,7 @@ /* ===== 业务特定颜色 ===== */ --color-service-personal: #5d7eeb; /* 个人大数据 */ --color-service-company: #6b9df9; /* 小微企业 */ - --color-service-loan: #e1a0e4; /* 贷前背调 */ + --color-service-loan: #e1a0e4; /* 贷前风险 */ /* ===== 渐变色彩 ===== */ --gradient-primary: linear-gradient( diff --git a/src/components/Authorization.vue b/src/components/Authorization.vue index d9cc012..02e453d 100644 --- a/src/components/Authorization.vue +++ b/src/components/Authorization.vue @@ -9,12 +9,12 @@

本人 {{ signature ? props.name : "____________" }} - 拟向贵司申请大数据分析报告查询业务,贵司需要了解本人相关状况,用于查询大数据分析报告,因此本人同意向贵司提供本人的姓名和手机号等个人信息,并同意贵司向第三方(包括但不限于西部数据交易有限公司)传送上述信息。第三方将使用上述信息核实信息真实情况,查询信用记录,并生成报告。 + 拟向贵司申请大数据分析报告查询业务,贵司需要了解本人相关状况,用于查询大数据分析报告,因此本人同意向贵司提供本人的姓名和手机号等个人信息,并同意贵司向第三方传送上述信息。第三方将使用上述信息核实信息真实情况,查询信用记录,并生成报告。

授权内容如下:

  1. - 贵司向依法成立的第三方服务商(包括但不限于西部数据交易有限公司)根据本人提交的信息进行核实,并有权通过前述第三方服务机构查询、使用本人的身份信息、设备信息、运营商信息等,查询本人信息(包括但不限于学历、婚姻、资产状况及对信息主体产生负面影响的不良信息),出具相关报告。 + 贵司向依法成立的第三方服务商根据本人提交的信息进行核实,并有权通过前述第三方服务机构查询、使用本人的身份信息、设备信息、运营商信息等,查询本人信息(包括但不限于学历、婚姻、资产状况及对信息主体产生负面影响的不良信息),出具相关报告。
  2. 依法成立的第三方服务商查询或核实、搜集、保存、处理、共享、使用(含合法业务应用)本人相关数据,且不再另行告知本人,但法律、法规、监管政策禁止的除外。 diff --git a/src/components/BaseReport.vue b/src/components/BaseReport.vue index 4eccbce..59c658e 100644 --- a/src/components/BaseReport.vue +++ b/src/components/BaseReport.vue @@ -336,6 +336,11 @@ const featureMap = { name: "学历信息", component: defineAsyncComponent(() => import("@/ui/CIVYZ7F3A.vue")), }, + IVYZ3P9M: { + name: "学历信息", + component: defineAsyncComponent(() => import("@/ui/IVYZ3P9M.vue")), + remark: '学历信息展示学生姓名、身份证号、学校、专业、入学与毕业时间、学历层次以及学习形式等字段,可结合字典编码了解具体含义。', + }, DWBG8B4D: { name: "谛听多维报告", component: defineAsyncComponent(() => import("@/ui/CDWBG8B4D/index.vue")), @@ -579,6 +584,7 @@ const featureRiskLevels = { // 🔵 低风险类 - 权重 3 'IVYZ5733': 3, // 婚姻状态 'IVYZ9A2B': 3, // 学历信息 + 'IVYZ3P9M': 3, // 学历信息查询(实时版) // 📊 复合报告类 - 按子模块动态计算 'DWBG8B4D': 0, // 谛听多维报告(由子模块计算) diff --git a/src/components/InquireForm.vue b/src/components/InquireForm.vue index 40d395d..a68fa12 100644 --- a/src/components/InquireForm.vue +++ b/src/components/InquireForm.vue @@ -15,7 +15,7 @@
    示例报告 - 示例报告 + 示例报告
    @@ -42,9 +42,9 @@ @@ -66,10 +66,10 @@ class="w-full bg-primary text-white py-4 rounded-[48px] text-lg font-medium mb-4 flex items-center justify-center mt-10" @click="handleSubmit"> {{ buttonText }} - ¥{{ featureData.sell_price || '88.8' }} + ¥{{ featureData.sell_price }} -
    -
    +
    为保证用户的隐私及数据安全,查询结果生成30天后将自动删除 diff --git a/src/data/ivyz3p9m-dictionary.json b/src/data/ivyz3p9m-dictionary.json new file mode 100644 index 0000000..04e56cd --- /dev/null +++ b/src/data/ivyz3p9m-dictionary.json @@ -0,0 +1,6416 @@ +{ + "educationLevel": { + "1": "专科", + "2": "本科", + "3": "硕士研究生", + "4": "博士研究生", + "5": "第二学士学位", + "99": "未知" + }, + "learningForm": { + "1": "脱产", + "2": "普通全日制", + "3": "全日制", + "4": "开放教育", + "5": "夜大学", + "6": "函授", + "7": "网络教育", + "8": "非全日制", + "9": "业余", + "99": "未知" + }, + "specialties": { + "10100": "哲学类", + "10101": "哲学", + "10102": "逻辑学", + "10103": "宗教学", + "10104": "伦理学", + "10105": "伦理学", + "10106": "美学", + "10107": "宗教学", + "10108": "科学技术哲学", + "20100": "经济学类", + "20101": "经济学", + "20102": "经济统计学", + "20103": "国民经济管理", + "20104": "资源与环境经济学", + "20105": "商务经济学", + "20106": "能源经济", + "20107": "劳动经济学", + "20108": "经济工程", + "20109": "数字经济", + "20200": "财政学类", + "20201": "财政学", + "20202": "税收学", + "20203": "国际税收", + "20204": "金融学", + "20205": "产业经济学", + "20206": "国际贸易学", + "20207": "劳动经济学", + "20208": "统计学", + "20209": "数量经济学", + "20210": "国防经济", + "20300": "金融学类", + "20301": "金融学", + "20302": "金融工程", + "20303": "保险学", + "20304": "投资学", + "20305": "金融数学", + "20306": "信用管理", + "20307": "经济与金融", + "20308": "精算学", + "20309": "互联网金融", + "20310": "金融科技", + "20400": "经济与贸易类", + "20401": "国际经济与贸易", + "20402": "贸易经济", + "25100": "金融", + "25200": "应用统计", + "25300": "税务", + "25400": "国际商务", + "25500": "保险", + "25600": "资产评估", + "25700": "审计", + "27000": "统计学", + "30100": "法学类", + "30101": "法学", + "30102": "知识产权", + "30103": "监狱学", + "30104": "信用风险管理与法律防控", + "30105": "国际经贸规则", + "30106": "司法警察学", + "30107": "社区矫正", + "30108": "环境与资源保护法学", + "30109": "国际法学", + "30110": "军事法学", + "30200": "政治学类", + "30201": "政治学与行政学", + "30202": "国际政治", + "30203": "外交学", + "30204": "国际事务与国际关系", + "30205": "政治学、经济学与哲学", + "30206": "国际组织与全球治理", + "30207": "国际关系", + "30208": "外交学", + "30300": "社会学类", + "30301": "社会学", + "30302": "社会工作", + "30303": "人类学", + "30304": "女性学", + "30305": "家政学", + "30306": "老年学", + "30400": "民族学类", + "30401": "民族学", + "30402": "马克思主义民族理论与政策", + "30403": "中国少数民族经济", + "30404": "中国少数民族史", + "30405": "中国少数民族艺术", + "30500": "马克思主义理论类", + "30501": "科学社会主义", + "30502": "中国共产党历史", + "30503": "思想政治教育", + "30504": "马克思主义理论", + "30505": "思想政治教育", + "30506": "中国近现代史基本问题研究", + "30600": "公安学类", + "30601": "治安学", + "30602": "侦查学", + "30603": "边防管理", + "30604": "禁毒学", + "30605": "警犬技术", + "30606": "经济犯罪侦查", + "30607": "边防指挥", + "30608": "消防指挥", + "30609": "警卫学", + "30610": "公安情报学", + "30611": "犯罪学", + "30612": "公安管理学", + "30613": "涉外警务", + "30614": "国内安全保卫", + "30615": "警务指挥与战术", + "30616": "技术侦查学", + "30617": "海警执法", + "30618": "公安政治工作", + "30619": "移民管理", + "30620": "出入境管理", + "35100": "法律", + "35101": "法律(非法学)", + "35102": "法律(法学)", + "35200": "社会工作", + "35300": "警务", + "40100": "教育学类", + "40101": "教育学", + "40102": "科学教育", + "40103": "人文教育", + "40104": "教育技术学", + "40105": "艺术教育", + "40106": "学前教育", + "40107": "小学教育", + "40108": "特殊教育", + "40109": "华文教育", + "40110": "教育康复学", + "40111": "卫生教育", + "40112": "认知科学与技术", + "40200": "体育学类", + "40201": "体育教育", + "40202": "运动训练", + "40203": "社会体育指导与管理", + "40204": "武术与民族传统体育", + "40205": "运动人体科学", + "40206": "运动康复", + "40207": "休闲体育", + "40208": "体能训练", + "40209": "冰雪运动", + "40210": "电子竞技运动与管理", + "40211": "智能体育工程", + "40212": "体育旅游", + "40213": "运动能力开发", + "40300": "体育学", + "40301": "体育人文社会学", + "40302": "运动人体科学", + "40303": "体育教育训练学", + "40304": "民族传统体育学", + "45100": "教育", + "45101": "教育管理", + "45102": "学科教学(思政)", + "45103": "学科教学(语文)", + "45104": "学科教学(数学)", + "45105": "学科教学(物理)", + "45106": "学科教学(化学)", + "45107": "学科教学(生物)", + "45108": "学科教学(英语)", + "45109": "学科教学(历史)", + "45110": "学科教学(地理)", + "45111": "学科教学(音乐)", + "45112": "学科教学(体育)", + "45113": "学科教学(美术)", + "45114": "现代教育技术", + "45115": "小学教育", + "45116": "心理健康教育", + "45117": "科学与技术教育", + "45118": "学前教育", + "45119": "特殊教育", + "45120": "职业技术教育", + "45171": "学校课程与教学", + "45172": "学生发展与教育", + "45173": "教育领导与管理", + "45174": "汉语国际教育", + "45200": "体育", + "45201": "体育教学", + "45202": "运动训练", + "45203": "竞赛组织", + "45204": "社会体育指导", + "45300": "汉语国际教育", + "45400": "应用心理", + "47100": "教育经济与管理", + "47101": "教育经济与管理", + "48100": "教育博士", + "48102": "学生发展与教育", + "48103": "教育领导与管理", + "50100": "中国语言文学类", + "50101": "汉语言文学", + "50102": "汉语言", + "50103": "汉语国际教育", + "50104": "中国少数民族语言文学", + "50105": "古典文献学", + "50106": "应用语言学", + "50107": "秘书学", + "50108": "中国语言与文化", + "50109": "手语翻译", + "50200": "外国语言文学类", + "50201": "英语", + "50202": "俄语", + "50203": "德语", + "50204": "法语", + "50205": "西班牙语", + "50206": "阿拉伯语", + "50207": "日语", + "50208": "波斯语", + "50209": "朝鲜语", + "50210": "菲律宾语", + "50211": "梵语巴利语", + "50212": "印度尼西亚语", + "50213": "印地语", + "50214": "柬埔寨语", + "50215": "老挝语", + "50216": "缅甸语", + "50217": "马来语", + "50218": "蒙古语", + "50219": "僧伽罗语", + "50220": "泰语", + "50221": "乌尔都语", + "50222": "希伯来语", + "50223": "越南语", + "50224": "豪萨语", + "50225": "斯瓦希里语", + "50226": "阿尔巴尼亚语", + "50227": "保加利亚语", + "50228": "波兰语", + "50229": "捷克语", + "50230": "斯洛伐克语", + "50231": "罗马尼亚语", + "50232": "葡萄牙语", + "50233": "瑞典语", + "50234": "塞尔维亚语", + "50235": "土耳其语", + "50236": "希腊语", + "50237": "匈牙利语", + "50238": "意大利语", + "50239": "泰米尔语", + "50240": "普什图语", + "50241": "世界语", + "50242": "孟加拉语", + "50243": "尼泊尔语", + "50244": "克罗地亚语", + "50245": "荷兰语", + "50246": "芬兰语", + "50247": "乌克兰语", + "50248": "挪威语", + "50249": "丹麦语", + "50250": "冰岛语", + "50251": "爱尔兰语", + "50252": "拉脱维亚语", + "50253": "立陶宛语", + "50254": "斯洛文尼亚语", + "50255": "爱沙尼亚语", + "50256": "马耳他语", + "50257": "哈萨克语", + "50258": "乌兹别克语", + "50259": "祖鲁语", + "50260": "拉丁语", + "50261": "翻译", + "50262": "商务英语", + "50263": "阿姆哈拉语", + "50264": "吉尔吉斯语", + "50265": "索马里语", + "50266": "土库曼语", + "50267": "加泰罗尼亚语", + "50268": "约鲁巴语", + "50269": "亚美尼亚语", + "50270": "马达加斯加语", + "50271": "格鲁吉亚语", + "50272": "阿塞拜疆语", + "50273": "阿非利卡语", + "50274": "马其顿语", + "50275": "塔吉克语", + "50276": "茨瓦纳语", + "50277": "恩德贝莱语", + "50278": "科摩罗语", + "50279": "克里奥尔语", + "50280": "绍纳语", + "50281": "提格雷尼亚语", + "50282": "白俄罗斯语", + "50283": "毛利语", + "50284": "汤加语", + "50285": "萨摩亚语", + "50286": "库尔德语", + "50287": "比斯拉马语", + "50288": "达里语", + "50289": "德顿语", + "50290": "迪维希语", + "50291": "斐济语", + "50292": "库克群岛毛利语", + "50293": "隆迪语", + "50294": "卢森堡语", + "50295": "卢旺达语", + "50296": "纽埃语", + "50297": "皮金语", + "50298": "切瓦语", + "50299": "塞苏陀语", + "50300": "新闻传播学类", + "50301": "新闻学", + "50302": "广播电视学", + "50303": "广告学", + "50304": "传播学", + "50305": "编辑出版学", + "50306": "网络与新媒体", + "50307": "数字出版", + "50308": "时尚传播", + "50309": "国际新闻与传播", + "50310": "会展", + "55100": "翻译", + "55101": "英语笔译", + "55102": "英语口译", + "55103": "俄语笔译", + "55104": "俄语口译", + "55105": "日语笔译", + "55106": "日语口译", + "55107": "法语笔译", + "55108": "法语口译", + "55109": "德语笔译", + "55110": "德语口译", + "55111": "朝鲜语笔译", + "55112": "朝鲜语口译", + "55113": "西班牙语笔译", + "55114": "西班牙语口译", + "55115": "阿拉伯语笔译", + "55116": "阿拉伯语口译", + "55117": "泰语笔译", + "55118": "泰语口译", + "55119": "意大利语笔译", + "55120": "意大利语口译", + "55121": "越南语笔译", + "55122": "越南语口译", + "55200": "新闻与传播", + "55300": "出版", + "60100": "历史学类", + "60101": "历史学", + "60102": "世界史", + "60103": "考古学", + "60104": "文物与博物馆学", + "60105": "文物保护技术", + "60106": "外国语言与外国历史", + "60107": "文化遗产", + "60200": "中国史", + "60201": "中国古代史", + "60202": "历史地理学", + "60204": "专门史", + "60300": "世界史", + "65100": "文物与博物馆", + "65101": "考古学", + "65102": "博物馆学", + "65103": "文化遗产", + "65104": "文物保护", + "70100": "数学类", + "70101": "数学与应用数学", + "70102": "信息与计算科学", + "70103": "数理基础科学", + "70104": "数据计算及应用", + "70105": "运筹学与控制论", + "70200": "物理学类", + "70201": "物理学", + "70202": "应用物理学", + "70203": "核物理", + "70204": "声学", + "70205": "系统科学与工程", + "70206": "量子信息科学", + "70207": "光学", + "70208": "无线电物理", + "70300": "化学类", + "70301": "化学", + "70302": "应用化学", + "70303": "化学生物学", + "70304": "分子科学与工程", + "70305": "能源化学", + "70306": "化学测量学技术", + "70400": "天文学类", + "70401": "天文学", + "70402": "天体测量与天体力学", + "70500": "地理科学类", + "70501": "地理科学", + "70502": "自然地理与资源环境", + "70503": "人文地理与城乡规划", + "70504": "地理信息科学", + "70600": "大气科学类", + "70601": "大气科学", + "70602": "应用气象学", + "70603": "气象技术与工程", + "70700": "海洋科学类", + "70701": "海洋科学", + "70702": "海洋技术", + "70703": "海洋资源与环境", + "70704": "军事海洋学", + "70800": "地球物理学类", + "70801": "地球物理学", + "70802": "空间科学与技术", + "70803": "防灾减灾科学与工程", + "70900": "地质学类", + "70901": "地质学", + "70902": "地球化学", + "70903": "地球信息科学与技术", + "70904": "古生物学", + "70905": "第四纪地质学", + "71000": "生物科学类", + "71001": "生物科学", + "71002": "生物技术", + "71003": "生物信息学", + "71004": "生态学", + "71005": "整合科学", + "71006": "神经科学", + "71007": "遗传学", + "71008": "发育生物学", + "71009": "细胞生物学", + "71010": "生物化学与分子生物学", + "71011": "生物物理学", + "71012": "生态学", + "71100": "心理学类", + "71101": "心理学", + "71102": "应用心理学", + "71200": "统计学类", + "71201": "统计学", + "71202": "应用统计学", + "71300": "生态学", + "71400": "统计学", + "77100": "心理学", + "77101": "基础心理学", + "77102": "发展与教育心理学", + "77103": "应用心理学", + "77200": "力学", + "77201": "一般力学与力学基础", + "77202": "固体力学", + "77203": "流体力学", + "77204": "工程力学", + "77300": "材料科学与工程", + "77301": "材料物理与化学", + "77302": "材料学", + "77303": "材料加工工程", + "77400": "电子科学与技术", + "77401": "物理电子学", + "77402": "电路与系统", + "77403": "微电子学与固体电子学", + "77404": "电磁场与微波技术", + "77500": "计算机科学与技术", + "77501": "计算机系统结构", + "77502": "计算机软件与理论", + "77503": "计算机应用技术", + "77600": "环境科学与工程", + "77601": "环境科学", + "77602": "环境工程", + "77700": "生物医学工程", + "77800": "基础医学", + "77801": "人体解剖与组织胚胎学", + "77802": "免疫学", + "77803": "病原生物学", + "77804": "病理学与病理生理学", + "77805": "法医学", + "77806": "放射医学", + "77900": "公共卫生与预防医学", + "77901": "流行病与卫生统计学", + "77902": "劳动卫生与环境卫生学", + "77903": "营养与食品卫生学", + "77904": "儿少卫生与妇幼保健学", + "77905": "卫生毒理学", + "77906": "军事预防医学", + "78000": "药学", + "78001": "药物化学", + "78002": "药剂学", + "78003": "生药学", + "78004": "药物分析学", + "78005": "微生物与生化药学", + "78006": "药理学", + "78100": "中药学", + "78200": "医学技术", + "78300": "护理学", + "78400": "教育技术学", + "78401": "教育技术学", + "78500": "运动人体科学", + "78501": "运动人体科学", + "78600": "农药学", + "78601": "农药学", + "80100": "力学类", + "80101": "理论与应用力学", + "80102": "工程力学", + "80103": "流体力学", + "80104": "工程力学", + "80200": "机械类", + "80201": "机械工程", + "80202": "机械设计制造及其自动化", + "80203": "材料成型及控制工程", + "80204": "机械电子工程", + "80205": "工业设计", + "80206": "过程装备与控制工程", + "80207": "车辆工程", + "80208": "汽车服务工程", + "80209": "机械工艺技术", + "80210": "微机电系统工程", + "80211": "机电技术教育", + "80212": "汽车维修工程教育", + "80213": "智能制造工程", + "80214": "智能车辆工程", + "80215": "仿生科学与工程", + "80216": "新能源汽车工程", + "80300": "仪器类", + "80301": "测控技术与仪器", + "80302": "精密仪器", + "80303": "智能感知工程", + "80400": "材料类", + "80401": "材料科学与工程", + "80402": "材料物理", + "80403": "材料化学", + "80404": "冶金工程", + "80405": "金属材料工程", + "80406": "无机非金属材料工程", + "80407": "高分子材料与工程", + "80408": "复合材料与工程", + "80409": "粉体材料科学与工程", + "80410": "宝石及材料工艺学", + "80411": "焊接技术与工程", + "80412": "功能材料", + "80413": "纳米材料与技术", + "80414": "新能源材料与器件", + "80415": "材料设计科学与工程", + "80416": "复合材料成型工程", + "80417": "智能材料与结构", + "80500": "能源动力类", + "80501": "能源与动力工程", + "80502": "能源与环境系统工程", + "80503": "新能源科学与工程", + "80504": "储能科学与工程", + "80600": "电气类", + "80601": "电气工程及其自动化", + "80602": "智能电网信息工程", + "80603": "光源与照明", + "80604": "电气工程与智能控制", + "80605": "电机电器智能化", + "80606": "电缆工程", + "80700": "电子信息类", + "80701": "电子信息工程", + "80702": "电子科学与技术", + "80703": "通信工程", + "80704": "微电子科学与工程", + "80705": "光电信息科学与工程", + "80706": "信息工程", + "80707": "广播电视工程", + "80708": "水声工程", + "80709": "电子封装技术", + "80710": "集成电路设计与集成系统", + "80711": "医学信息工程", + "80712": "电磁场与无线技术", + "80713": "电波传播与天线", + "80714": "电子信息科学与技术", + "80715": "电信工程及管理", + "80716": "应用电子技术教育", + "80717": "人工智能", + "80718": "海洋信息工程", + "80800": "自动化类", + "80801": "自动化", + "80802": "轨道交通信号与控制", + "80803": "机器人工程", + "80804": "邮政工程", + "80805": "核电技术与控制工程", + "80806": "智能装备与系统", + "80807": "工业智能", + "80900": "计算机类", + "80901": "计算机科学与技术", + "80902": "软件工程", + "80903": "网络工程", + "80904": "信息安全", + "80905": "物联网工程", + "80906": "数字媒体技术", + "80907": "智能科学与技术", + "80908": "空间信息与数字技术", + "80909": "电子与计算机工程", + "80910": "数据科学与大数据技术", + "80911": "网络空间安全", + "80912": "新媒体技术", + "80913": "电影制作", + "80914": "保密技术", + "80915": "服务科学与工程", + "80916": "虚拟现实技术", + "80917": "区块链工程", + "80918": "密码科学与技术", + "81000": "土木类", + "81001": "土木工程", + "81002": "建筑环境与能源应用工程", + "81003": "给排水科学与工程", + "81004": "建筑电气与智能化", + "81005": "城市地下空间工程", + "81006": "道路桥梁与渡河工程", + "81007": "铁道工程", + "81008": "智能建造", + "81009": "土木、水利与海洋工程", + "81010": "土木、水利与交通工程", + "81011": "城市水系统工程", + "81012": "智能建造与智慧交通", + "81100": "水利类", + "81101": "水利水电工程", + "81102": "水文与水资源工程", + "81103": "港口航道与海岸工程", + "81104": "水务工程", + "81105": "水利科学与工程", + "81200": "测绘类", + "81201": "测绘工程", + "81202": "遥感科学与技术", + "81203": "导航工程", + "81204": "地理国情监测", + "81205": "地理空间信息工程", + "81300": "化工与制药类", + "81301": "化学工程与工艺", + "81302": "制药工程", + "81303": "资源循环科学与工程", + "81304": "能源化学工程", + "81305": "化学工程与工业生物工程", + "81306": "化工安全工程", + "81307": "涂料工程", + "81308": "精细化工", + "81400": "地质类", + "81401": "地质工程", + "81402": "勘查技术与工程", + "81403": "资源勘查工程", + "81404": "地下水科学与工程", + "81405": "旅游地学与规划工程", + "81406": "桥梁与隧道工程", + "81500": "矿业类", + "81501": "采矿工程", + "81502": "石油工程", + "81503": "矿物加工工程", + "81504": "油气储运工程", + "81505": "矿物资源工程", + "81506": "海洋油气工程", + "81600": "纺织类", + "81601": "纺织工程", + "81602": "服装设计与工程", + "81603": "非织造材料与工程", + "81604": "服装设计与工艺教育", + "81605": "丝绸设计与工程", + "81700": "轻工类", + "81701": "轻化工程", + "81702": "包装工程", + "81703": "印刷工程", + "81704": "香料香精技术与工程", + "81705": "化妆品技术与工程", + "81800": "交通运输类", + "81801": "交通运输", + "81802": "交通工程", + "81803": "航海技术", + "81804": "轮机工程", + "81805": "飞行技术", + "81806": "交通设备与控制工程", + "81807": "救助与打捞工程", + "81808": "船舶电子电气工程", + "81809": "轨道交通电气与控制", + "81810": "邮轮工程与管理", + "81900": "海洋工程类", + "81901": "船舶与海洋工程", + "81902": "海洋工程与技术", + "81903": "海洋资源开发技术", + "81904": "海洋机器人", + "82000": "航空航天类", + "82001": "航空航天工程", + "82002": "飞行器设计与工程", + "82003": "飞行器制造工程", + "82004": "飞行器动力工程", + "82005": "飞行器环境与生命保障工程", + "82006": "飞行器质量与可靠性", + "82007": "飞行器适航技术", + "82008": "飞行器控制与信息工程", + "82009": "无人驾驶航空器系统工程", + "82100": "兵器类", + "82101": "武器系统与工程", + "82102": "武器发射工程", + "82103": "探测制导与控制技术", + "82104": "弹药工程与爆炸技术", + "82105": "特种能源技术与工程", + "82106": "装甲车辆工程", + "82107": "信息对抗技术", + "82108": "智能无人系统技术", + "82200": "核工程类", + "82201": "核工程与核技术", + "82202": "辐射防护与核安全", + "82203": "工程物理", + "82204": "核化工与核燃料工程", + "82300": "农业工程类", + "82301": "农业工程", + "82302": "农业机械化及其自动化", + "82303": "农业电气化", + "82304": "农业建筑环境与能源工程", + "82305": "农业水利工程", + "82306": "土地整治工程", + "82307": "农业智能装备工程", + "82400": "林业工程类", + "82401": "森林工程", + "82402": "木材科学与工程", + "82403": "林产化工", + "82404": "家具设计与工程", + "82500": "环境科学与工程类", + "82501": "环境科学与工程", + "82502": "环境工程", + "82503": "环境科学", + "82504": "环境生态工程", + "82505": "环保设备工程", + "82506": "资源环境科学", + "82507": "水质科学与技术", + "82600": "生物医学工程类", + "82601": "生物医学工程", + "82602": "假肢矫形工程", + "82603": "临床工程技术", + "82604": "康复工程", + "82700": "食品科学与工程类", + "82701": "食品科学与工程", + "82702": "食品质量与安全", + "82703": "粮食工程", + "82704": "乳品工程", + "82705": "酿酒工程", + "82706": "葡萄与葡萄酒工程", + "82707": "食品营养与检验教育", + "82708": "烹饪与营养教育", + "82709": "食品安全与检测", + "82711": "食用菌科学与工程", + "82712": "白酒酿造工程", + "82800": "建筑类", + "82801": "建筑学", + "82802": "城乡规划", + "82803": "风景园林", + "82804": "历史建筑保护工程", + "82805": "人居环境科学与技术", + "82806": "城市设计", + "82900": "安全科学与工程类", + "82901": "安全工程", + "82902": "应急技术与管理", + "82903": "职业卫生工程", + "83000": "生物工程类", + "83001": "生物工程", + "83002": "生物制药", + "83003": "合成生物学", + "83100": "公安技术类", + "83101": "刑事科学技术", + "83102": "消防工程", + "83103": "交通管理工程", + "83104": "安全防范工程", + "83105": "公安视听技术", + "83106": "抢险救援指挥与技术", + "83107": "火灾勘查", + "83108": "网络安全与执法", + "83109": "核生化消防", + "83110": "海警舰艇指挥与技术", + "83111": "数据警务技术", + "83200": "食品科学与工程", + "83201": "食品科学", + "83202": "粮食、油脂及植物蛋白工程", + "83203": "农产品加工及贮藏工程", + "83204": "水产品加工及贮藏工程", + "83300": "城乡规划学", + "83400": "风景园林学", + "83500": "软件工程", + "83600": "生物工程", + "83700": "安全科学与工程", + "83800": "公安技术", + "83900": "网络空间安全", + "85100": "建筑学", + "85200": "工程", + "85201": "机械工程", + "85202": "光学工程", + "85203": "仪器仪表工程", + "85204": "材料工程", + "85205": "冶金工程", + "85206": "动力工程", + "85207": "电气工程", + "85208": "电子与通信工程", + "85209": "集成电路工程", + "85210": "控制工程", + "85211": "计算机技术", + "85212": "软件工程", + "85213": "建筑与土木工程", + "85214": "水利工程", + "85215": "测绘工程", + "85216": "化学工程", + "85217": "地质工程", + "85218": "矿业工程", + "85219": "石油与天然气工程", + "85220": "纺织工程", + "85221": "轻工技术与工程", + "85222": "交通运输工程", + "85223": "船舶与海洋工程", + "85224": "安全工程", + "85225": "兵器工程", + "85226": "核能与核技术工程", + "85227": "农业工程", + "85228": "林业工程", + "85229": "环境工程", + "85230": "生物医学工程", + "85231": "食品工程", + "85232": "航空工程", + "85233": "航天工程", + "85234": "车辆工程", + "85235": "制药工程", + "85236": "工业工程", + "85237": "工业设计工程", + "85238": "生物工程", + "85239": "项目管理", + "85240": "物流工程", + "85271": "电子与信息", + "85272": "先进制造", + "85273": "生物与医药", + "85274": "能源与环保", + "85300": "城市规划", + "85400": "电子信息", + "85401": "新一代电子信息技术(含量子技术等)", + "85402": "通信工程(含宽带网络、移动通信等)", + "85403": "集成电路工程", + "85404": "计算机技术", + "85405": "软件工程", + "85406": "控制工程", + "85407": "仪器仪表工程", + "85408": "光电信息工程", + "85409": "生物医学工程", + "85410": "人工智能", + "85411": "大数据技术与工程", + "85412": "网络与信息安全", + "85500": "机械", + "85501": "机械工程", + "85502": "车辆工程", + "85503": "航空工程", + "85504": "航天工程", + "85505": "船舶工程", + "85506": "兵器工程", + "85507": "工业设计工程", + "85508": "农机装备工程", + "85509": "智能制造技术", + "85510": "机器人工程", + "85600": "材料与化工", + "85601": "材料工程", + "85602": "化学工程", + "85603": "冶金工程", + "85604": "纺织工程", + "85605": "林业工程", + "85606": "轻化工程(含皮革、纸张、织物加工等)", + "85700": "资源与环境", + "85701": "环境工程", + "85702": "安全工程", + "85703": "地质工程", + "85704": "测绘工程", + "85705": "矿业工程", + "85706": "石油与天然气工程", + "85800": "能源动力", + "85801": "电气工程", + "85802": "动力工程", + "85803": "核能工程", + "85804": "航空发动机工程", + "85805": "燃气轮机工程", + "85806": "航天动力工程", + "85807": "清洁能源技术", + "85808": "储能技术", + "85900": "土木水利", + "85901": "土木工程", + "85902": "水利工程", + "85903": "海洋工程", + "85904": "农田水土工程", + "85905": "市政工程(含给排水等)", + "85906": "人工环境工程(含供热、通风及空调等)", + "86000": "生物与医药", + "86001": "生物技术与工程", + "86002": "制药工程", + "86003": "食品工程", + "86004": "发酵工程", + "86100": "交通运输", + "86101": "轨道交通运输", + "86102": "道路交通运输", + "86103": "水路交通运输", + "86104": "航空交通运输", + "86105": "管道交通运输", + "87000": "科学技术史", + "87100": "管理科学与工程", + "87200": "设计学", + "90100": "植物生产类", + "90101": "农学", + "90102": "园艺", + "90103": "植物保护", + "90104": "植物科学与技术", + "90105": "种子科学与工程", + "90106": "设施农业科学与工程", + "90107": "茶学", + "90108": "烟草", + "90109": "应用生物科学", + "90110": "农艺教育", + "90111": "园艺教育", + "90112": "智慧农业", + "90113": "菌物科学与工程", + "90114": "农药化肥", + "90200": "自然保护与环境生态类", + "90201": "农业资源与环境", + "90202": "野生动物与自然保护区管理", + "90203": "水土保持与荒漠化防治", + "90300": "动物生产类", + "90301": "动物科学", + "90302": "蚕学", + "90303": "蜂学", + "90304": "经济动物学", + "90305": "马业科学", + "90400": "动物医学类", + "90401": "动物医学", + "90402": "动物药学", + "90403": "动植物检疫", + "90404": "实验动物学", + "90405": "中兽医学", + "90500": "林学类", + "90501": "林学", + "90502": "园林", + "90503": "森林保护", + "90504": "经济林", + "90600": "水产类", + "90601": "水产养殖学", + "90602": "海洋渔业科学与技术", + "90603": "水族科学与技术", + "90604": "水生动物医学", + "90700": "草学类", + "90701": "草业科学", + "90702": "草坪科学与工程", + "90703": "森林保护学", + "90704": "森林经理学", + "90705": "野生动植物保护与利用", + "90706": "园林植物与观赏园艺", + "90707": "水土保持与荒漠化防治", + "90800": "水产", + "90801": "水产养殖", + "90802": "捕捞学", + "90803": "渔业资源", + "90900": "草学", + "95100": "农业", + "95101": "作物", + "95102": "园艺", + "95103": "农业资源利用", + "95104": "植物保护", + "95105": "养殖", + "95106": "草业", + "95107": "林业", + "95108": "渔业", + "95109": "农业机械化", + "95110": "农村与区域发展", + "95111": "农业科技组织与服务", + "95112": "农业信息化", + "95113": "食品加工与安全", + "95114": "设施农业", + "95115": "种业", + "95131": "农艺与种业", + "95132": "资源利用与植物保护", + "95133": "畜牧", + "95134": "渔业发展", + "95135": "食品加工与安全", + "95136": "农业工程与信息技术", + "95137": "农业管理", + "95138": "农村发展", + "95200": "兽医", + "95300": "风景园林", + "95400": "林业", + "97000": "科学技术史", + "97100": "环境科学与工程", + "97101": "环境科学", + "97102": "环境工程", + "97200": "食品科学与工程", + "97201": "食品科学", + "97202": "粮食、油脂及植物蛋白工程", + "97203": "农产品加工及贮藏工程", + "97204": "水产品加工及贮藏工程", + "97300": "风景园林学", + "100100": "基础医学类", + "100101": "基础医学", + "100102": "生物医学", + "100103": "生物医学科学", + "100104": "病理学与病理生理学", + "100105": "法医学", + "100106": "放射医学", + "100200": "临床医学类", + "100201": "临床医学", + "100202": "麻醉学", + "100203": "医学影像学", + "100204": "眼视光医学", + "100205": "精神医学", + "100206": "放射医学", + "100207": "儿科学", + "100208": "临床检验诊断学", + "100209": "护理学", + "100210": "外科学", + "100211": "妇产科学", + "100212": "眼科学", + "100213": "耳鼻咽喉科学", + "100214": "肿瘤学", + "100215": "康复医学与理疗学", + "100216": "运动医学", + "100217": "麻醉学", + "100218": "急诊医学", + "100300": "口腔医学类", + "100301": "口腔医学", + "100302": "口腔临床医学", + "100400": "公共卫生与预防医学类", + "100401": "预防医学", + "100402": "食品卫生与营养学", + "100403": "妇幼保健医学", + "100404": "卫生监督", + "100405": "全球健康学", + "100406": "军事预防医学", + "100500": "中医学类", + "100501": "中医学", + "100502": "针灸推拿学", + "100503": "藏医学", + "100504": "蒙医学", + "100505": "维医学", + "100506": "壮医学", + "100507": "哈医学", + "100508": "傣医学", + "100509": "回医学", + "100510": "中医康复学", + "100511": "中医养生学", + "100512": "中医儿科学", + "100513": "中医骨伤科学", + "100600": "中西医结合类", + "100601": "中西医临床医学", + "100602": "中西医结合临床", + "100700": "药学类", + "100701": "药学", + "100702": "药物制剂", + "100703": "临床药学", + "100704": "药事管理", + "100705": "药物分析", + "100706": "药物化学", + "100707": "海洋药学", + "100708": "化妆品科学与技术", + "100800": "中药学类", + "100801": "中药学", + "100802": "中药资源与开发", + "100803": "藏药学", + "100804": "蒙药学", + "100805": "中药制药", + "100806": "中草药栽培与鉴定", + "100900": "法医学类", + "100901": "法医学", + "101000": "医学技术类", + "101001": "医学检验技术", + "101002": "医学实验技术", + "101003": "医学影像技术", + "101004": "眼视光学", + "101005": "康复治疗学", + "101006": "口腔医学技术", + "101007": "卫生检验与检疫", + "101008": "听力与言语康复学", + "101009": "康复物理治疗", + "101010": "康复作业治疗", + "101011": "智能医学工程", + "101100": "护理学类", + "101101": "护理学", + "101102": "助产学", + "105100": "临床医学", + "105101": "内科学", + "105102": "儿科学", + "105103": "老年医学", + "105104": "神经病学", + "105105": "精神病与精神卫生学", + "105106": "皮肤病与性病学", + "105107": ", 影像医学与核医学", + "105108": ", 临床检验诊断学", + "105109": ", 全科医学", + "105110": ", 妇产科学", + "105111": ", 外科学", + "105112": ", 耳鼻咽喉科学", + "105113": ", 肿瘤学", + "105114": ", 康复医学与理疗学", + "105115": ", 妇产科学", + "105116": ", 眼科学", + "105117": ", 耳鼻咽喉科学", + "105118": ", 中医内科学", + "105119": ", 临床病理", + "105120": "临床检验诊断学", + "105121": "肿瘤学", + "105122": "放射肿瘤学", + "105123": "放射影像学", + "105124": "超声医学", + "105125": "核医学", + "105126": "医学遗传学", + "105127": "全科医学(不授博士学位)", + "105128": "临床病理学(不授博士学位)", + "105200": "口腔医学", + "105300": "公共卫生", + "105400": "护理", + "105500": "药学", + "105600": "中药学", + "105700": "中医", + "105701": "中医内科学", + "105702": "中医外科学", + "105703": "中医骨伤科学", + "105704": "中医妇科学", + "105705": "中医儿科学", + "105706": "中医五官科学", + "105707": "针灸推拿学", + "105708": "民族医学(含:藏医学、蒙医学等)", + "105709": "中西医结合临床", + "105710": "全科医学(中医,不授博士学位)", + "107100": "科学技术史", + "107200": "生物医学工程", + "107400": "社会医学与卫生事业管理", + "107401": "社会医学与卫生事业管理", + "110500": "军队指挥学", + "115100": "军事", + "115101": "军事指挥", + "115102": "军队政治工作", + "115103": "军事后勤", + "115104": "军事装备", + "120100": "管理科学与工程类", + "120101": "管理科学", + "120102": "信息管理与信息系统", + "120103": "工程管理", + "120104": "房地产开发与管理", + "120105": "工程造价", + "120106": "保密管理", + "120107": "邮政管理", + "120108": "大数据管理与应用", + "120109": "工程审计", + "120110": "计算金融", + "120200": "工商管理类", + "120201": "工商管理", + "120202": "市场营销", + "120203": "会计学", + "120204": "财务管理", + "120205": "国际商务", + "120206": "人力资源管理", + "120207": "审计学", + "120208": "资产评估", + "120209": "物业管理", + "120210": "文化产业管理", + "120211": "劳动关系", + "120212": "体育经济与管理", + "120213": "财务会计教育", + "120214": "市场营销教育", + "120215": "零售业管理", + "120300": "农业经济管理类", + "120301": "农林经济管理", + "120302": "农村区域发展", + "120400": "公共管理类", + "120401": "公共事业管理", + "120402": "行政管理", + "120403": "劳动与社会保障", + "120404": "土地资源管理", + "120405": "城市管理", + "120406": "海关管理", + "120407": "交通管理", + "120408": "海事管理", + "120409": "公共关系学", + "120410": "健康服务与管理", + "120411": "海警后勤管理", + "120412": "医疗产品管理", + "120413": "医疗保险", + "120414": "养老服务管理", + "120500": "图书情报与档案管理类", + "120501": "图书馆学", + "120502": "档案学", + "120503": "信息资源管理", + "120600": "物流管理与工程类", + "120601": "物流管理", + "120602": "物流工程", + "120603": "采购管理", + "120604": "供应链管理", + "120700": "工业工程类", + "120701": "工业工程", + "120702": "标准化工程", + "120703": "质量管理工程", + "120800": "电子商务类", + "120801": "电子商务", + "120802": "电子商务及法律", + "120803": "跨境电子商务", + "120900": "旅游管理类", + "120901": "旅游管理", + "120902": "酒店管理", + "120903": "会展经济与管理", + "120904": "旅游管理与服务教育", + "125100": "工商管理", + "125200": "公共管理", + "125300": "会计", + "125400": "旅游管理", + "125500": "图书情报", + "125600": "工程管理", + "125601": "工程管理", + "125602": "项目管理", + "125603": "工业工程与管理", + "125604": "物流工程与管理", + "130100": "艺术学理论类", + "130101": "艺术史论", + "130102": "艺术管理", + "130200": "音乐与舞蹈学类", + "130201": "音乐表演", + "130202": "音乐学", + "130203": "作曲与作曲技术理论", + "130204": "舞蹈表演", + "130205": "舞蹈学", + "130206": "舞蹈编导", + "130207": "舞蹈教育", + "130208": "航空服务艺术与管理", + "130209": "流行音乐", + "130210": "音乐治疗", + "130211": "流行舞蹈", + "130300": "戏剧与影视学类", + "130301": "表演", + "130302": "戏剧学", + "130303": "电影学", + "130304": "戏剧影视文学", + "130305": "广播电视编导", + "130306": "戏剧影视导演", + "130307": "戏剧影视美术设计", + "130308": "录音艺术", + "130309": "播音与主持艺术", + "130310": "动画", + "130311": "影视摄影与制作", + "130312": "影视技术", + "130313": "戏剧教育", + "130400": "美术学类", + "130401": "美术学", + "130402": "绘画", + "130403": "雕塑", + "130404": "摄影", + "130405": "书法学", + "130406": "中国画", + "130407": "实验艺术", + "130408": "跨媒体艺术", + "130409": "文物保护与修复", + "130410": "漫画", + "130500": "设计学类", + "130501": "艺术设计学", + "130502": "视觉传达设计", + "130503": "环境设计", + "130504": "产品设计", + "130505": "服装与服饰设计", + "130506": "公共艺术", + "130507": "工艺美术", + "130508": "数字媒体艺术", + "130509": "艺术与科技", + "130510": "陶瓷艺术设计", + "130511": "新媒体艺术", + "130512": "包装设计", + "135100": "艺术", + "135101": "音乐", + "135102": "戏剧", + "135103": "戏曲", + "135104": "电影", + "135105": "广播电视", + "135106": "舞蹈", + "135107": "美术", + "135108": "艺术设计", + "140100": "集成电路科学与工程", + "140200": "国家安全学", + "210100": "农业类", + "210101": "现代种业技术", + "210102": "作物生产与品质改良", + "210103": "智慧农业技术", + "210104": "设施园艺", + "210105": "现代农业经营与管理", + "210200": "林业类", + "210201": "智慧林业技术", + "210202": "园林工程", + "210203": "木业产品智能制造", + "210300": "畜牧业类", + "210301": "动物医学", + "210302": "动物药学", + "210303": "宠物医疗", + "210304": "现代畜牧", + "210400": "渔业类", + "210401": "现代水产养殖技术", + "220100": "资源勘查类", + "220101": "资源勘查工程技术", + "220200": "地质类", + "220201": "环境地质工程", + "220300": "测绘地理信息类", + "220301": "导航工程技术", + "220302": "测绘工程技术", + "220303": "地理信息技术", + "220400": "石油与天然气类", + "220401": "油气储运工程", + "220402": "石油工程技术", + "220500": "煤炭类", + "220501": "智能采矿技术", + "220502": "煤炭清洁利用工程", + "220700": "气象类", + "220701": "智慧气象技术", + "220800": "环境保护类", + "220801": "生态环境工程技术", + "220900": "安全类", + "220901": "安全工程技术", + "220902": "应急管理", + "230100": "电力技术类", + "230101": "电力工程及自动化", + "230102": "智能电网工程技术", + "230200": "热能与发电工程类", + "230201": "热能动力工程", + "230300": "新能源发电工程类", + "230301": "新能源发电工程技术", + "230400": "黑色金属材料类", + "230401": "钢铁智能冶金技术", + "230500": "有色金属材料类", + "230501": "材料化冶金应用技术", + "230502": "金属智能成型技术", + "230503": "储能材料工程技术", + "230600": "非金属材料类", + "230601": "高分子材料工程技术", + "230602": "新材料与应用技术", + "230700": "建筑材料类", + "230701": "建筑材料智能制造", + "240100": "建筑设计类", + "240101": "建筑设计", + "240102": "建筑装饰工程", + "240103": "古建筑工程", + "240104": "园林景观工程", + "240105": "城市设计数字技术", + "240200": "城乡规划与管理类", + "240201": "城乡规划", + "240300": "土建施工类", + "240301": "建筑工程", + "240302": "智能建造工程", + "240303": "城市地下工程", + "240304": "建筑智能检测与修复", + "240400": "建筑设备类", + "240401": "建筑环境与能源工程", + "240402": "建筑电气与智能化工程", + "240500": "建设工程管理类", + "240501": "工程造价", + "240502": "建设工程管理", + "240600": "市政工程类", + "240601": "市政工程", + "240602": "城市设施智慧管理", + "240700": "房地产类", + "240701": "房地产投资与策划", + "240702": "现代物业管理", + "250100": "水文水资源类", + "250101": "水文与水资源工程技术", + "250200": "水利工程与管理类", + "250201": "智慧水利工程", + "250202": "农业水利工程", + "250203": "水利水电工程", + "250204": "治河与港航工程", + "250300": "水利水电设备类", + "250301": "水利水电设备及自动化", + "250400": "水土保持与水环境类", + "250401": "生态水利工程", + "250402": "水环境工程", + "260100": "机械设计制造类", + "260101": "机械设计制造及自动化", + "260102": "智能制造工程技术", + "260103": "数控技术", + "260104": "工业设计", + "260105": "工业工程技术", + "260106": "材料成型及控制工程", + "260200": "机电设备类", + "260201": "装备智能化技术", + "260202": "制冷与空调工程", + "260203": "电梯工程技术", + "260300": "自动化类", + "260301": "机械电子工程技术", + "260302": "电气工程及自动化", + "260303": "智能控制技术", + "260304": "机器人技术", + "260305": "自动化技术与应用", + "260306": "现代测控工程技术", + "260307": "工业互联网工程", + "260400": "轨道装备类", + "260401": "轨道交通车辆工程技术", + "260402": "轨道交通智能控制装备技术", + "260500": "船舶与海洋工程装备类", + "260501": "船舶智能制造技术", + "260502": "船舶动力工程技术", + "260503": "船舶电气工程技术", + "260600": "航空装备类", + "260601": "航空智能制造技术", + "260602": "飞行器维修工程技术", + "260603": "航空动力装置维修技术", + "260604": "无人机系统应用技术", + "260700": "汽车制造类", + "260701": "汽车工程技术", + "260702": "新能源汽车工程技术", + "260703": "智能网联汽车工程技术", + "270100": "生物技术类", + "270101": "生物检验检测技术", + "270102": "合成生物技术", + "270103": "农业生物技术", + "270200": "化工技术类", + "270201": "应用化工技术", + "270202": "化工智能制造工程技术", + "270203": "现代精细化工技术", + "270204": "现代分析测试技术", + "280100": "轻化工类", + "280101": "化妆品工程技术", + "280102": "现代造纸工程技术", + "280200": "包装类", + "280201": "包装工程技术", + "280300": "印刷类", + "280301": "数字印刷工程", + "280400": "纺织服装类", + "280401": "现代纺织工程技术", + "280402": "服装工程技术", + "290100": "食品类", + "290101": "食品工程技术", + "290102": "食品质量与安全", + "290103": "食品营养与健康", + "290200": "药品与医疗器械类", + "290201": "制药工程技术", + "290202": "药品质量管理", + "290203": "医疗器械工程技术", + "290204": "药事服务与管理", + "290300": "粮食类", + "290301": "现代粮食工程技术", + "300100": "铁道运输类", + "300101": "高速铁路工程", + "300102": "高速铁路动车组技术", + "300103": "高速铁路信号控制技术", + "300104": "铁道机车智能运用技术", + "300105": "高速铁路运营管理", + "300200": "道路运输类", + "300201": "道路与桥梁工程", + "300202": "智能交通管理", + "300203": "汽车服务工程技术", + "300300": "水上运输类", + "300301": "航海技术", + "300302": "港口智能工程技术", + "300303": "轮机工程技术", + "300304": "国际邮轮运营管理", + "300305": "水路运输与海事管理", + "300400": "航空运输类", + "300401": "民航运输服务与管理", + "300402": "航空机电设备维修技术", + "300403": "智慧机场运行与管理", + "300404": "通用航空航务技术", + "300600": "城市轨道交通类", + "300601": "城市轨道交通信号与控制技术", + "300602": "城市轨道交通设备与控制技术", + "300603": "城市轨道交通智能运营", + "300700": "邮政类", + "300701": "邮政快递管理", + "310100": "电子信息类", + "310101": "电子信息工程技术", + "310102": "物联网工程技术", + "310103": "柔性电子技术", + "310104": "光电信息工程技术", + "310200": "计算机类", + "310201": "计算机应用工程", + "310202": "网络工程技术", + "310203": "软件工程技术", + "310204": "数字媒体技术", + "310205": "大数据工程技术", + "310206": "云计算技术", + "310207": "信息安全与管理", + "310208": "虚拟现实技术", + "310209": "人工智能工程技术", + "310210": "嵌入式技术", + "310211": "工业互联网技术", + "310212": "区块链技术", + "310300": "通信类", + "310301": "现代通信工程", + "310400": "集成电路类", + "310401": "集成电路工程技术", + "320200": "护理类", + "320201": "护理", + "320300": "药学类", + "320301": "药学", + "320400": "中医药类", + "320401": "中药制药", + "320500": "医学技术类", + "320501": "医学检验技术", + "320502": "医学影像技术", + "320503": "医学生物技术", + "320504": "口腔医学技术", + "320505": "放射治疗技术", + "320506": "呼吸治疗技术", + "320600": "康复治疗类", + "320601": "康复治疗", + "320602": "康复辅助器具技术", + "320603": "言语听觉治疗技术", + "320604": "儿童康复治疗", + "320700": "公共卫生与卫生管理类", + "320701": "公共卫生管理", + "320702": "职业卫生工程技术", + "320703": "职业病危害检测评价技术", + "320800": "健康管理与促进类", + "320801": "健康管理", + "320802": "婴幼儿发展与健康管理", + "320803": "医养照护与管理", + "320900": "眼视光类", + "320901": "眼视光技术", + "330100": "财政税务类", + "330101": "财税大数据应用", + "330200": "金融类", + "330201": "金融管理", + "330202": "金融科技应用", + "330203": "保险", + "330204": "信用管理", + "330300": "财务会计类", + "330301": "大数据与财务管理", + "330302": "大数据与会计", + "330303": "大数据与审计", + "330500": "经济贸易类", + "330501": "国际经济与贸易", + "330600": "工商管理类", + "330601": "企业数字化管理", + "330602": "市场营销", + "330700": "电子商务类", + "330701": "电子商务", + "330702": "跨境电子商务", + "330703": "全媒体电商运营", + "330800": "物流类", + "330801": "物流工程技术", + "330802": "现代物流管理", + "340100": "旅游类", + "340101": "旅游管理", + "340102": "酒店管理", + "340103": "旅游规划与设计", + "340200": "餐饮类", + "340201": "烹饪与餐饮管理", + "350100": "艺术设计类", + "350101": "工艺美术", + "350102": "视觉传达设计", + "350103": "数字媒体艺术", + "350104": "产品设计", + "350105": "服装与服饰设计", + "350106": "环境艺术设计", + "350107": "美术", + "350108": "公共艺术设计", + "350109": "游戏创意设计", + "350110": "展示艺术设计", + "350111": "数字影像设计", + "350112": "时尚品设计", + "350200": "表演艺术类", + "350201": "音乐表演", + "350202": "舞蹈表演与编导", + "350203": "戏曲表演", + "350204": "舞台艺术设计", + "350400": "文化服务类", + "350401": "文物修复与保护", + "360100": "新闻出版类", + "360101": "网络与新媒体", + "360200": "广播影视类", + "360201": "播音与主持", + "360202": "影视摄影与制作", + "360203": "数字广播电视技术", + "360204": "影视编导", + "360205": "全媒体新闻采编与制作", + "360206": "数字动画", + "370100": "教育类", + "370101": "学前教育", + "370200": "语言类", + "370201": "应用英语", + "370202": "应用日语", + "370203": "应用韩语", + "370204": "应用俄语", + "370205": "应用泰语", + "370206": "应用外语", + "370207": "应用西班牙语", + "370208": "中文国际教育", + "370300": "体育类", + "370301": "社会体育指导与管理", + "370302": "休闲体育", + "370303": "体能训练", + "370304": "电子竞技技术与管理", + "380200": "公安技术类", + "380201": "刑事科学技术", + "380202": "网络安全与执法", + "380300": "侦查类", + "380301": "刑事侦查", + "380400": "法律实务类", + "380401": "法律", + "380500": "法律执行类", + "380501": "刑事矫正与管理", + "380502": "司法警务管理", + "380503": "综合行政执法", + "380600": "司法技术类", + "380601": "智慧司法技术与应用", + "380700": "安全防范类", + "380701": "数字安防技术", + "380702": "国际安保服务与管理", + "390100": "公共事业类", + "390101": "社会工作", + "390102": "党务工作", + "390103": "智慧社区管理", + "390200": "公共管理类", + "390201": "民政管理", + "390202": "人力资源管理", + "390203": "行政管理", + "390204": "外事实务", + "390300": "公共服务类", + "390301": "现代家政管理", + "390302": "智慧健康养老管理", + "410100": "农业类", + "410101": "种子生产与经营", + "410102": "作物生产与经营管理", + "410103": "现代农业技术", + "410104": "生态农业技术", + "410105": "园艺技术", + "410106": "植物保护与检疫技术", + "410107": "茶叶生产与加工技术", + "410108": "中草药栽培与加工技术", + "410109": "烟草栽培与加工技术", + "410110": "饲草生产技术", + "410111": "食用菌生产与加工技术", + "410112": "设施农业与装备", + "410113": "现代农业装备应用技术", + "410114": "农产品加工与质量检测", + "410115": "绿色食品生产技术", + "410116": "农产品流通与管理", + "410117": "棉花加工与经营管理", + "410118": "休闲农业经营与管理", + "410119": "现代农业经济管理", + "410120": "农村新型经济组织管理", + "410200": "林业类", + "410201": "林业技术", + "410202": "园林技术", + "410203": "草业技术", + "410204": "花卉生产与花艺", + "410205": "经济林培育与利用", + "410206": "森林和草原资源保护", + "410207": "林草生态保护与修复", + "410208": "野生动植物资源保护与利用", + "410209": "自然保护地建设与管理", + "410210": "森林生态旅游与康养", + "410211": "林业信息技术应用", + "410212": "木业智能装备应用技术", + "410213": "木业产品设计与制造", + "410300": "畜牧业类", + "410301": "动物医学", + "410302": "动物药学", + "410303": "畜牧兽医", + "410304": "中兽医", + "410305": "宠物医疗技术", + "410306": "动物防疫与检疫", + "410307": "畜禽智能化养殖", + "410308": "特种动物养殖技术", + "410309": "宠物养护与驯导", + "410310": "动物营养与饲料", + "410311": "蚕桑技术", + "410400": "渔业类", + "410401": "水产养殖技术", + "410402": "海洋渔业技术", + "410403": "水族科学与技术", + "410404": "水生动物医学", + "420100": "资源勘查类", + "420101": "国土资源调查与管理", + "420102": "地质调查与矿产普查", + "420103": "生态地质调查", + "420104": "矿产地质勘查", + "420105": "煤田地质勘查", + "420106": "岩矿分析与鉴定", + "420107": "宝玉石鉴定与加工", + "420200": "地质类", + "420201": "工程地质勘查", + "420202": "水文与工程地质", + "420203": "矿山地质", + "420204": "钻探工程技术", + "420205": "岩土工程技术", + "420206": "地球物理勘探技术", + "420207": "地质灾害调查与防治", + "420208": "环境地质工程", + "420209": "城市地质勘查", + "420300": "测绘地理信息类", + "420301": "工程测量技术", + "420302": "测绘工程技术", + "420303": "测绘地理信息技术", + "420304": "摄影测量与遥感技术", + "420305": "地籍测绘与土地管理", + "420306": "国土空间规划与测绘", + "420307": "无人机测绘技术", + "420308": "矿山测量", + "420309": "导航与位置服务", + "420310": "空间数字建模与应用技术", + "420400": "石油与天然气类", + "420401": "油气储运技术", + "420402": "油气地质勘探技术", + "420403": "钻井技术", + "420404": "油气智能开采技术", + "420405": "油田化学应用技术", + "420406": "石油工程技术", + "420500": "煤炭类", + "420501": "煤矿智能开采技术", + "420502": "矿井建设工程技术", + "420503": "通风技术与安全管理", + "420504": "矿山机电与智能装备", + "420505": "煤炭清洁利用技术", + "420506": "煤层气采输技术", + "420600": "金属与非金属矿类", + "420601": "矿山智能开采技术", + "420602": "矿物加工技术", + "420700": "气象类", + "420701": "大气科学技术", + "420702": "大气探测技术", + "420703": "应用气象技术", + "420704": "雷电防护技术", + "420800": "环境保护类", + "420801": "环境监测技术", + "420802": "环境工程技术", + "420803": "生态保护技术", + "420804": "生态环境大数据技术", + "420805": "环境管理与评价", + "420806": "生态环境修复技术", + "420807": "绿色低碳技术", + "420808": "资源综合利用技术", + "420809": "水净化与安全技术", + "420810": "核与辐射检测防护技术", + "420811": "智能环保装备技术", + "420900": "安全类", + "420901": "安全技术与管理", + "420902": "化工安全技术", + "420903": "工程安全评价与监理", + "420904": "安全智能监测技术", + "420905": "应急救援技术", + "420906": "消防救援技术", + "420907": "森林草原防火技术", + "420908": "职业健康安全技术", + "430100": "电力技术类", + "430101": "发电厂及电力系统", + "430102": "水电站机电设备与自动化", + "430103": "水电站与电力网技术", + "430104": "分布式发电与智能微电网技术", + "430105": "电力系统自动化技术", + "430106": "电力系统继电保护技术", + "430107": "输配电工程技术", + "430108": "供用电技术", + "430109": "农业电气化技术", + "430110": "机场电工技术", + "430111": "电力客户服务与管理", + "430200": "热能与发电工程类", + "430201": "热能动力工程技术", + "430202": "城市热能应用技术", + "430203": "地热开发技术", + "430204": "太阳能光热技术与应用", + "430205": "发电运行技术", + "430206": "热工自动化技术", + "430207": "核电站动力设备运行与维护", + "430208": "电厂化学与环保技术", + "430300": "新能源发电工程类", + "430301": "光伏工程技术", + "430302": "风力发电工程技术", + "430303": "生物质能应用技术", + "430304": "氢能技术应用", + "430305": "工业节能技术", + "430306": "节电技术与管理", + "430307": "新能源材料应用技术", + "430400": "黑色金属材料类", + "430401": "钢铁智能冶金技术", + "430402": "智能轧钢技术", + "430403": "钢铁冶金设备维护", + "430404": "金属材料检测技术", + "430500": "有色金属材料类", + "430501": "有色金属智能冶金技术", + "430502": "金属智能加工技术", + "430503": "金属精密成型技术", + "430504": "储能材料技术", + "430505": "稀土材料技术", + "430600": "非金属材料类", + "430601": "材料工程技术", + "430602": "高分子材料智能制造技术", + "430603": "复合材料智能制造技术", + "430604": "航空复合材料成型与加工技术", + "430605": "非金属矿物材料技术", + "430606": "光伏材料制备技术", + "430607": "硅材料制备技术", + "430608": "炭材料工程技术", + "430609": "橡胶智能制造技术", + "430700": "建筑材料类", + "430701": "建筑材料工程技术", + "430702": "新型建筑材料技术", + "430703": "建筑装饰材料技术", + "430704": "建筑材料检测技术", + "430705": "装配式建筑构件智能制造技术", + "440100": "建筑设计类", + "440101": "建筑设计", + "440102": "建筑装饰工程技术", + "440103": "古建筑工程技术", + "440104": "园林工程技术", + "440105": "风景园林设计", + "440106": "建筑室内设计", + "440107": "建筑动画技术", + "440200": "城乡规划与管理类", + "440201": "城乡规划", + "440202": "智慧城市管理技术", + "440203": "村镇建设与管理", + "440300": "土建施工类", + "440301": "建筑工程技术", + "440302": "装配式建筑工程技术", + "440303": "建筑钢结构工程技术", + "440304": "智能建造技术", + "440305": "地下与隧道工程技术", + "440306": "土木工程检测技术", + "440400": "建筑设备类", + "440401": "建筑设备工程技术", + "440402": "建筑电气工程技术", + "440403": "供热通风与空调工程技术", + "440404": "建筑智能化工程技术", + "440405": "工业设备安装工程技术", + "440406": "建筑消防技术", + "440500": "建设工程管理类", + "440501": "工程造价", + "440502": "建设工程管理", + "440503": "建筑经济信息化管理", + "440504": "建设工程监理", + "440600": "市政工程类", + "440601": "市政工程技术", + "440602": "给排水工程技术", + "440603": "城市燃气工程技术", + "440604": "市政管网智能检测与维护", + "440605": "城市环境工程技术", + "440700": "房地产类", + "440701": "房地产经营与管理", + "440702": "房地产智能检测与估价", + "440703": "现代物业管理", + "450100": "水文水资源类", + "450101": "水文与水资源技术", + "450102": "水政水资源管理", + "450200": "水利工程与管理类", + "450201": "水利工程", + "450202": "智慧水利技术", + "450203": "水利水电工程技术", + "450204": "水利水电工程智能管理", + "450205": "水利水电建筑工程", + "450206": "机电排灌工程技术", + "450207": "治河与航道工程技术", + "450208": "智能水务管理", + "450300": "水利水电设备类", + "450301": "水电站设备安装与管理", + "450302": "水电站运行与智能管理", + "450303": "水利机电设备智能管理", + "450400": "水土保持与水环境类", + "450401": "水土保持技术", + "450402": "水环境智能监测与治理", + "450403": "水生态修复技术", + "460100": "机械设计制造类", + "460101": "机械设计与制造", + "460102": "数字化设计与制造技术", + "460103": "数控技术", + "460104": "机械制造及自动化", + "460105": "工业设计", + "460106": "工业工程技术", + "460107": "材料成型及控制技术", + "460108": "现代铸造技术", + "460109": "现代锻压技术", + "460110": "智能焊接技术", + "460111": "工业材料表面处理技术", + "460112": "增材制造技术", + "460113": "模具设计与制造", + "460114": "特种加工技术", + "460115": "智能光电制造技术", + "460116": "电线电缆制造技术", + "460117": "内燃机制造与应用技术", + "460118": "机械装备制造技术", + "460119": "工业产品质量检测技术", + "460120": "理化测试与质检技术", + "460200": "机电设备类", + "460201": "智能制造装备技术", + "460202": "机电设备技术", + "460203": "电机与电器技术", + "460204": "新能源装备技术", + "460205": "制冷与空调技术", + "460206": "电梯工程技术", + "460300": "自动化类", + "460301": "机电一体化技术", + "460302": "智能机电技术", + "460303": "智能控制技术", + "460304": "智能机器人技术", + "460305": "工业机器人技术", + "460306": "电气自动化技术", + "460307": "工业过程自动化技术", + "460308": "工业自动化仪表技术", + "460309": "液压与气动技术", + "460310": "工业互联网应用", + "460311": "计量测试与应用技术", + "460400": "轨道装备类", + "460401": "铁道机车车辆制造与维护", + "460402": "高速铁路动车组制造与维护", + "460403": "城市轨道交通车辆制造与维护", + "460404": "轨道交通通信信号设备制造与维护", + "460405": "轨道交通工程机械制造与维护", + "460500": "船舶与海洋工程装备类", + "460501": "船舶工程技术", + "460502": "船舶动力工程技术", + "460503": "船舶电气工程技术", + "460504": "船舶智能焊接技术", + "460505": "船舶舾装工程技术", + "460506": "船舶涂装工程技术", + "460507": "船舶通信装备技术", + "460508": "游艇设计与制造", + "460509": "邮轮内装技术", + "460510": "海洋工程装备技术", + "460600": "航空装备类", + "460601": "飞行器数字化制造技术", + "460602": "飞行器数字化装配技术", + "460603": "航空发动机制造技术", + "460604": "航空发动机装配调试技术", + "460605": "飞机机载设备装配调试技术", + "460606": "航空装备表面处理技术", + "460607": "飞行器维修技术", + "460608": "航空发动机维修技术", + "460609": "无人机应用技术", + "460610": "航空材料精密成型技术", + "460611": "导弹维修技术", + "460700": "汽车制造类", + "460701": "汽车制造与试验技术", + "460702": "新能源汽车技术", + "460703": "汽车电子技术", + "460704": "智能网联汽车技术", + "460705": "汽车造型与改装技术", + "470100": "生物技术类", + "470101": "食品生物技术", + "470102": "药品生物技术", + "470103": "农业生物技术", + "470104": "化工生物技术", + "470105": "生物产品检验检疫", + "470106": "绿色生物制造技术", + "470107": "生物信息技术", + "470200": "化工技术类", + "470201": "应用化工技术", + "470202": "石油炼制技术", + "470203": "精细化工技术", + "470204": "石油化工技术", + "470205": "煤化工技术", + "470206": "高分子合成技术", + "470207": "海洋化工技术", + "470208": "分析检验技术", + "470209": "化工智能制造技术", + "470210": "化工装备技术", + "470211": "化工自动化技术", + "470212": "涂装防护技术", + "470213": "烟花爆竹技术与管理", + "480100": "轻化工类", + "480101": "化妆品技术", + "480102": "现代造纸技术", + "480103": "家具设计与制造", + "480104": "鞋类设计与工艺", + "480105": "陶瓷制造技术与工艺", + "480106": "珠宝首饰技术与管理", + "480107": "皮革加工技术", + "480108": "皮具制作与工艺", + "480109": "乐器制造与维护", + "480110": "香料香精技术与工艺", + "480111": "表面精饰工艺", + "480200": "包装类", + "480201": "包装工程技术", + "480202": "包装策划与设计", + "480300": "印刷类", + "480301": "数字印刷技术", + "480302": "印刷媒体技术", + "480303": "印刷数字图文技术", + "480304": "印刷设备应用技术", + "480400": "纺织服装类", + "480401": "现代纺织技术", + "480402": "服装设计与工艺", + "480403": "丝绸技术", + "480404": "针织技术与针织服装", + "480405": "数字化染整技术", + "480406": "纺织品设计", + "480407": "现代家用纺织品设计", + "480408": "纺织材料与应用", + "480409": "现代非织造技术", + "480410": "纺织机电技术", + "480411": "纺织品检验与贸易", + "480412": "皮革服装制作与工艺", + "490100": "食品类", + "490101": "食品智能加工技术", + "490102": "食品质量与安全", + "490103": "食品营养与健康", + "490104": "食品检验检测技术", + "490105": "酿酒技术", + "490106": "食品贮运与营销", + "490200": "药品与医疗器械类", + "490201": "药品生产技术", + "490202": "生物制药技术", + "490203": "药物制剂技术", + "490204": "化学制药技术", + "490205": "兽药制药技术", + "490206": "药品质量与安全", + "490207": "制药设备应用技术", + "490208": "药品经营与管理", + "490209": "食品药品监督管理", + "490210": "智能医疗装备技术", + "490211": "医用电子仪器技术", + "490212": "医用材料与应用", + "490213": "医疗器械维护与管理", + "490214": "医疗器械经营与服务", + "490215": "康复工程技术", + "490216": "保健食品质量与管理", + "490217": "化妆品经营与管理", + "490218": "化妆品质量与安全", + "490300": "粮食类", + "490301": "粮食工程技术与管理", + "490302": "粮食储运与质量安全", + "500100": "铁道运输类", + "500101": "铁道工程技术", + "500102": "高速铁路施工与维护", + "500103": "铁道桥梁隧道工程技术", + "500104": "铁道养路机械应用技术", + "500105": "铁道机车运用与维护", + "500106": "铁道车辆技术", + "500107": "铁道供电技术", + "500108": "动车组检修技术", + "500109": "高速铁路综合维修技术", + "500110": "铁道信号自动控制", + "500111": "铁道通信与信息化技术", + "500112": "铁道交通运营管理", + "500113": "高速铁路客运服务", + "500200": "道路运输类", + "500201": "道路与桥梁工程技术", + "500202": "道路机械化施工技术", + "500203": "智能工程机械运用技术", + "500204": "道路工程检测技术", + "500205": "道路工程造价", + "500206": "道路养护与管理", + "500207": "智能交通技术", + "500208": "道路运输管理", + "500209": "交通运营管理", + "500210": "汽车技术服务与营销", + "500211": "汽车检测与维修技术", + "500212": "新能源汽车检测与维修技术", + "500300": "水上运输类", + "500301": "航海技术", + "500302": "港口与航道工程技术", + "500303": "轮机工程技术", + "500304": "国际邮轮乘务管理", + "500305": "水路运输安全管理", + "500306": "港口机械与智能控制", + "500307": "港口与航运管理", + "500308": "船舶电子电气技术", + "500309": "船舶检验", + "500310": "集装箱运输管理", + "500400": "航空运输类", + "500401": "民航运输服务", + "500402": "民航通信技术", + "500403": "定翼机驾驶技术", + "500404": "直升机驾驶技术", + "500405": "空中乘务", + "500406": "民航安全技术管理", + "500407": "民航空中安全保卫", + "500408": "机场运行服务与管理", + "500409": "飞机机电设备维修", + "500410": "飞机电子设备维修", + "500411": "飞机部件修理", + "500412": "通用航空器维修", + "500413": "飞机结构修理", + "500414": "航空地面设备维修", + "500415": "机场场务技术与管理", + "500416": "通用航空航务技术", + "500417": "航空油料", + "500500": "管道运输类", + "500501": "管道工程技术", + "500502": "管道运输管理", + "500600": "城市轨道交通类", + "500601": "城市轨道交通工程技术", + "500602": "城市轨道车辆应用技术", + "500603": "城市轨道交通机电技术", + "500604": "城市轨道交通通信信号技术", + "500605": "城市轨道交通供配电技术", + "500606": "城市轨道交通运营管理", + "500700": "邮政类", + "500701": "邮政快递运营管理", + "500702": "邮政快递智能技术", + "500703": "邮政通信管理", + "502100": "语言学", + "502101": "塔玛齐格特语", + "502102": "爪哇语", + "502103": "旁遮普语", + "510100": "农业类", + "510101": "作物生产技术", + "510102": "种子生产与经营", + "510103": "设施农业与装备", + "510104": "现代农业技术", + "510105": "休闲农业", + "510106": "生态农业技术", + "510107": "园艺技术", + "510108": "植物保护与检疫技术", + "510109": "茶树栽培与茶叶加工", + "510110": "中草药栽培技术", + "510111": "烟草栽培与加工", + "510112": "棉花加工与经营管理", + "510113": "农产品加工与质量检测", + "510114": "绿色食品生产与检验", + "510115": "农资营销与服务", + "510116": "农产品流通与管理", + "510117": "农业装备应用技术", + "510118": "农业经济管理", + "510119": "农村经营管理", + "510120": "食用菌生产与加工", + "510200": "林业类", + "510201": "林业技术", + "510202": "园林技术", + "510203": "森林资源保护", + "510204": "经济林培育与利用", + "510205": "野生植物资源保护与利用", + "510206": "野生动物资源保护与利用", + "510207": "森林生态旅游", + "510208": "森林防火指挥与通讯", + "510209": "自然保护区建设与管理", + "510210": "木工设备应用技术", + "510211": "木材加工技术", + "510212": "林业调查与信息处理", + "510213": "林业信息技术与管理", + "510214": "工业软件开发技术", + "510215": "动漫制作技术", + "510216": "密码技术应用", + "510300": "畜牧业类", + "510301": "畜牧兽医", + "510302": "动物医学", + "510303": "动物药学", + "510304": "动物防疫与检疫", + "510305": "动物医学检验技术", + "510306": "宠物养护与驯导", + "510307": "实验动物技术", + "510308": "饲料与动物营养", + "510309": "特种动物养殖", + "510310": "畜牧工程技术", + "510311": "蚕桑技术", + "510312": "草业技术", + "510313": "养蜂与蜂产品加工", + "510314": "畜牧业经济管理", + "510315": "宠物临床诊疗技术", + "510400": "渔业类", + "510401": "水产养殖技术", + "510402": "海洋渔业技术", + "510403": "水族科学与技术", + "510404": "水生动物医学", + "510405": "渔业经济管理", + "520100": "资源勘查类", + "520101": "国土资源调查与管理", + "520102": "地质调查与矿产普查", + "520103": "矿产地质与勘查", + "520104": "岩矿分析与鉴定", + "520105": "宝玉石鉴定与加工", + "520106": "煤田地质与勘查技术", + "520107": "权籍信息化管理", + "520200": "地质类", + "520201": "工程地质勘查", + "520202": "水文与工程地质", + "520203": "钻探技术", + "520204": "矿山地质", + "520205": "地球物理勘探技术", + "520206": "地质灾害调查与防治", + "520207": "环境地质工程", + "520208": "岩土工程技术", + "520300": "测绘地理信息类", + "520301": "工程测量技术", + "520302": "摄影测量与遥感技术", + "520303": "测绘工程技术", + "520304": "测绘地理信息技术", + "520305": "地籍测绘与土地管理", + "520306": "矿山测量", + "520307": "测绘与地质工程技术", + "520308": "导航与位置服务", + "520309": "地图制图与数字传播技术", + "520310": "地理国情监测技术", + "520311": "国土测绘与规划", + "520400": "石油与天然气类", + "520401": "钻井技术", + "520402": "油气开采技术", + "520403": "油气储运技术", + "520404": "油气地质勘探技术", + "520405": "油田化学应用技术", + "520406": "石油工程技术", + "520407": "傣医学", + "520408": "哈医学", + "520409": "朝医学", + "520410": "中药学", + "520411": "蒙药学", + "520412": "维药学", + "520413": "藏药学", + "520414": "中药材生产与加工", + "520415": "中药制药", + "520416": "中医康复技术", + "520417": "中医养生保健", + "520418": "药膳与食疗", + "520500": "煤炭类", + "520501": "煤矿开采技术", + "520502": "矿井建设", + "520503": "矿山机电技术", + "520504": "矿井通风与安全", + "520505": "综合机械化采煤", + "520506": "选煤技术", + "520507": "煤炭深加工与利用", + "520508": "煤化分析与检验", + "520509": "煤层气采输技术", + "520510": "矿井运输与提升", + "520600": "金属与非金属矿类", + "520601": "金属与非金属矿开采技术", + "520602": "矿物加工技术", + "520603": "矿业装备维护技术", + "520700": "气象类", + "520701": "大气科学技术", + "520702": "大气探测技术", + "520703": "应用气象技术", + "520704": "防雷技术", + "520800": "环境保护类", + "520801": "环境监测与控制技术", + "520802": "农村环境保护", + "520803": "室内环境检测与控制技术", + "520804": "环境工程技术", + "520805": "环境信息技术", + "520806": "核与辐射检测防护技术", + "520807": "环境规划与管理", + "520808": "环境评价与咨询服务", + "520809": "污染修复与生态工程技术", + "520810": "清洁生产与减排技术", + "520811": "资源综合利用与管理技术", + "520812": "水净化与安全技术", + "520900": "安全类", + "520901": "安全健康与环保", + "520902": "化工安全技术", + "520903": "救援技术", + "520904": "安全技术与管理", + "520905": "工程安全评价与监理", + "520906": "安全生产监测监控", + "520907": "职业卫生技术与管理", + "530100": "电力技术类", + "530101": "发电厂及电力系统", + "530102": "供用电技术", + "530103": "电力系统自动化技术", + "530104": "高压输配电线路施工运行与维护", + "530105": "电力系统继电保护与自动化技术", + "530106": "水电站机电设备与自动化", + "530107": "电网监控技术", + "530108": "电力客户服务与管理", + "530109": "水电站与电力网", + "530110": "电源变换技术与应用", + "530111": "农业电气化技术", + "530112": "分布式发电与微电网技术", + "530113": "机场电工技术", + "530200": "热能与发电工程类", + "530201": "电厂热能动力装置", + "530202": "城市热能应用技术", + "530203": "核电站动力设备运行与维护", + "530204": "火电厂集控运行", + "530205": "电厂化学与环保技术", + "530206": "电厂热工自动化技术", + "530207": "国际金融", + "530208": "农村金融", + "530300": "新能源发电工程类", + "530301": "风力发电工程技术", + "530302": "风电系统运行与维护", + "530303": "生物质能应用技术", + "530304": "光伏发电技术与应用", + "530305": "工业节能技术", + "530306": "节电技术与管理", + "530307": "太阳能光热技术与应用", + "530308": "农村能源与环境技术", + "530309": "氢能技术应用", + "530400": "黑色金属材料类", + "530401": "黑色冶金技术", + "530402": "轧钢工程技术", + "530403": "钢铁冶金设备应用技术", + "530404": "金属材料质量检测", + "530405": "铁矿资源综合利用", + "530500": "有色金属材料类", + "530501": "有色冶金技术", + "530502": "有色冶金设备应用技术", + "530503": "金属压力加工", + "530504": "金属精密成型技术", + "530505": "储能材料技术", + "530600": "非金属材料类", + "530601": "材料工程技术", + "530602": "高分子材料工程技术", + "530603": "复合材料工程技术", + "530604": "非金属矿物材料技术", + "530605": "光伏材料制备技术", + "530606": "炭素加工技术", + "530607": "硅材料制备技术", + "530608": "橡胶工程技术", + "530700": "建筑材料类", + "530701": "建筑材料工程技术", + "530702": "建筑材料检测技术", + "530703": "建筑装饰材料技术", + "530704": "建筑材料设备应用", + "530705": "新型建筑材料技术", + "530706": "建筑材料生产与管理", + "530800": "物流类", + "530801": "物流工程技术", + "530802": "现代物流管理", + "530803": "航空物流管理", + "530804": "铁路物流管理", + "530805": "冷链物流技术与管理", + "530806": "港口物流管理", + "530807": "工程物流管理", + "530808": "采购与供应管理", + "530809": "智能物流技术", + "530810": "供应链运营", + "540100": "建筑设计类", + "540101": "建筑设计", + "540102": "建筑装饰工程技术", + "540103": "古建筑工程技术", + "540104": "建筑室内设计", + "540105": "风景园林设计", + "540106": "园林工程技术", + "540107": "建筑动画与模型制作", + "540108": "葡萄酒文化与营销", + "540109": "茶艺与茶文化", + "540110": "智慧景区开发与管理", + "540111": "智慧旅游技术应用", + "540112": "会展策划与管理", + "540113": "休闲服务与管理", + "540200": "城乡规划与管理类", + "540201": "城乡规划", + "540202": "村镇建设与管理", + "540203": "城市信息化管理", + "540204": "西式烹饪工艺", + "540205": "营养配餐", + "540300": "土建施工类", + "540301": "建筑工程技术", + "540302": "地下与隧道工程技术", + "540303": "土木工程检测技术", + "540304": "建筑钢结构工程技术", + "540400": "建筑设备类", + "540401": "建筑设备工程技术", + "540402": "供热通风与空调工程技术", + "540403": "建筑电气工程技术", + "540404": "建筑智能化工程技术", + "540405": "工业设备安装工程技术", + "540406": "消防工程技术", + "540500": "建设工程管理类", + "540501": "建设工程管理", + "540502": "工程造价", + "540503": "建筑经济管理", + "540504": "建设项目信息化管理", + "540505": "建设工程监理", + "540600": "市政工程类", + "540601": "市政工程技术", + "540602": "城市燃气工程技术", + "540603": "给排水工程技术", + "540604": "环境卫生工程技术", + "540700": "房地产类", + "540701": "房地产经营与管理", + "540702": "房地产检测与估价", + "540703": "物业管理", + "550100": "水文水资源类", + "550101": "水文与水资源工程", + "550102": "水文测报技术", + "550103": "水政水资源管理", + "550104": "产品艺术设计", + "550105": "服装与服饰设计", + "550106": "环境艺术设计", + "550107": "书画艺术", + "550108": "公共艺术设计", + "550109": "游戏艺术设计", + "550110": "展示艺术设计", + "550111": "美容美体艺术", + "550112": "工艺美术品设计", + "550113": "广告艺术设计", + "550114": "室内艺术设计", + "550115": "家具艺术设计", + "550116": "动漫设计", + "550117": "人物形象设计", + "550118": "摄影与摄像艺术", + "550119": "雕刻艺术设计", + "550120": "皮具艺术设计", + "550121": "包装艺术设计", + "550122": "陶瓷设计与工艺", + "550123": "首饰设计与工艺", + "550124": "玉器设计与工艺", + "550125": "刺绣设计与工艺", + "550126": "雕塑设计", + "550127": "服装陈列与展示设计", + "550200": "水利工程与管理类", + "550201": "水利工程", + "550202": "水利水电工程技术", + "550203": "水利水电工程管理", + "550204": "水利水电建筑工程", + "550205": "机电排灌工程技术", + "550206": "港口航道与治河工程", + "550207": "水务管理", + "550208": "音乐剧表演", + "550209": "国际标准舞", + "550210": "现代流行音乐", + "550211": "戏曲音乐", + "550212": "音乐制作", + "550213": "钢琴伴奏", + "550214": "钢琴调律", + "550215": "舞蹈编导", + "550216": "音乐传播", + "550217": "时尚表演与传播", + "550218": "舞台艺术设计与制作", + "550219": "作曲技术", + "550220": "现代魔术设计与表演", + "550300": "水利水电设备类", + "550301": "水电站动力设备", + "550302": "水电站电气设备", + "550303": "水电站运行与管理", + "550304": "水利机电设备运行与管理", + "550305": "中国少数民族语言文化", + "550400": "水土保持与水环境类", + "550401": "水土保持技术", + "550402": "水环境监测与治理", + "550403": "公共文化服务与管理", + "550404": "文物修复与保护", + "550405": "文物考古技术", + "550406": "文物展示利用技术", + "550407": "图书档案管理", + "550408": "石窟寺保护技术", + "560100": "机械设计制造类", + "560101": "机械设计与制造", + "560102": "机械制造与自动化", + "560103": "数控技术", + "560104": "精密机械技术", + "560105": "特种加工技术", + "560106": "材料成型与控制技术", + "560107": "金属材料与热处理技术", + "560108": "铸造技术", + "560109": "锻压技术", + "560110": "焊接技术与自动化", + "560111": "机械产品检测检验技术", + "560112": "理化测试与质检技术", + "560113": "模具设计与制造", + "560114": "电机与电器技术", + "560115": "电线电缆制造技术", + "560116": "内燃机制造与维修", + "560117": "机械装备制造技术", + "560118": "工业设计", + "560119": "工业工程技术", + "560200": "机电设备类", + "560201": "自动化生产设备应用", + "560202": "机电设备安装技术", + "560203": "机电设备维修与管理", + "560204": "数控设备应用与维护", + "560205": "制冷与空调技术", + "560206": "光电制造与应用技术", + "560207": "新能源装备技术", + "560208": "影视多媒体技术", + "560209": "影视照明技术与艺术", + "560210": "音像技术", + "560211": "录音技术与艺术", + "560212": "摄影摄像技术", + "560213": "融媒体技术与运营", + "560214": "网络直播与运营", + "560215": "传播与策划", + "560216": "全媒体广告策划与营销", + "560300": "自动化类", + "560301": "机电一体化技术", + "560302": "电气自动化技术", + "560303": "工业过程自动化技术", + "560304": "智能控制技术", + "560305": "工业网络技术", + "560306": "工业自动化仪表", + "560307": "液压与气动技术", + "560308": "电梯工程技术", + "560309": "工业机器人技术", + "560400": "铁道装备类", + "560401": "铁道机车车辆制造与维护", + "560402": "铁道通信信号设备制造与维护", + "560403": "铁道施工和养路机械制造与维护", + "560500": "船舶与海洋工程装备类", + "560501": "船舶工程技术", + "560502": "船舶机械工程技术", + "560503": "船舶电气工程技术", + "560504": "船舶舾装工程技术", + "560505": "船舶涂装工程技术", + "560506": "游艇设计与制造", + "560507": "海洋工程技术", + "560508": "船舶通信与导航", + "560509": "船舶动力工程技术", + "560600": "航空装备类", + "560601": "飞行器制造技术", + "560602": "飞行器维修技术", + "560603": "航空发动机制造技术", + "560604": "航空发动机装试技术", + "560605": "航空发动机维修技术", + "560606": "飞机机载设备制造技术", + "560607": "飞机机载设备维修技术", + "560608": "航空电子电气技术", + "560609": "航空材料精密成型技术", + "560610": "无人机应用技术", + "560611": "导弹维修", + "560700": "汽车制造类", + "560701": "汽车制造与装配技术", + "560702": "汽车检测与维修技术", + "560703": "汽车电子技术", + "560704": "汽车造型技术", + "560705": "汽车试验技术", + "560706": "汽车改装技术", + "560707": "新能源汽车技术", + "570100": "生物技术类", + "570101": "食品生物技术", + "570102": "化工生物技术", + "570103": "药品生物技术", + "570104": "农业生物技术", + "570105": "生物产品检验检疫", + "570106": "小学英语教育", + "570107": "小学科学教育", + "570108": "音乐教育", + "570109": "美术教育", + "570110": "体育教育", + "570111": "小学道德与法治教育", + "570112": "舞蹈教育", + "570113": "艺术教育", + "570114": "特殊教育", + "570115": "现代教育技术", + "570116": "心理健康教育", + "570200": "化工技术类", + "570201": "应用化工技术", + "570202": "石油炼制技术", + "570203": "石油化工技术", + "570204": "高分子合成技术", + "570205": "精细化工技术", + "570206": "海洋化工技术", + "570207": "工业分析技术", + "570208": "化工装备技术", + "570209": "化工自动化技术", + "570210": "涂装防护技术", + "570211": "烟花爆竹技术与管理", + "570212": "煤化工技术", + "570213": "应用德语", + "570214": "应用泰语", + "570215": "应用越南语", + "570216": "应用阿拉伯语", + "570300": "体育类", + "570301": "社会体育", + "570302": "休闲体育", + "570303": "运动训练", + "570304": "民族传统体育", + "570305": "运动防护", + "570306": "体育保健与康复", + "570307": "健身指导与管理", + "570308": "运动健康指导", + "570309": "运动数据分析", + "570310": "体能训练", + "570311": "体育运营与管理", + "570312": "电子竞技运动与管理", + "570313": "高尔夫球运动与管理", + "570314": "冰雪运动与管理", + "570315": "冰雪设施运维与管理", + "570316": "体育艺术表演", + "580100": "轻化工类", + "580101": "高分子材料加工技术", + "580102": "制浆造纸技术", + "580103": "香料香精工艺", + "580104": "表面精饰工艺", + "580105": "家具设计与制造", + "580106": "化妆品技术", + "580107": "皮革加工技术", + "580108": "皮具制作与工艺", + "580109": "鞋类设计与工艺", + "580110": "乐器制造与维护", + "580111": "陶瓷制造工艺", + "580112": "珠宝首饰技术与管理", + "580200": "包装类", + "580201": "包装工程技术", + "580202": "包装策划与设计", + "580203": "包装设备应用技术", + "580204": "食品包装技术", + "580300": "印刷类", + "580301": "数字图文信息技术", + "580302": "印刷设备应用技术", + "580303": "印刷媒体设计与制作", + "580304": "印刷媒体技术", + "580305": "数字印刷技术", + "580400": "纺织服装类", + "580401": "现代纺织技术", + "580402": "丝绸技术", + "580403": "染整技术", + "580404": "纺织机电技术", + "580405": "纺织品检验与贸易", + "580406": "纺织品设计", + "580407": "家用纺织品设计", + "580408": "纺织材料与应用", + "580409": "针织技术与针织服装", + "580410": "服装设计与工艺", + "580411": "皮革服装制作与工艺", + "580412": "服装陈列与展示设计", + "580500": "法律执行类", + "580501": "刑事执行", + "580502": "民事执行", + "580503": "行政执行", + "580504": "司法警务", + "580505": "社区矫正", + "580600": "司法技术类", + "580601": "刑事侦查技术", + "580602": "司法信息技术", + "580603": "司法鉴定技术", + "580604": "司法信息安全", + "580605": "罪犯心理测量与矫正技术", + "580606": "戒毒矫治技术", + "580700": "安全防范类", + "580701": "安全防范技术", + "580702": "安全保卫管理", + "580703": "智能安防运营管理", + "590100": "食品工业类", + "590101": "食品加工技术", + "590102": "酿酒技术", + "590103": "食品质量与安全", + "590104": "食品贮运与营销", + "590105": "食品检测技术", + "590106": "食品营养与卫生", + "590107": "食品营养与检测", + "590200": "药品制造类", + "590201": "中药生产与加工", + "590202": "药品生产技术", + "590203": "兽药制药技术", + "590204": "药品质量与安全", + "590205": "制药设备应用技术", + "590206": "化学制药技术", + "590207": "生物制药技术", + "590208": "中药制药技术", + "590209": "药物制剂技术", + "590210": "标准化技术", + "590300": "食品药品管理类", + "590301": "药品经营与管理", + "590302": "药品服务与管理", + "590303": "保健品开发与管理", + "590304": "化妆品经营与管理", + "590305": "食品药品监督管理", + "590306": "殡葬设备维护技术", + "590307": "陵园服务与管理", + "590400": "粮食工业类", + "590401": "粮食工程技术", + "590500": "粮食储检类", + "590501": "粮油储藏与检测技术", + "600100": "铁道运输类", + "600101": "铁道机车", + "600102": "铁道车辆", + "600103": "铁道供电技术", + "600104": "铁道工程技术", + "600105": "铁道机械化维修技术", + "600106": "铁道信号自动控制", + "600107": "铁道通信与信息化技术", + "600108": "铁道交通运营管理", + "600109": "铁路物流管理", + "600110": "铁路桥梁与隧道工程技术", + "600111": "高速铁道工程技术", + "600112": "高速铁路客运乘务", + "600113": "动车组检修技术", + "600114": "高铁综合维修技术", + "600200": "道路运输类", + "600201": "智能交通技术运用", + "600202": "道路桥梁工程技术", + "600203": "道路运输与路政管理", + "600204": "道路养护与管理", + "600205": "公路机械化施工技术", + "600206": "工程机械运用技术", + "600207": "交通运营管理", + "600208": "交通枢纽运营管理", + "600209": "汽车运用与维修技术", + "600210": "汽车车身维修技术", + "600211": "汽车运用安全管理", + "600212": "新能源汽车运用与维修", + "600300": "水上运输类", + "600301": "航海技术", + "600302": "国际邮轮乘务管理", + "600303": "船舶电子电气技术", + "600304": "船舶检验", + "600305": "港口机械与自动控制", + "600306": "港口电气技术", + "600307": "港口与航道工程技术", + "600308": "港口与航运管理", + "600309": "港口物流管理", + "600310": "轮机工程技术", + "600311": "水上救捞技术", + "600312": "水路运输与海事管理", + "600313": "集装箱运输管理", + "600400": "航空运输类", + "600401": "民航运输", + "600402": "民航通信技术", + "600403": "定翼机驾驶技术", + "600404": "直升机驾驶技术", + "600405": "空中乘务", + "600406": "民航安全技术管理", + "600407": "民航空中安全保卫", + "600408": "机场运行", + "600409": "飞机机电设备维修", + "600410": "飞机电子设备维修", + "600411": "飞机部件修理", + "600412": "航空地面设备维修", + "600413": "机场场务技术与管理", + "600414": "航空油料", + "600415": "航空物流", + "600416": "通用航空器维修", + "600417": "通用航空航务技术", + "600418": "飞机结构修理", + "600500": "管道运输类", + "600501": "管道工程技术", + "600502": "管道运输管理", + "600600": "城市轨道交通类", + "600601": "城市轨道交通车辆技术", + "600602": "城市轨道交通机电技术", + "600603": "城市轨道交通通信信号技术", + "600604": "城市轨道交通供配电技术", + "600605": "城市轨道交通工程技术", + "600606": "城市轨道交通运营管理", + "600700": "邮政类", + "600701": "邮政通信管理", + "600702": "快递运营管理", + "610100": "电子信息类", + "610101": "电子信息工程技术", + "610102": "应用电子技术", + "610103": "微电子技术", + "610104": "智能产品开发", + "610105": "智能终端技术与应用", + "610106": "智能监控技术应用", + "610107": "汽车智能技术", + "610108": "电子产品质量检测", + "610109": "电子产品营销与服务", + "610110": "电子电路设计与工艺", + "610111": "电子制造技术与设备", + "610112": "电子测量技术与仪器", + "610113": "电子工艺与管理", + "610114": "声像工程技术", + "610115": "移动互联应用技术", + "610116": "光电技术应用", + "610117": "光伏工程技术", + "610118": "光电显示技术", + "610119": "物联网应用技术", + "610120": "集成电路技术应用", + "610200": "计算机类", + "610201": "计算机应用技术", + "610202": "计算机网络技术", + "610203": "计算机信息管理", + "610204": "计算机系统与维护", + "610205": "软件技术", + "610206": "软件与信息服务", + "610207": "动漫制作技术", + "610208": "嵌入式技术与应用", + "610209": "数字展示技术", + "610210": "数字媒体应用技术", + "610211": "信息安全与管理", + "610212": "移动应用开发", + "610213": "云计算技术与应用", + "610214": "电子商务技术", + "610215": "大数据技术与应用", + "610216": "虚拟现实应用技术", + "610217": "人工智能技术服务", + "610300": "通信类", + "610301": "通信技术", + "610302": "移动通信技术", + "610303": "通信系统运行管理", + "610304": "通信工程设计与监理", + "610305": "电信服务与管理", + "610306": "光通信技术", + "610307": "物联网工程技术", + "620100": "临床医学类", + "620101": "临床医学", + "620102": "口腔医学", + "620103": "中医学", + "620104": "中医骨伤", + "620105": "针灸推拿", + "620106": "蒙医学", + "620107": "藏医学", + "620108": "维医学", + "620109": "傣医学", + "620110": "哈医学", + "620111": "朝医学", + "620200": "护理类", + "620201": "护理", + "620202": "助产", + "620300": "药学类", + "620301": "药学", + "620302": "中药学", + "620303": "蒙药学", + "620304": "维药学", + "620305": "藏药学", + "620400": "医学技术类", + "620401": "医学检验技术", + "620402": "医学生物技术", + "620403": "医学影像技术", + "620404": "医学美容技术", + "620405": "口腔医学技术", + "620406": "卫生检验与检疫技术", + "620407": "眼视光技术", + "620408": "放射治疗技术", + "620409": "呼吸治疗技术", + "620500": "康复治疗类", + "620501": "康复治疗技术", + "620502": "言语听觉康复技术", + "620503": "中医康复技术", + "620600": "公共卫生与卫生管理类", + "620601": "预防医学", + "620602": "公共卫生管理", + "620603": "卫生监督", + "620604": "卫生信息管理", + "620700": "人口与计划生育类", + "620701": "人口与家庭发展服务", + "620702": "生殖健康服务与管理", + "620800": "健康管理与促进类", + "620801": "健康管理", + "620802": "医学营养", + "620803": "中医养生保健", + "620804": "心理咨询", + "620805": "医疗设备应用技术", + "620806": "精密医疗器械技术", + "620807": "医疗器械维护与管理", + "620808": "康复工程技术", + "620809": "康复辅助器具技术", + "620810": "假肢与矫形器技术", + "620811": "老年保健与管理", + "620812": "医疗器械经营与管理", + "630100": "财政税务类", + "630101": "财政", + "630102": "税务", + "630103": "资产评估与管理", + "630104": "政府采购管理", + "630200": "金融类", + "630201": "金融管理", + "630202": "国际金融", + "630203": "证券与期货", + "630204": "信托与租赁", + "630205": "保险", + "630206": "投资与理财", + "630207": "信用管理", + "630208": "农村金融", + "630209": "互联网金融", + "630300": "财务会计类", + "630301": "财务管理", + "630302": "会计", + "630303": "审计", + "630304": "会计信息管理", + "630400": "统计类", + "630401": "信息统计与分析", + "630402": "统计与会计核算", + "630500": "经济贸易类", + "630501": "国际贸易实务", + "630502": "国际经济与贸易", + "630503": "国际商务", + "630504": "服务外包", + "630505": "经济信息管理", + "630506": "报关与国际货运", + "630507": "商务经纪与代理", + "630508": "国际文化贸易", + "630600": "工商管理类", + "630601": "工商企业管理", + "630602": "商务管理", + "630603": "商检技术", + "630604": "连锁经营管理", + "630605": "市场管理与服务", + "630606": "品牌代理经营", + "630607": "中小企业创业与经营", + "630700": "市场营销类", + "630701": "市场营销", + "630702": "汽车营销与服务", + "630703": "广告策划与营销", + "630704": "茶艺与茶叶营销", + "630800": "电子商务类", + "630801": "电子商务", + "630802": "移动商务", + "630803": "网络营销", + "630804": "商务数据分析与应用", + "630805": "跨境电子商务", + "630900": "物流类", + "630901": "物流工程技术", + "630902": "物流信息技术", + "630903": "物流管理", + "630904": "物流金融管理", + "630905": "工程物流管理", + "630906": "冷链物流技术与管理", + "630907": "采购与供应管理", + "640100": "旅游类", + "640101": "旅游管理", + "640102": "导游", + "640103": "旅行社经营管理", + "640104": "景区开发与管理", + "640105": "酒店管理", + "640106": "休闲服务与管理", + "640107": "研学旅行管理与服务", + "640108": "葡萄酒营销与服务", + "640200": "餐饮类", + "640201": "餐饮管理", + "640202": "烹调工艺与营养", + "640203": "营养配餐", + "640204": "中西面点工艺", + "640205": "西餐工艺", + "640300": "会展类", + "640301": "会展策划与管理", + "650100": "艺术设计类", + "650101": "艺术设计", + "650102": "视觉传播设计与制作", + "650103": "广告设计与制作", + "650104": "数字媒体艺术设计", + "650105": "产品艺术设计", + "650106": "家具艺术设计", + "650107": "皮具艺术设计", + "650108": "服装与服饰设计", + "650109": "室内艺术设计", + "650110": "展示艺术设计", + "650111": "环境艺术设计", + "650112": "公共艺术设计", + "650113": "雕刻艺术设计", + "650114": "包装艺术设计", + "650115": "陶瓷设计与工艺", + "650116": "刺绣设计与工艺", + "650117": "玉器设计与工艺", + "650118": "首饰设计与工艺", + "650119": "工艺美术品设计", + "650120": "动漫设计", + "650121": "游戏设计", + "650122": "人物形象设计", + "650123": "美容美体艺术", + "650124": "摄影与摄像艺术", + "650125": "美术", + "650200": "表演艺术类", + "650201": "表演艺术", + "650202": "戏剧影视表演", + "650203": "歌舞表演", + "650204": "戏曲表演", + "650205": "曲艺表演", + "650206": "音乐剧表演", + "650207": "舞蹈表演", + "650208": "国际标准舞", + "650209": "服装表演", + "650210": "模特与礼仪", + "650211": "现代流行音乐", + "650212": "作曲技术", + "650213": "音乐制作", + "650214": "钢琴伴奏", + "650215": "钢琴调律", + "650216": "舞蹈编导", + "650217": "戏曲导演", + "650218": "舞台艺术设计与制作", + "650219": "音乐表演", + "650220": "音乐传播", + "650300": "民族文化类", + "650301": "民族表演艺术", + "650302": "民族美术", + "650303": "民族服装与服饰", + "650304": "民族民居装饰", + "650305": "民族传统技艺", + "650306": "少数民族古籍修复", + "650307": "中国少数民族语言文化", + "650400": "文化服务类", + "650401": "文化创意与策划", + "650402": "文化市场经营管理", + "650403": "公共文化服务与管理", + "650404": "文物修复与保护", + "650405": "考古探掘技术", + "650406": "文物博物馆服务与管理", + "650407": "图书档案管理", + "660100": "新闻出版类", + "660101": "图文信息处理", + "660102": "网络新闻与传播", + "660103": "版面编辑与校对", + "660104": "出版商务", + "660105": "出版与电脑编辑技术", + "660106": "出版信息管理", + "660107": "数字出版", + "660108": "数字媒体设备管理", + "660200": "广播影视类", + "660201": "新闻采编与制作", + "660202": "播音与主持", + "660203": "广播影视节目制作", + "660204": "广播电视技术", + "660205": "影视制片管理", + "660206": "影视编导", + "660207": "影视美术", + "660208": "影视多媒体技术", + "660209": "影视动画", + "660210": "影视照明技术与艺术", + "660211": "音像技术", + "660212": "录音技术与艺术", + "660213": "摄影摄像技术", + "660214": "传播与策划", + "660215": "媒体营销", + "670100": "教育类", + "670101": "早期教育", + "670102": "学前教育", + "670103": "小学教育", + "670104": "语文教育", + "670105": "数学教育", + "670106": "英语教育", + "670107": "物理教育", + "670108": "化学教育", + "670109": "生物教育", + "670110": "历史教育", + "670111": "地理教育", + "670112": "音乐教育", + "670113": "美术教育", + "670114": "体育教育", + "670115": "思想政治教育", + "670116": "舞蹈教育", + "670117": "艺术教育", + "670118": "特殊教育", + "670119": "科学教育", + "670120": "现代教育技术", + "670121": "心理健康教育", + "670200": "语言类", + "670201": "汉语", + "670202": "商务英语", + "670203": "应用英语", + "670204": "旅游英语", + "670205": "商务日语", + "670206": "应用日语", + "670207": "旅游日语", + "670208": "应用韩语", + "670209": "应用俄语", + "670210": "应用法语", + "670211": "应用德语", + "670212": "应用西班牙语", + "670213": "应用越南语", + "670214": "应用泰语", + "670215": "应用阿拉伯语", + "670216": "应用外语", + "670300": "文秘类", + "670301": "文秘", + "670302": "文秘速录", + "670400": "体育类", + "670401": "运动训练", + "670402": "运动防护", + "670403": "社会体育", + "670404": "休闲体育", + "670405": "高尔夫球运动与管理", + "670406": "民族传统体育", + "670407": "体育艺术表演", + "670408": "体育运营与管理", + "670409": "体育保健与康复", + "670410": "健身指导与管理", + "670411": "电子竞技运动与管理", + "670412": "冰雪设施运维与管理", + "680100": "公安管理类", + "680101": "治安管理", + "680102": "交通管理", + "680103": "信息网络安全监察", + "680104": "防火管理", + "680105": "边防检查", + "680106": "边境管理", + "680107": "特警", + "680108": "警察管理", + "680109": "公共安全管理", + "680110": "森林消防", + "680111": "部队后勤管理", + "680112": "部队政治工作", + "680200": "公安指挥类", + "680201": "警察指挥与战术", + "680202": "边防指挥", + "680203": "船艇指挥", + "680204": "通信指挥", + "680205": "消防指挥", + "680206": "参谋业务", + "680207": "抢险救援", + "680300": "公安技术类", + "680301": "刑事科学技术", + "680302": "警犬技术", + "680400": "侦查类", + "680401": "刑事侦查", + "680402": "国内安全保卫", + "680403": "经济犯罪侦查", + "680404": "禁毒", + "680500": "法律实务类", + "680501": "司法助理", + "680502": "法律文秘", + "680503": "法律事务", + "680504": "检察事务", + "680600": "法律执行类", + "680601": "刑事执行", + "680602": "民事执行", + "680603": "行政执行", + "680604": "司法警务", + "680605": "社区矫正", + "680700": "司法技术类", + "680701": "刑事侦查技术", + "680702": "安全防范技术", + "680703": "司法信息技术", + "680704": "司法鉴定技术", + "680705": "司法信息安全", + "680706": "罪犯心理测量与矫正技术", + "680707": "戒毒矫治技术", + "680708": "职务犯罪预防与控制", + "690100": "公共事业类", + "690101": "社会工作", + "690102": "社会福利事业管理", + "690103": "青少年工作与管理", + "690104": "社区管理与服务", + "690105": "公共关系", + "690106": "人民武装", + "690200": "公共管理类", + "690201": "民政管理", + "690202": "人力资源管理", + "690203": "劳动与社会保障", + "690204": "网络舆情监测", + "690205": "公共事务管理", + "690206": "行政管理", + "690207": "质量管理与认证", + "690208": "知识产权管理", + "690209": "公益慈善事业管理", + "690300": "公共服务类", + "690301": "老年服务与管理", + "690302": "家政服务与管理", + "690303": "婚庆服务与管理", + "690304": "社区康复", + "690305": "现代殡葬技术与管理", + "690306": "幼儿发展与健康管理", + "690307": "陵园服务与管理", + "720300": "测绘地理信息类", + "720301": "导航工程", + "720400": "石油与天然气类", + "720401": "油气储运工程", + "720500": "煤炭类", + "720501": "采矿工程", + "730300": "新能源发电工程类", + "730301": "新能源工程", + "740100": "城乡规划与管理类", + "740101": "土木工程", + "740200": "城乡规划与管理类", + "740201": "工程造价", + "740202": "工程管理", + "740300": "土建施工类", + "740301": "建筑设计", + "740302": "风景园林", + "760100": "机械设计制造类", + "760101": "机械设计制造及其自动化", + "760102": "材料成型及控制工程", + "760103": "智能制造工程", + "760300": "自动化类", + "760301": "机械电子工程", + "760302": "电气工程及其自动化", + "760303": "智能控制技术", + "760304": "工业机器人技术", + "760305": "电梯工程技术", + "760306": "自动化技术与应用", + "760700": "汽车制造类", + "760701": "车辆工程", + "760702": "汽车服务工程", + "760703": "新能源汽车工程", + "770200": "化工技术类", + "770201": "化学工程与工艺", + "780300": "印刷类", + "780301": "印刷工程", + "790100": "食品工业类", + "790101": "食品质量与安全", + "790200": "药品制造类", + "790201": "制药工程", + "800200": "道路运输类", + "800201": "道路桥梁工程", + "800300": "水上运输类", + "800301": "航海技术", + "800302": "水路运输与海事管理", + "800600": "城市轨道交通类", + "800601": "轨道交通信号与控制", + "800602": "城市轨道交通设备与控制", + "810100": "电子信息类", + "810101": "电子信息工程", + "810102": "物联网工程", + "810103": "集成电路技术与应用", + "810200": "计算机类", + "810201": "计算机应用工程", + "810202": "网络工程", + "810203": "软件工程", + "810204": "数字媒体技术", + "810205": "信息安全与管理", + "810206": "大数据技术与应用", + "810207": "区块链技术与应用", + "810208": "虚拟现实技术与应用", + "810300": "通信类", + "810301": "通信工程", + "820200": "护理类", + "820201": "护理", + "820500": "康复治疗类", + "820501": "康复治疗", + "820800": "健康管理与促进类", + "820801": "健康服务与管理", + "830200": "金融类", + "830201": "金融管理", + "830202": "互联网金融", + "830300": "财务会计类", + "830301": "财务管理", + "830302": "会计", + "830500": "经济贸易类", + "830501": "国际经济与贸易", + "830700": "市场营销类", + "830701": "市场营销", + "830800": "电子商务类", + "830801": "电子商务", + "830802": "跨境电子商务", + "830900": "物流类", + "830901": "物流管理", + "830902": "物流工程", + "840100": "旅游类", + "840101": "旅游管理", + "840102": "酒店管理", + "850100": "艺术设计类", + "850101": "视觉传达设计", + "850102": "数字媒体艺术", + "850103": "服装与服饰设计", + "850104": "环境艺术设计", + "850105": "工艺美术", + "850106": "美术", + "850107": "产品设计", + "850108": "公共艺术设计", + "850200": "表演艺术类", + "850201": "舞蹈表演", + "850202": "音乐表演", + "860100": "新闻出版类", + "860101": "网络与新媒体", + "860200": "广播影视类", + "860201": "播音与主持", + "860202": "影视编导", + "860203": "影视摄影与制作", + "870100": "教育类", + "870101": "学前教育", + "870200": "语言类", + "870201": "商务英语", + "870202": "商务日语", + "870203": "应用韩语", + "870204": "应用俄语", + "870205": "应用泰语", + "870400": "体育类", + "870401": "社会体育指导与管理", + "870402": "休闲体育", + "890300": "公共服务类", + "890301": "家政管理", + "999999": "未知", + "01SY00": "人文科学试验班类", + "01SY01": "人文科学试验班", + "02SY00": "经济试验班类", + "02SY01": "经济试验班", + "02SY02": "经济管理试验班", + "03SY00": "社会科学试验班", + "03SY01": "社会科学试验班", + "050200A": "桑戈语", + "05SY00": "文科试验班类", + "07SY00": "理科试验班类", + "07SY01": "理科试验班", + "07SY02": "自然科学试验班", + "08SY00": "工科试验班类", + "08SY01": "工科试验班", + "08SY02": "科技与创意设计试验班", + "08SY03": "技术科学试验班", + "10SY00": "医学试验班类", + "10SY01": "医学试验班" + }, + "schools": { + "10001": "北京大学", + "10002": "中国人民大学", + "10003": "清华大学", + "10004": "北京交通大学", + "10005": "北京工业大学", + "10006": "北京航空航天大学", + "10007": "北京理工大学", + "10008": "北京科技大学", + "10009": "北方工业大学", + "10010": "北京化工大学", + "10011": "北京工商大学", + "10012": "北京服装学院", + "10013": "北京邮电大学", + "10015": "北京印刷学院", + "10016": "北京建筑大学", + "10017": "北京石油化工学院", + "10018": "北京电子科技学院", + "10019": "中国农业大学", + "10020": "北京农学院", + "10022": "北京林业大学", + "10023": "北京协和医学院(清华大学医学部)", + "10025": "首都医科大学", + "10026": "北京中医药大学", + "10027": "北京师范大学", + "10028": "首都师范大学", + "10029": "首都体育学院", + "10030": "北京外国语大学", + "10031": "北京第二外国语学院", + "10032": "北京语言大学", + "10033": "中国传媒大学", + "10034": "中央财经大学", + "10035": "桂林生命与健康职业技术学院", + "10036": "对外经济贸易大学", + "10037": "北京物资学院", + "10038": "首都经济贸易大学", + "10039": "中国消防救援学院", + "10040": "外交学院", + "10041": "中国人民公安大学", + "10042": "国际关系学院", + "10043": "北京体育大学", + "10045": "中央音乐学院", + "10046": "中国音乐学院", + "10047": "中央美术学院", + "10048": "中央戏剧学院", + "10049": "中国戏曲学院", + "10050": "北京电影学院", + "10051": "北京舞蹈学院", + "10052": "中央民族大学", + "10053": "中国政法大学", + "10054": "华北电力大学", + "10055": "南开大学", + "10056": "天津大学", + "10057": "天津科技大学", + "10058": "天津工业大学", + "10059": "中国民航大学", + "10060": "天津理工大学", + "10061": "天津农学院", + "10062": "天津医科大学", + "10063": "天津中医药大学", + "10065": "天津师范大学", + "10066": "天津职业技术师范大学", + "10068": "天津外国语大学", + "10069": "天津商业大学", + "10070": "天津财经大学", + "10071": "天津体育学院", + "10072": "天津音乐学院", + "10073": "天津美术学院", + "10075": "河北大学", + "10076": "河北工程大学", + "10077": "河北地质大学", + "10078": "华北水利水电大学", + "10079": "华北电力大学(保定)", + "10080": "河北工业大学", + "10081": "华北理工大学", + "10082": "河北科技大学", + "10084": "河北建筑工程学院", + "10085": "河北水利电力学院", + "10086": "河北农业大学", + "10089": "河北医科大学", + "10092": "河北北方学院", + "10093": "承德医学院", + "10094": "河北师范大学", + "10096": "保定学院", + "10098": "河北民族师范学院", + "10099": "唐山师范学院", + "10100": "廊坊师范学院", + "10101": "衡水学院", + "10102": "石家庄学院", + "10103": "邯郸学院", + "10104": "邢台学院", + "10105": "沧州师范学院", + "10107": "石家庄铁道大学", + "10108": "山西大学", + "10109": "太原科技大学", + "10110": "中北大学", + "10112": "太原理工大学", + "10113": "山西农业大学", + "10114": "山西医科大学", + "10117": "长治医学院", + "10118": "山西师范大学", + "10119": "太原师范学院", + "10120": "山西大同大学", + "10121": "晋中学院", + "10122": "长治学院", + "10123": "运城学院", + "10124": "忻州师范学院", + "10125": "山西财经大学", + "10126": "内蒙古大学", + "10127": "内蒙古科技大学", + "10128": "内蒙古工业大学", + "10129": "内蒙古农业大学", + "10132": "内蒙古医科大学", + "10135": "内蒙古师范大学", + "10136": "内蒙古民族大学", + "10138": "赤峰学院", + "10139": "内蒙古财经大学", + "10140": "辽宁大学", + "10141": "大连理工大学", + "10142": "沈阳工业大学", + "10143": "沈阳航空航天大学", + "10144": "沈阳理工大学", + "10145": "东北大学", + "10146": "辽宁科技大学", + "10147": "辽宁工程技术大学", + "10148": "辽宁石油化工大学", + "10149": "沈阳化工大学", + "10150": "大连交通大学", + "10151": "大连海事大学", + "10152": "大连工业大学", + "10153": "沈阳建筑大学", + "10154": "辽宁工业大学", + "10157": "沈阳农业大学", + "10158": "大连海洋大学", + "10159": "中国医科大学", + "10160": "锦州医科大学", + "10161": "大连医科大学", + "10162": "辽宁中医药大学", + "10163": "沈阳药科大学", + "10164": "沈阳医学院", + "10165": "辽宁师范大学", + "10166": "沈阳师范大学", + "10167": "渤海大学", + "10169": "鞍山师范学院", + "10171": "朝阳师范高等专科学校", + "10172": "大连外国语大学", + "10173": "东北财经大学", + "10175": "中国刑事警察学院", + "10176": "沈阳体育学院", + "10177": "沈阳音乐学院", + "10178": "鲁迅美术学院", + "10179": "抚顺师范高等专科学校", + "10180": "锦州师范高等专科学校", + "10181": "营口职业技术学院", + "10182": "铁岭师范高等专科学校", + "10183": "吉林大学", + "10184": "延边大学", + "10186": "长春理工大学", + "10188": "东北电力大学", + "10190": "长春工业大学", + "10191": "吉林建筑大学", + "10192": "吉林化工学院", + "10193": "吉林农业大学", + "10199": "长春中医药大学", + "10200": "东北师范大学", + "10201": "北华大学", + "10202": "通化师范学院", + "10203": "吉林师范大学", + "10204": "吉林工程技术师范学院", + "10205": "长春师范大学", + "10206": "白城师范学院", + "10207": "吉林财经大学", + "10208": "吉林体育学院", + "10209": "吉林艺术学院", + "10212": "黑龙江大学", + "10213": "哈尔滨工业大学", + "10214": "哈尔滨理工大学", + "10216": "燕山大学", + "10217": "哈尔滨工程大学", + "10219": "黑龙江科技大学", + "10220": "东北石油大学", + "10222": "佳木斯大学", + "10223": "黑龙江八一农垦大学", + "10224": "东北农业大学", + "10225": "东北林业大学", + "10226": "哈尔滨医科大学", + "10228": "黑龙江中医药大学", + "10229": "牡丹江医学院", + "10231": "哈尔滨师范大学", + "10232": "齐齐哈尔大学", + "10233": "牡丹江师范学院", + "10234": "哈尔滨学院", + "10235": "大庆师范学院", + "10236": "绥化学院", + "10238": "齐齐哈尔高等师范专科学校", + "10240": "哈尔滨商业大学", + "10242": "哈尔滨体育学院", + "10245": "哈尔滨金融学院", + "10246": "复旦大学", + "10247": "同济大学", + "10248": "上海交通大学", + "10251": "华东理工大学", + "10252": "上海理工大学", + "10254": "上海海事大学", + "10255": "东华大学", + "10256": "上海电力大学", + "10259": "上海应用技术大学", + "10262": "上海健康医学院", + "10264": "上海海洋大学", + "10268": "上海中医药大学", + "10269": "华东师范大学", + "10270": "上海师范大学", + "10271": "上海外国语大学", + "10272": "上海财经大学", + "10273": "上海对外经贸大学", + "10274": "上海海关学院", + "10275": "上海旅游高等专科学校", + "10276": "华东政法大学", + "10277": "上海体育大学", + "10278": "上海音乐学院", + "10279": "上海戏剧学院", + "10280": "上海大学", + "10283": "上海公安学院", + "10284": "南京大学", + "10285": "苏州大学", + "10286": "东南大学", + "10287": "南京航空航天大学", + "10288": "南京理工大学", + "10289": "江苏科技大学", + "10290": "中国矿业大学", + "10291": "南京工业大学", + "10292": "常州大学", + "10293": "南京邮电大学", + "10294": "河海大学", + "10295": "江南大学", + "10298": "南京林业大学", + "10299": "江苏大学", + "10300": "南京信息工程大学", + "10304": "南通大学", + "10305": "盐城工学院", + "10307": "南京农业大学", + "10312": "南京医科大学", + "10313": "徐州医科大学", + "10315": "南京中医药大学", + "10316": "中国药科大学", + "10319": "南京师范大学", + "10320": "江苏师范大学", + "10323": "淮阴师范学院", + "10324": "盐城师范学院", + "10327": "南京财经大学", + "10329": "江苏警官学院", + "10330": "南京体育学院", + "10331": "南京艺术学院", + "10332": "苏州科技大学", + "10333": "常熟理工学院", + "10335": "浙江大学", + "10336": "杭州电子科技大学", + "10337": "浙江工业大学", + "10338": "浙江理工大学", + "10340": "浙江海洋大学", + "10341": "浙江农林大学", + "10343": "温州医科大学", + "10344": "浙江中医药大学", + "10345": "浙江师范大学", + "10346": "杭州师范大学", + "10347": "湖州师范学院", + "10349": "绍兴文理学院", + "10350": "台州学院", + "10351": "温州大学", + "10352": "丽水学院", + "10353": "浙江工商大学", + "10354": "嘉兴学院", + "10355": "中国美术学院", + "10356": "中国计量大学", + "10357": "安徽大学", + "10358": "中国科学技术大学", + "10359": "合肥工业大学", + "10360": "安徽工业大学", + "10361": "安徽理工大学", + "10363": "安徽工程大学", + "10364": "安徽农业大学", + "10366": "安徽医科大学", + "10367": "蚌埠医学院", + "10368": "皖南医学院", + "10369": "安徽中医药大学", + "10370": "安徽师范大学", + "10371": "阜阳师范大学", + "10372": "安庆师范大学", + "10373": "淮北师范大学", + "10375": "黄山学院", + "10376": "皖西学院", + "10377": "滁州学院", + "10378": "安徽财经大学", + "10379": "宿州学院", + "10380": "巢湖学院", + "10381": "淮南师范学院", + "10383": "铜陵学院", + "10384": "厦门大学", + "10385": "华侨大学", + "10386": "福州大学", + "10388": "福建理工大学", + "10389": "福建农林大学", + "10390": "集美大学", + "10392": "福建医科大学", + "10393": "福建中医药大学", + "10394": "福建师范大学", + "10395": "闽江学院", + "10397": "武夷学院", + "10398": "宁德师范学院", + "10399": "泉州师范学院", + "10402": "闽南师范大学", + "10403": "南昌大学", + "10404": "华东交通大学", + "10405": "东华理工大学", + "10406": "南昌航空大学", + "10407": "江西理工大学", + "10408": "景德镇陶瓷大学", + "10410": "江西农业大学", + "10412": "江西中医药大学", + "10413": "赣南医学院", + "10414": "江西师范大学", + "10416": "上饶师范学院", + "10417": "宜春学院", + "10418": "赣南师范大学", + "10419": "井冈山大学", + "10421": "江西财经大学", + "10422": "山东大学", + "10423": "中国海洋大学", + "10424": "山东科技大学", + "10425": "中国石油大学(华东)", + "10426": "青岛科技大学", + "10427": "济南大学", + "10429": "青岛理工大学", + "10430": "山东建筑大学", + "10431": "齐鲁工业大学", + "10433": "山东理工大学", + "10434": "山东农业大学", + "10435": "青岛农业大学", + "10438": "潍坊医学院", + "10439": "山东第一医科大学", + "10440": "滨州医学院", + "10441": "山东中医药大学", + "10442": "山东医学高等专科学校", + "10443": "济宁医学院", + "10444": "菏泽医学专科学校", + "10445": "山东师范大学", + "10446": "曲阜师范大学", + "10447": "聊城大学", + "10448": "德州学院", + "10449": "滨州学院", + "10451": "鲁东大学", + "10452": "临沂大学", + "10453": "泰山学院", + "10454": "济宁学院", + "10455": "菏泽学院", + "10456": "山东财经大学", + "10457": "山东体育学院", + "10458": "山东艺术学院", + "10459": "郑州大学", + "10460": "河南理工大学", + "10462": "郑州轻工业大学", + "10463": "河南工业大学", + "10464": "河南科技大学", + "10465": "中原工学院", + "10466": "河南农业大学", + "10467": "河南科技学院", + "10469": "河南牧业经济学院", + "10471": "河南中医药大学", + "10472": "新乡医学院", + "10475": "河南大学", + "10476": "河南师范大学", + "10477": "信阳师范学院", + "10478": "周口师范学院", + "10479": "安阳师范学院", + "10480": "许昌学院", + "10481": "南阳师范学院", + "10482": "洛阳师范学院", + "10483": "商丘师范学院", + "10484": "河南财经政法大学", + "10485": "郑州航空工业管理学院", + "10486": "武汉大学", + "10487": "华中科技大学", + "10488": "武汉科技大学", + "10489": "长江大学", + "10490": "武汉工程大学", + "10491": "中国地质大学(武汉)", + "10495": "武汉纺织大学", + "10496": "武汉轻工大学", + "10497": "武汉理工大学", + "10500": "湖北工业大学", + "10504": "华中农业大学", + "10507": "湖北中医药大学", + "10511": "华中师范大学", + "10512": "湖北大学", + "10513": "湖北师范大学", + "10514": "黄冈师范学院", + "10517": "湖北民族大学", + "10518": "汉江师范学院", + "10519": "湖北文理学院", + "10520": "中南财经政法大学", + "10522": "武汉体育学院", + "10523": "湖北美术学院", + "10524": "中南民族大学", + "10525": "湖北汽车工业学院", + "10528": "湖北工程学院", + "10530": "湘潭大学", + "10531": "吉首大学", + "10532": "湖南大学", + "10533": "中南大学", + "10534": "湖南科技大学", + "10536": "长沙理工大学", + "10537": "湖南农业大学", + "10538": "中南林业科技大学", + "10541": "湖南中医药大学", + "10542": "湖南师范大学", + "10543": "湖南理工学院", + "10545": "湘南学院", + "10546": "衡阳师范学院", + "10547": "邵阳学院", + "10548": "怀化学院", + "10549": "湖南文理学院", + "10551": "湖南科技学院", + "10553": "湖南人文科技学院", + "10554": "湖南工商大学", + "10555": "南华大学", + "10558": "中山大学", + "10559": "暨南大学", + "10560": "汕头大学", + "10561": "华南理工大学", + "10564": "华南农业大学", + "10566": "广东海洋大学", + "10570": "广州医科大学", + "10571": "广东医科大学", + "10572": "广州中医药大学", + "10573": "广东药科大学", + "10574": "华南师范大学", + "10576": "韶关学院", + "10577": "惠州学院", + "10578": "韩山师范学院", + "10579": "岭南师范学院", + "10580": "肇庆学院", + "10582": "嘉应学院", + "10585": "广州体育学院", + "10586": "广州美术学院", + "10587": "星海音乐学院", + "10588": "广东技术师范大学", + "10589": "海南大学", + "10590": "深圳大学", + "10592": "广东财经大学", + "10593": "广西大学", + "10594": "广西科技大学", + "10595": "桂林电子科技大学", + "10596": "桂林理工大学", + "10598": "广西医科大学", + "10599": "右江民族医学院", + "10600": "广西中医药大学", + "10601": "桂林医学院", + "10602": "广西师范大学", + "10603": "南宁师范大学", + "10604": "广西民族师范学院", + "10605": "河池学院", + "10606": "玉林师范学院", + "10607": "广西艺术学院", + "10608": "广西民族大学", + "10609": "百色学院", + "10610": "四川大学", + "10611": "重庆大学", + "10613": "西南交通大学", + "10614": "电子科技大学", + "10615": "西南石油大学", + "10616": "成都理工大学", + "10617": "重庆邮电大学", + "10618": "重庆交通大学", + "10619": "西南科技大学", + "10621": "成都信息工程大学", + "10622": "四川轻化工大学", + "10623": "西华大学", + "10624": "中国民用航空飞行学院", + "10626": "四川农业大学", + "10628": "西昌学院", + "10631": "重庆医科大学", + "10632": "西南医科大学", + "10633": "成都中医药大学", + "10634": "川北医学院", + "10635": "西南大学", + "10636": "四川师范大学", + "10637": "重庆师范大学", + "10638": "西华师范大学", + "10639": "绵阳师范学院", + "10640": "内江师范学院", + "10641": "宜宾学院", + "10642": "重庆文理学院", + "10643": "重庆三峡学院", + "10644": "四川文理学院", + "10646": "阿坝师范学院", + "10647": "长江师范学院", + "10649": "乐山师范学院", + "10650": "四川外国语大学", + "10651": "西南财经大学", + "10652": "西南政法大学", + "10653": "成都体育学院", + "10654": "四川音乐学院", + "10655": "四川美术学院", + "10656": "西南民族大学", + "10657": "贵州大学", + "10660": "贵州医科大学", + "10661": "遵义医科大学", + "10662": "贵州中医药大学", + "10663": "贵州师范大学", + "10664": "遵义师范学院", + "10665": "铜仁学院", + "10666": "兴义民族师范学院", + "10667": "安顺学院", + "10668": "贵州工程应用技术学院", + "10669": "凯里学院", + "10670": "黔南民族师范学院", + "10671": "贵州财经大学", + "10672": "贵州民族大学", + "10673": "云南大学", + "10674": "昆明理工大学", + "10676": "云南农业大学", + "10677": "西南林业大学", + "10678": "昆明医科大学", + "10679": "大理大学", + "10680": "云南中医药大学", + "10681": "云南师范大学", + "10683": "昭通学院", + "10684": "曲靖师范学院", + "10685": "普洱学院", + "10686": "保山学院", + "10687": "红河学院", + "10689": "云南财经大学", + "10690": "云南艺术学院", + "10691": "云南民族大学", + "10692": "西藏警官高等专科学校", + "10693": "西藏农牧学院", + "10694": "西藏大学", + "10695": "西藏民族大学", + "10696": "西藏藏医药大学", + "10697": "西北大学", + "10698": "西安交通大学", + "10699": "西北工业大学", + "10700": "西安理工大学", + "10701": "西安电子科技大学", + "10702": "西安工业大学", + "10703": "西安建筑科技大学", + "10704": "西安科技大学", + "10705": "西安石油大学", + "10708": "陕西科技大学", + "10709": "西安工程大学", + "10710": "长安大学", + "10712": "西北农林科技大学", + "10716": "陕西中医药大学", + "10718": "陕西师范大学", + "10719": "延安大学", + "10720": "陕西理工大学", + "10721": "宝鸡文理学院", + "10722": "咸阳师范学院", + "10723": "渭南师范学院", + "10724": "西安外国语大学", + "10726": "西北政法大学", + "10727": "西安体育学院", + "10728": "西安音乐学院", + "10729": "西安美术学院", + "10730": "兰州大学", + "10731": "兰州理工大学", + "10732": "兰州交通大学", + "10733": "甘肃农业大学", + "10735": "甘肃中医药大学", + "10736": "西北师范大学", + "10737": "兰州城市学院", + "10738": "陇东学院", + "10739": "天水师范学院", + "10740": "河西学院", + "10741": "兰州财经大学", + "10742": "西北民族大学", + "10743": "青海大学", + "10746": "青海师范大学", + "10748": "青海民族大学", + "10749": "宁夏大学", + "10752": "宁夏医科大学", + "10753": "宁夏师范学院", + "10755": "新疆大学", + "10757": "塔里木大学", + "10758": "新疆农业大学", + "10759": "石河子大学", + "10760": "新疆医科大学", + "10762": "新疆师范大学", + "10763": "喀什大学", + "10764": "伊犁师范大学", + "10765": "和田师范专科学校", + "10766": "新疆财经大学", + "10768": "新疆艺术学院", + "10792": "天津城建大学", + "10798": "河北科技师范学院", + "10809": "山西中医药大学", + "10812": "吕梁学院", + "10819": "呼伦贝尔学院", + "10822": "广东白云学院", + "10823": "长沙医学院", + "10824": "河南职业技术学院", + "10825": "齐鲁医药学院", + "10826": "明达职业技术学院", + "10827": "长沙民政职业技术学院", + "10828": "陕西工业职业技术学院", + "10829": "公安海警学院", + "10830": "湖南工业职业技术学院", + "10831": "顺德职业技术学院", + "10832": "山东商业职业技术学院", + "10833": "广东轻工职业技术学院", + "10834": "武汉职业技术学院", + "10835": "漯河职业技术学院", + "10836": "株洲师范高等专科学校", + "10838": "兰州石化职业技术学院", + "10839": "江西工业职业技术学院", + "10841": "辽宁对外经贸学院", + "10842": "三门峡职业技术学院", + "10843": "郑州铁路职业技术学院", + "10845": "大连职业技术学院", + "10846": "江西科技学院", + "10847": "辽源职业技术学院", + "10848": "无锡职业技术学院", + "10849": "江苏建筑职业技术学院", + "10850": "南京工业职业技术大学", + "10851": "上海东海职业技术学院", + "10852": "上海工商职业技术学院", + "10853": "北京工业职业技术学院", + "10856": "上海工程技术大学", + "10857": "北京信息职业技术学院", + "10858": "北京电子科技职业学院", + "10859": "天津天狮学院", + "10861": "广东交通职业技术学院", + "10862": "广东水利电力职业技术学院", + "10863": "宁波职业技术学院", + "10864": "温州职业技术学院", + "10865": "湖南信息职业技术学院", + "10866": "福建船政交通职业学院", + "10867": "广西机电职业技术学院", + "10868": "青岛滨海学院", + "10869": "安徽职业技术学院", + "10870": "重庆航天职业技术学院", + "10871": "内蒙古建筑职业技术学院", + "10872": "伊春职业学院", + "10873": "河北工业职业技术学院", + "10876": "浙江万里学院", + "10878": "安徽建筑大学", + "10879": "安徽科技学院", + "10888": "江西医学高等专科学校", + "10894": "景德镇学院", + "10895": "萍乡学院", + "10904": "枣庄学院", + "10908": "山东工艺美术学院", + "10918": "黄淮学院", + "10919": "平顶山学院", + "10920": "湖北理工学院", + "10927": "湖北科技学院", + "10929": "湖北医药学院", + "10955": "黄冈职业技术学院", + "10956": "长江职业学院", + "10957": "辽宁农业职业技术学院", + "10958": "江苏工程职业技术学院", + "10959": "安徽三联学院", + "10960": "苏州工艺美术职业技术学院", + "10963": "淮北职业技术学院", + "10964": "吉林外国语大学", + "10965": "潮汕职业技术学院", + "10966": "杨凌职业技术学院", + "10976": "贵阳学院", + "10977": "六盘水师范学院", + "10994": "新疆工程学院", + "10995": "新疆农业职业技术学院", + "10997": "昌吉学院", + "11032": "天津市职业大学", + "11033": "唐山学院", + "11034": "邯郸职业技术学院", + "11035": "沈阳大学", + "11037": "抚顺职业技术学院", + "11044": "四平职业大学", + "11046": "牡丹江大学", + "11047": "上海立信会计金融学院", + "11049": "淮阴工学院", + "11050": "连云港职业技术学院", + "11051": "镇江市高等专科学校", + "11052": "南通职业大学", + "11054": "苏州市职业大学", + "11055": "常州工学院", + "11057": "浙江科技学院", + "11058": "宁波工程学院", + "11059": "合肥学院", + "11061": "芜湖职业技术学院", + "11062": "厦门理工学院", + "11065": "青岛大学", + "11066": "烟台大学", + "11067": "潍坊学院", + "11068": "郑州工程技术学院", + "11069": "开封大学", + "11070": "洛阳理工学院", + "11071": "新乡学院", + "11072": "江汉大学", + "11074": "荆州理工职业学院", + "11075": "三峡大学", + "11077": "长沙学院", + "11078": "广州大学", + "11079": "成都大学", + "11080": "西安文理学院", + "11084": "北京科技大学延庆分校", + "11090": "北京京北职业技术学院", + "11092": "北京交通职业技术学院", + "11097": "首都经济贸易大学密云分校", + "11099": "北京工业大学通州分校", + "11100": "海南热带海洋学院", + "11104": "华北科技学院", + "11105": "中国人民警察大学", + "11106": "广州航海学院", + "11110": "广东警官学院", + "11113": "深圳职业技术学院", + "11114": "广东南华工商职业学院", + "11116": "成都工业学院", + "11117": "扬州大学", + "11121": "私立华联学院", + "11122": "三江学院", + "11149": "中华女子学院", + "11230": "齐齐哈尔医学院", + "11232": "北京信息科技大学", + "11236": "河北体育学院", + "11238": "石家庄职业技术学院", + "11242": "太原学院", + "11249": "辽阳职业技术学院", + "11250": "阜新高等专科学校", + "11258": "大连大学", + "11261": "吉林工商学院", + "11276": "南京工程学院", + "11287": "南京审计大学", + "11288": "沙洲职业工学院", + "11305": "蚌埠学院", + "11306": "池州学院", + "11308": "淮南联合大学", + "11311": "三明学院", + "11312": "龙岩学院", + "11313": "福建商学院", + "11314": "漳州职业技术学院", + "11315": "闽西职业技术学院", + "11317": "黎明职业大学", + "11318": "江西科技师范大学", + "11319": "南昌工程学院", + "11324": "山东警察学院", + "11326": "信阳农林学院", + "11329": "河南工学院", + "11330": "安阳工学院", + "11332": "湖北警官学院", + "11334": "湖北工业职业技术学院", + "11335": "鄂州职业大学", + "11336": "荆楚理工学院", + "11342": "湖南工程学院", + "11347": "仲恺农业工程学院", + "11349": "五邑大学", + "11350": "广西体育高等专科学校", + "11354": "梧州学院", + "11355": "南宁职业技术学院", + "11360": "攀枝花学院", + "11390": "玉溪师范学院", + "11391": "楚雄师范学院", + "11392": "云南警官学院", + "11393": "昆明学院", + "11395": "榆林学院", + "11396": "商洛学院", + "11397": "安康学院", + "11400": "西安培华学院", + "11406": "甘肃政法大学", + "11407": "北方民族大学", + "11413": "中国矿业大学(北京)", + "11414": "中国石油大学(北京)", + "11415": "中国地质大学(北京)", + "11417": "北京联合大学", + "11418": "北京城市学院", + "11420": "河北金融学院", + "11423": "张家口职业技术学院", + "11427": "集宁师范学院", + "11429": "内蒙古丰州职业学院", + "11430": "辽宁科技学院", + "11432": "辽宁警察学院", + "11436": "长春汽车工业高等专科学校", + "11437": "长春工程学院", + "11439": "吉林农业科技学院", + "11440": "长春金融高等专科学校", + "11441": "吉林警察学院", + "11445": "黑龙江工业学院", + "11446": "黑龙江东方学院", + "11449": "黑龙江职业学院", + "11458": "上海电机学院", + "11460": "南京晓庄学院", + "11462": "扬州市职业大学", + "11463": "江苏理工学院", + "11481": "浙江水利水电学院", + "11482": "浙江财经大学", + "11483": "浙江警察学院", + "11488": "衢州学院", + "11495": "福建警察学院", + "11498": "莆田学院", + "11499": "福建华南女子职业学院", + "11500": "辽宁省交通高等专科学校", + "11502": "福州职业技术学院", + "11504": "江西警察学院", + "11505": "九江职业大学", + "11508": "新余学院", + "11510": "山东交通学院", + "11517": "河南工程学院", + "11522": "焦作大学", + "11524": "武汉音乐学院", + "11527": "湖南城市学院", + "11528": "湖南工学院", + "11532": "湖南财政经济学院", + "11534": "湖南警察学院", + "11535": "湖南工业大学", + "11538": "湖南女子学院", + "11540": "广东金融学院", + "11545": "电子科技大学中山学院", + "11546": "广西科技师范学院", + "11548": "广西财经学院", + "11549": "南宁学院", + "11551": "重庆科技学院", + "11552": "四川旅游学院", + "11553": "成都纺织高等专科学校", + "11556": "文山学院", + "11557": "昆明冶金高等专科学校", + "11560": "西安财经大学", + "11561": "甘肃民族师范学院", + "11562": "兰州文理学院", + "11565": "乌鲁木齐职业大学", + "11585": "连云港师范高等专科学校", + "11600": "湖北经济学院", + "11607": "北部湾大学", + "11608": "广西水利电力职业技术学院", + "11625": "中国青年政治学院", + "11626": "北京青年政治学院", + "11629": "北华航天工业学院", + "11630": "山西省财政税务专科学校", + "11631": "河套学院", + "11632": "沈阳工程学院", + "11635": "哈尔滨信息工程学院", + "11641": "江苏海洋大学", + "11646": "宁波大学", + "11647": "浙江传媒学院", + "11652": "河南财政金融学院", + "11653": "南阳理工学院", + "11654": "武汉商学院", + "11656": "广东石油化工学院", + "11658": "海南师范大学", + "11660": "重庆理工大学", + "11661": "四川民族学院", + "11663": "黔南民族医学高等专科学校", + "11664": "西安邮电大学", + "11671": "桂林师范高等专科学校", + "11688": "山东工商学院", + "11709": "呼和浩特民族学院", + "11726": "长春大学", + "11731": "贵州商学院", + "11733": "上海出版印刷高等专科学校", + "11736": "西安航空学院", + "11765": "河南城建学院", + "11773": "广西职业技术学院", + "11775": "防灾科技学院", + "11777": "承德石油高等专科学校", + "11779": "辽东学院", + "11784": "仰恩大学", + "11785": "九江职业技术学院", + "11787": "濮阳职业技术学院", + "11788": "河南警察学院", + "11796": "武汉城市职业学院", + "11798": "武汉东湖学院", + "11799": "重庆工商大学", + "11800": "汉口学院", + "11802": "黑龙江工程学院", + "11805": "甘肃医学院", + "11806": "陇南师范高等专科学校", + "11807": "兰州工业学院", + "11808": "定西师范高等专科学校", + "11810": "海南医学院", + "11818": "新疆维吾尔医学专科学校", + "11819": "东莞理工学院", + "11821": "邢台职业技术学院", + "11823": "长春医学高等专科学校", + "11825": "桂林航天工业学院", + "11826": "西安电力高等专科学校", + "11827": "山东电力高等专科学校", + "11828": "郑州电力高等专科学校", + "11831": "首钢工学院", + "11832": "河北经贸大学", + "11833": "上海杉达学院", + "11834": "黄河科技学院", + "11835": "上海政法学院", + "11837": "桂林旅游学院", + "11838": "贺州学院", + "11840": "西安医学院", + "11841": "民办四川天一学院", + "11842": "浙江树人学院", + "11843": "九江学院", + "11845": "广东工业大学", + "11846": "广东外语外贸大学", + "11847": "佛山科学技术学院", + "11848": "重庆电力高等专科学校", + "11903": "中央司法警官学院", + "11998": "徐州工程学院", + "11999": "海南职业技术学院", + "12026": "大连民族大学", + "12034": "湖南第一师范学院", + "12036": "浙江交通职业技术学院", + "12040": "广州民航职业技术学院", + "12044": "上海第二工业大学", + "12046": "广州番禺职业技术学院", + "12047": "江苏经贸职业技术学院", + "12048": "南京特殊教育师范学院", + "12049": "吉林交通职业技术学院", + "12050": "上海商学院", + "12051": "湖北职业技术学院", + "12052": "武汉船舶职业技术学院", + "12053": "黑龙江建筑职业技术学院", + "12054": "九州职业技术学院", + "12055": "长沙航空职业技术学院", + "12056": "南通理工学院", + "12057": "包头职业技术学院", + "12058": "黄河水利职业技术学院", + "12059": "广东培正学院", + "12060": "广东松山职业技术学院", + "12061": "金华职业技术学院", + "12062": "日照职业技术学院", + "12063": "盘锦职业技术学院", + "12064": "成都航空职业技术学院", + "12065": "四川电力职业技术学院", + "12067": "许昌职业技术学院", + "12070": "曲阜远东职业技术学院", + "12072": "安徽商贸职业技术学院", + "12073": "安徽水利水电职业技术学院", + "12074": "阜阳职业技术学院", + "12078": "硅湖职业技术学院", + "12104": "柳州职业技术学院", + "12105": "天津中德应用技术大学", + "12106": "泰州职业技术学院", + "12107": "贵州警察学院", + "12111": "山西警察学院", + "12121": "南方医科大学", + "12212": "四川警察学院", + "12213": "南京森林警察学院", + "12214": "湖南医药学院", + "12215": "重庆工业职业技术学院", + "12216": "安徽新华学院", + "12217": "铜陵职业技术学院", + "12218": "民办万博科技职业学院", + "12219": "安徽警官职业学院", + "12220": "淮南职业技术学院", + "12222": "贵州交通职业技术学院", + "12223": "贵州航天职业技术学院", + "12300": "湖南大众传媒职业技术学院", + "12301": "永州职业技术学院", + "12302": "湖南铁道职业技术学院", + "12303": "湖南涉外经济学院", + "12304": "湖南科技职业学院", + "12306": "长春东方职业学院", + "12308": "海口经济学院", + "12309": "武昌首义学院", + "12310": "武昌理工学院", + "12317": "常州信息职业技术学院", + "12322": "广东农工商职业技术学院", + "12324": "青岛职业技术学院", + "12325": "广东新安职业技术学院", + "12326": "威海职业学院", + "12327": "佛山职业技术学院", + "12328": "山东职业学院", + "12329": "山东劳动职业技术学院", + "12330": "莱芜职业技术学院", + "12331": "山东女子学院", + "12332": "烟台南山学院", + "12334": "安徽工业经济职业技术学院", + "12335": "济宁职业技术学院", + "12336": "贵州电子信息职业技术学院", + "12343": "湖南生物机电职业技术学院", + "12344": "广西生态工程职业技术学院", + "12347": "恩施职业技术学院", + "12349": "云南国土资源职业学院", + "12352": "河北软件职业技术学院", + "12354": "襄阳职业技术学院", + "12356": "广西交通职业技术学院", + "12357": "云南交通职业技术学院", + "12362": "武汉生物工程学院", + "12364": "广西工业职业技术学院", + "12367": "河北石油职业技术学院", + "12369": "武汉工贸职业学院", + "12379": "广西国际商务职业技术学院", + "12382": "广西农业职业技术学院", + "12388": "长治职业技术学院", + "12389": "河北建材职业技术学院", + "12391": "潍坊职业学院", + "12392": "柳州铁道职业技术学院", + "12393": "昆明工业职业技术学院", + "12396": "烟台职业学院", + "12397": "湖南交通职业技术学院", + "12401": "湖南商务职业技术学院", + "12408": "河北政法职业学院", + "12410": "合肥通用职业技术学院", + "12415": "沧州职业技术学院", + "12418": "河北能源职业技术学院", + "12423": "湖南体育职业学院", + "12424": "石家庄铁路职业技术学院", + "12425": "湖南工程职业技术学院", + "12440": "东营职业学院", + "12441": "聊城职业技术学院", + "12443": "兴安职业技术学院", + "12448": "北京农业职业学院", + "12451": "北京政法职业学院", + "12453": "中国劳动关系学院", + "12481": "拉萨师范高等专科学校", + "12482": "克拉玛依职业技术学院", + "12484": "天津滨海职业学院", + "12487": "天津工程职业技术学院", + "12490": "黑龙江艺术职业学院", + "12493": "上海行健职业学院", + "12495": "上海城建职业学院", + "12497": "上海交通职业技术学院", + "12498": "上海海事职业技术学院", + "12499": "上海电子信息职业技术学院", + "12510": "陕西能源职业技术学院", + "12511": "甘肃建筑职业技术学院", + "12514": "新疆轻工职业技术学院", + "12539": "酒泉职业技术学院", + "12543": "保定职业技术学院", + "12544": "宁夏理工学院", + "12555": "云南农业职业技术学院", + "12556": "云南司法警官职业学院", + "12558": "云南文化艺术职业学院", + "12559": "云南体育运动职业技术学院", + "12560": "云南经济管理学院", + "12561": "北京财贸职业学院", + "12562": "青海卫生职业技术学院", + "12564": "北京北大方正软件职业技术学院", + "12565": "北京经贸职业学院", + "12566": "北京经济技术职业学院", + "12567": "北京戏曲艺术职业学院", + "12568": "北京汇佳职业学院", + "12569": "北京现代职业技术学院", + "12570": "新疆能源职业技术学院", + "12572": "广东科学技术职业学院", + "12573": "广东食品药品职业学院", + "12574": "广东东软学院", + "12575": "广州康大职业技术学院", + "12576": "珠海艺术职业学院", + "12577": "广东行政职业学院", + "12578": "广东体育职业技术学院", + "12581": "河南工业和信息化职业学院", + "12582": "河南水利与环境职业学院", + "12583": "上海震旦职业学院", + "12584": "上海民远职业技术学院", + "12586": "上海思博职业技术学院", + "12587": "上海立达学院", + "12588": "上海工艺美术职业学院", + "12591": "辽宁体育运动职业技术学院", + "12592": "辽宁职业学院", + "12593": "辽宁生态工程职业学院", + "12594": "沈阳职业技术学院", + "12595": "辽宁理工职业大学", + "12596": "保险职业学院", + "12597": "湖南外贸职业学院", + "12598": "湖南网络工程职业学院", + "12599": "湘潭大学兴湘学院", + "12600": "邵阳职业技术学院", + "12601": "湖南司法警官职业学院", + "12603": "长沙商贸旅游职业技术学院", + "12604": "湖南工业大学科技学院", + "12605": "重庆三峡职业学院", + "12606": "重庆工贸职业技术学院", + "12607": "重庆机电职业技术大学", + "12608": "重庆工程学院", + "12609": "重庆电子工程职业学院", + "12616": "重庆城市科技学院", + "12617": "华南理工大学广州学院", + "12618": "广州大学华软软件学院", + "12619": "广州南方学院", + "12620": "广东外语外贸大学南国商学院", + "12621": "广东财经大学华商学院", + "12622": "湛江科技学院", + "12623": "华南农业大学珠江学院", + "12625": "福建林业职业技术学院", + "12626": "福建信息职业技术学院", + "12627": "福建水利电力职业技术学院", + "12628": "福建电力职业技术学院", + "12629": "厦门海洋职业技术学院", + "12630": "福建农业职业技术学院", + "12631": "厦门医学院", + "12633": "福建卫生职业技术学院", + "12634": "泉州医学高等专科学校", + "12635": "成都职业技术学院", + "12636": "成都东软学院", + "12637": "四川化工职业技术学院", + "12638": "四川水利职业技术学院", + "12639": "南充职业技术学院", + "12640": "内江职业技术学院", + "12641": "四川航天职业技术学院", + "12642": "四川邮电职业技术学院", + "12645": "宁波城市职业技术学院", + "12647": "浙江同济科技职业学院", + "12649": "湖南科技大学潇湘学院", + "12650": "南华大学船山学院", + "12651": "湘潭理工学院", + "12652": "湖南师范大学树达学院", + "12653": "湖南农业大学东方科技学院", + "12656": "中南林业科技大学涉外学院", + "12657": "湖南文理学院芙蓉学院", + "12658": "湖南理工学院南湖学院", + "12659": "衡阳师范学院南岳学院", + "12660": "湖南工程学院应用技术学院", + "12661": "湖南中医药大学湘杏学院", + "12662": "吉首大学张家界学院", + "12664": "辽宁省残疾人中等职业技术学校", + "12668": "广州理工学院", + "12670": "呼和浩特职业学院", + "12671": "包头轻工职业技术学院", + "12673": "内蒙古电子信息职业技术学院", + "12674": "内蒙古机电职业技术学院", + "12675": "内蒙古化工职业学院", + "12676": "内蒙古商贸职业学院", + "12677": "锡林郭勒职业学院", + "12678": "江苏联合职业技术学院", + "12679": "江苏海事职业技术学院", + "12680": "应天职业技术学院", + "12681": "无锡科技职业学院", + "12682": "江苏医药职业学院", + "12683": "扬州环境资源职业技术学院", + "12684": "南通科技职业学院", + "12685": "苏州经贸职业技术学院", + "12686": "苏州工业职业技术学院", + "12687": "苏州托普信息职业技术学院", + "12688": "苏州卫生职业技术学院", + "12689": "东南大学成贤学院", + "12702": "无锡商业职业技术学院", + "12703": "江苏航运职业技术学院", + "12704": "山西艺术职业学院", + "12708": "福州英华职业学院", + "12709": "厦门华厦学院", + "12710": "闽南理工学院", + "12711": "泉州纺织服装职业学院", + "12712": "西安欧亚学院", + "12713": "西安外事学院", + "12714": "西安翻译学院", + "12715": "西京学院", + "12716": "宁夏民族职业技术学院", + "12717": "三亚城市职业学院", + "12718": "大庆职业学院", + "12719": "天津渤海职业技术学院", + "12720": "天津电子信息职业技术学院", + "12721": "天津机电职业技术学院", + "12722": "天津现代职业技术学院", + "12723": "天津公安警官职业学院", + "12724": "黑龙江林业职业技术学院", + "12725": "黑龙江农业职业技术学院", + "12726": "黑龙江农业工程职业学院", + "12727": "黑龙江农垦职业学院", + "12728": "黑龙江司法警官职业学院", + "12729": "齐齐哈尔工程学院", + "12730": "大连商务职业学院", + "12732": "天津轻工职业技术学院", + "12733": "北京科技经营管理学院", + "12734": "新疆警察学院", + "12735": "铁道警察学院", + "12736": "广东职业技术学院", + "12737": "荆州职业技术学院", + "12738": "武汉工程职业技术学院", + "12739": "湖南环境生物职业技术学院", + "12740": "仙桃职业学院", + "12741": "广东建设职业技术学院", + "12742": "广东女子职业技术学院", + "12743": "广东机电职业技术学院", + "12744": "湖北轻工职业技术学院", + "12745": "商丘职业技术学院", + "12746": "郑州科技学院", + "12747": "郑州工业应用技术学院", + "12748": "平顶山工业职业技术学院", + "12749": "广东岭南职业技术学院", + "12750": "周口职业技术学院", + "12751": "四川机电职业技术学院", + "12752": "湖北交通职业技术学院", + "12753": "绵阳职业技术学院", + "12754": "重庆海联职业技术学院", + "12755": "重庆信息技术职业学院", + "12756": "重庆传媒职业学院", + "12757": "重庆警察学院", + "12758": "重庆城市管理职业学院", + "12759": "重庆工程职业技术学院", + "12761": "四川交通职业技术学院", + "12762": "四川工商职业技术学院", + "12763": "四川工程职业技术学院", + "12764": "四川建筑职业技术学院", + "12765": "汕尾职业技术学院", + "12766": "江西工程学院", + "12767": "达州职业技术学院", + "12768": "济源职业技术学院", + "12770": "罗定职业技术学院", + "12771": "阳江职业技术学院", + "12772": "河源职业技术学院", + "12773": "秦皇岛职业技术学院", + "12774": "晋城职业技术学院", + "12775": "山西建筑职业技术学院", + "12776": "山西药科职业学院", + "12778": "山西交通职业技术学院", + "12779": "山西应用科技学院", + "12780": "大同煤炭职业技术学院", + "12781": "河南司法警官职业学院", + "12782": "石家庄工程职业学院", + "12783": "石家庄城市经济职业学院", + "12784": "河北传媒学院", + "12785": "唐山职业技术学院", + "12786": "衡水职业技术学院", + "12787": "唐山工业职业技术学院", + "12788": "天津商务职业学院", + "12789": "浙江工商职业技术学院", + "12790": "台州职业技术学院", + "12791": "浙江工贸职业技术学院", + "12792": "浙江越秀外国语学院", + "12793": "鹤壁职业技术学院", + "12794": "河南工业职业技术学院", + "12795": "南昌理工学院", + "12796": "河北工程技术学院", + "12797": "内蒙古警察职业学院", + "12798": "上海济光职业技术学院", + "12799": "上海建桥学院", + "12800": "上海工商外国语职业学院", + "12801": "上海科学技术职业学院", + "12802": "吉利学院", + "12803": "天津国土资源和房屋职业学院", + "12804": "南京交通职业技术学院", + "12805": "江苏电子信息职业学院", + "12806": "江苏农牧科技职业学院", + "12807": "常州纺织服装职业技术学院", + "12808": "苏州农业职业技术学院", + "12809": "苏州工业园区职业技术学院", + "12810": "安徽文达信息工程学院", + "12811": "安徽工贸职业技术学院", + "12812": "宿州职业技术学院", + "12813": "六安职业技术学院", + "12814": "安徽电子信息职业技术学院", + "12815": "民办合肥经济技术职业学院", + "12816": "安徽交通职业技术学院", + "12817": "安徽体育运动职业技术学院", + "12818": "滨州职业学院", + "12819": "山东科技职业学院", + "12820": "重庆建筑科技职业学院", + "12821": "安顺职业技术学院", + "12822": "黔东南民族职业技术学院", + "12823": "黔南民族职业技术学院", + "12824": "遵义职业技术学院", + "12825": "云南科技信息职业学院", + "12826": "西双版纳职业技术学院", + "12827": "陕西国防工业职业技术学院", + "12828": "西安航空职业技术学院", + "12829": "陕西财经职业技术学院", + "12830": "陕西交通职业技术学院", + "12831": "陕西职业技术学院", + "12832": "兰州外语职业学院", + "12833": "兰州职业技术学院", + "12834": "甘肃警察职业学院", + "12835": "甘肃林业职业技术学院", + "12836": "甘肃工业职业技术学院", + "12837": "宁夏工业职业学院", + "12838": "昌吉职业技术学院", + "12841": "山东服装职业学院", + "12842": "德州科技职业学院", + "12843": "潍坊科技学院", + "12844": "山东力明科技职业学院", + "12845": "湖南邮电职业技术学院", + "12846": "湘潭医卫职业技术学院", + "12847": "郴州职业技术学院", + "12848": "娄底职业技术学院", + "12849": "张家界航空工业职业技术学院", + "12850": "贵州城市职业学院", + "12851": "昆明艺术职业学院", + "12852": "青海警官职业学院", + "12860": "浙江医药高等专科学校", + "12861": "浙江机电职业技术学院", + "12862": "浙江建设职业技术学院", + "12863": "浙江艺术职业学院", + "12864": "浙江经贸职业技术学院", + "12865": "浙江商业职业技术学院", + "12866": "浙江经济职业技术学院", + "12867": "浙江旅游职业学院", + "12868": "浙江育英职业技术学院", + "12869": "浙江警官职业学院", + "12870": "浙江金融职业学院", + "12871": "浙江工业职业技术学院", + "12872": "杭州职业技术学院", + "12874": "嘉兴职业技术学院", + "12875": "湖州职业技术学院", + "12876": "绍兴职业技术学院", + "12877": "衢州职业技术学院", + "12878": "丽水职业技术学院", + "12880": "天津医学高等专科学校", + "12881": "天津开发区职业技术学院", + "12882": "天津艺术职业学院", + "12883": "天津交通职业学院", + "12884": "邢台医学高等专科学校", + "12885": "河北艺术职业学院", + "12887": "河北旅游职业学院", + "12888": "山西机电职业技术学院", + "12890": "山西财贸职业技术学院", + "12891": "山西林业职业技术学院", + "12892": "山西水利职业技术学院", + "12893": "阳泉职业技术学院", + "12894": "内蒙古体育职业学院", + "12895": "辽宁金融职业学院", + "12896": "辽宁轨道交通职业学院", + "12897": "辽宁广告职业学院", + "12898": "辽宁机电职业技术学院", + "12899": "辽宁经济职业技术学院", + "12900": "辽宁石化职业技术学院", + "12901": "吉林司法警官职业学院", + "12902": "吉林电子信息职业技术学院", + "12903": "吉林工业职业技术学院", + "12904": "吉林工程职业学院", + "12905": "鹤岗师范高等专科学校", + "12906": "哈尔滨电力职业技术学院", + "12907": "哈尔滨铁道职业技术学院", + "12908": "大兴安岭职业学院", + "12910": "黑龙江农业经济职业学院", + "12911": "哈尔滨职业技术学院", + "12912": "上海农林职业技术学院", + "12913": "上海邦德职业技术学院", + "12914": "上海兴伟学院", + "12915": "上海中侨职业技术大学", + "12917": "泰州学院", + "12918": "太湖创意职业技术学院", + "12919": "炎黄职业技术学院", + "12920": "南京科技职业学院", + "12921": "正德职业技术学院", + "12922": "钟山职业技术学院", + "12923": "无锡南洋职业技术学院", + "12924": "安徽中医药高等专科学校", + "12925": "安徽医学高等专科学校", + "12926": "亳州学院", + "12927": "泉州华光职业学院", + "12928": "泉州职业技术大学", + "12929": "江西司法警官职业学院", + "12930": "江西陶瓷工艺美术职业技术学院", + "12931": "渤海船舶职业学院", + "12932": "江西旅游商贸职业学院", + "12933": "江西电力职业技术学院", + "12934": "江西环境工程职业学院", + "12936": "江西艺术职业学院", + "12937": "鹰潭职业技术学院", + "12938": "江西应用科技学院", + "12939": "江西信息应用职业技术学院", + "12940": "江西交通职业技术学院", + "12941": "江西财经职业学院", + "12942": "江西应用技术职业学院", + "12943": "江西现代职业技术学院", + "12944": "江西工业工程职业技术学院", + "12945": "山东圣翰财贸职业学院", + "12946": "山东水利职业学院", + "12947": "山东畜牧兽医职业学院", + "12948": "郑州澍青医学高等专科学校", + "12949": "郑州师范学院", + "12950": "焦作师范高等专科学校", + "12951": "湖北中医药高等专科学校", + "12952": "武汉航海职业技术学院", + "12953": "广东邮电职业技术学院", + "12954": "汕头职业技术学院", + "12956": "揭阳职业技术学院", + "12957": "深圳信息职业技术学院", + "12958": "清远职业技术学院", + "12959": "广东工贸职业技术学院", + "12960": "广东司法警官职业学院", + "12961": "广东亚视演艺职业学院", + "12962": "广东省外语艺术职业学院", + "12963": "四川托普信息技术职业学院", + "12964": "四川国际标榜职业学院", + "12965": "成都农业科技职业学院", + "12966": "宜宾职业技术学院", + "12967": "泸州职业技术学院", + "12968": "眉山职业技术学院", + "12969": "成都艺术职业大学", + "12970": "四川职业技术学院", + "12971": "玉溪农业职业技术学院", + "12972": "青海畜牧兽医职业技术学院", + "12973": "青海交通职业技术学院", + "12974": "青海建筑职业技术学院", + "12975": "伊犁职业技术学院", + "12976": "江西机电职业技术学院", + "12977": "武汉铁路职业技术学院", + "12978": "武汉软件工程职业学院", + "12979": "湖北三峡职业技术学院", + "12980": "随州职业技术学院", + "12981": "武汉电力职业技术学院", + "12982": "湖北水利水电职业技术学院", + "12983": "湖北城市建设职业技术学院", + "12984": "武汉警官职业学院", + "12985": "湖北生物科技职业学院", + "12986": "湖北开放职业学院", + "12987": "武汉科技职业学院", + "12988": "武汉外语外事职业学院", + "12989": "武汉信息传播职业技术学院", + "12990": "武昌职业学院", + "12991": "武汉商贸职业学院", + "12992": "闽南科技学院", + "12993": "福州工商学院", + "13001": "宁波财经学院", + "13002": "浙江东方职业技术学院", + "13003": "义乌工商职业技术学院", + "13005": "青岛飞洋职业技术学院", + "13006": "山东英才学院", + "13007": "东营科技职业学院", + "13008": "山东交通职业学院", + "13009": "淄博职业学院", + "13010": "山东外贸职业学院", + "13011": "青岛酒店管理职业技术学院", + "13012": "山东信息职业技术学院", + "13014": "青岛港湾职业技术学院", + "13015": "青岛恒星科技学院", + "13017": "江南影视艺术职业学院", + "13021": "浙大城市学院", + "13022": "浙大宁波理工学院", + "13023": "杭州医学院", + "13025": "浙江纺织服装职业技术学院", + "13026": "杭州科技职业技术学院", + "13027": "浙江长征职业技术学院", + "13028": "嘉兴南洋职业技术学院", + "13029": "浙江广厦建设职业技术大学", + "13030": "杭州万向职业技术学院", + "13031": "长沙环境保护职业技术学院", + "13032": "湖南艺术职业学院", + "13033": "湖南机电职业技术学院", + "13036": "长沙职业技术学院", + "13037": "怀化职业技术学院", + "13038": "岳阳职业技术学院", + "13039": "常德职业技术学院", + "13041": "长沙南方职业学院", + "13042": "潇湘职业学院", + "13043": "湖南化工职业技术学院", + "13044": "湖南城建职业技术学院", + "13045": "湖南石油化工职业技术学院", + "13048": "乐山职业技术学院", + "13049": "雅安职业技术学院", + "13052": "贵州工业职业技术学院", + "13053": "贵州电力职业技术学院", + "13054": "六盘水职业技术学院", + "13055": "铜仁职业技术学院", + "13058": "合肥职业技术学院", + "13059": "滁州职业技术学院", + "13060": "池州职业技术学院", + "13061": "宣城职业技术学院", + "13062": "安徽广播影视职业技术学院", + "13064": "民办合肥滨湖职业技术学院", + "13065": "安徽外国语学院", + "13070": "石家庄财经职业学院", + "13071": "河北交通职业技术学院", + "13072": "河北化工医药职业技术学院", + "13073": "石家庄信息工程职业学院", + "13074": "河北对外经贸职业学院", + "13075": "河北美术学院", + "13086": "宁夏职业技术学院", + "13087": "宁夏工商职业技术学院", + "13088": "宁夏财经职业技术学院", + "13089": "宁夏警官职业学院", + "13093": "阿克苏职业技术学院", + "13094": "巴音郭楞职业技术学院", + "13100": "金肯职业技术学院", + "13101": "常州工业职业技术学院", + "13102": "常州工程职业技术学院", + "13103": "江苏农林职业技术学院", + "13104": "江苏食品药品职业技术学院", + "13105": "建东职业技术学院", + "13106": "南京铁道职业技术学院", + "13107": "徐州工业职业技术学院", + "13108": "江苏信息职业技术学院", + "13110": "宿迁职业技术学院", + "13112": "南京信息职业技术学院", + "13113": "江海职业技术学院", + "13114": "常州机电职业技术学院", + "13115": "厦门工学院", + "13121": "西安思源学院", + "13122": "西安高新科技职业学院", + "13123": "陕西国际商贸学院", + "13124": "西安城市建设职业学院", + "13125": "陕西服装工程学院", + "13136": "云南能源职业技术学院", + "13137": "江阴职业技术学院", + "13138": "广西建设职业技术学院", + "13151": "宁夏建设职业技术学院", + "13161": "长春职业技术学院", + "13171": "临汾职业技术学院", + "13177": "北京师范大学珠海分校", + "13188": "武汉晴川学院", + "13198": "大连理工大学城市学院", + "13201": "沈阳工学院", + "13203": "大连工业大学艺术与信息工程学院", + "13207": "大连科技学院", + "13208": "沈阳城市建设学院", + "13212": "大连医科大学中山学院", + "13213": "锦州医科大学医疗学院", + "13215": "辽宁师范大学海华学院", + "13217": "辽宁理工学院", + "13218": "大连财经学院", + "13220": "沈阳城市学院", + "13234": "湖北大学知行学院", + "13235": "武汉科技大学城市学院", + "13236": "三峡大学科技学院", + "13237": "武汉文理学院", + "13238": "湖北工业大学工程技术学院", + "13239": "武汉工程大学邮电与信息工程学院", + "13240": "武汉纺织大学外经贸学院", + "13241": "武昌工学院", + "13242": "武汉工商学院", + "13245": "长江大学工程技术学院", + "13246": "长江大学文理学院", + "13247": "湖北商贸学院", + "13248": "湖北汽车工业学院科技学院", + "13249": "湖北医药学院药护学院", + "13250": "湖北民族大学科技学院", + "13251": "湖北经济学院法商学院", + "13253": "武汉体育学院体育科技学院", + "13256": "湖北师范大学文理学院", + "13257": "湖北文理学院理工学院", + "13258": "湖北工程学院新技术学院", + "13262": "文华学院", + "13263": "湖北艺术职业学院", + "13264": "武汉交通职业学院", + "13265": "咸宁职业技术学院", + "13266": "长江工程职业技术学院", + "13275": "浙江工业大学之江学院", + "13276": "浙江师范大学行知学院", + "13277": "宁波大学科学技术学院", + "13279": "杭州电子科技大学信息工程学院", + "13280": "浙江理工大学科技与艺术学院", + "13282": "浙江海洋大学东海科学技术学院", + "13283": "浙江农林大学暨阳学院", + "13284": "温州医科大学仁济学院", + "13285": "浙江中医药大学滨江学院", + "13286": "杭州师范大学钱江学院", + "13287": "湖州学院", + "13288": "绍兴文理学院元培学院", + "13289": "温州理工学院", + "13290": "浙江工商大学杭州商学院", + "13291": "嘉兴南湖学院", + "13292": "中国计量大学现代科技学院", + "13294": "浙江财经大学东方学院", + "13296": "黑龙江外国语学院", + "13298": "黑龙江财经学院", + "13299": "哈尔滨石油学院", + "13300": "黑龙江工商学院", + "13301": "哈尔滨远东理工学院", + "13302": "哈尔滨传媒职业学院", + "13303": "哈尔滨剑桥学院", + "13304": "黑龙江工程学院昆仑旅游学院", + "13306": "哈尔滨广厦学院", + "13307": "哈尔滨华德学院", + "13316": "山东胜利职业学院", + "13317": "山东经贸职业学院", + "13318": "山东工业职业学院", + "13319": "山东化工职业学院", + "13320": "青岛黄海学院", + "13321": "青岛求实职业技术学院", + "13322": "山东现代学院", + "13323": "济南职业学院", + "13324": "山东协和学院", + "13325": "宁夏大学新华学院", + "13326": "云南大学滇池学院", + "13328": "云南大学旅游文化学院", + "13329": "昆明理工大学津桥学院", + "13330": "云南师范大学商学院", + "13331": "昆明文理学院", + "13332": "昆明医科大学海源学院", + "13333": "云南艺术学院文华学院", + "13336": "安徽电气工程职业技术学院", + "13337": "安徽冶金科技职业学院", + "13338": "安徽城市管理职业学院", + "13339": "安徽机电职业技术学院", + "13340": "安徽工商职业学院", + "13341": "安徽中澳科技职业学院", + "13342": "阜阳科技职业学院", + "13343": "亳州职业技术学院", + "13344": "安徽国防科技职业学院", + "13345": "安庆职业技术学院", + "13346": "安徽艺术职业学院", + "13355": "烟台工程职业技术学院", + "13356": "山东工程职业技术大学", + "13359": "烟台理工学院", + "13373": "聊城大学东昌学院", + "13378": "青岛城市学院", + "13379": "潍坊理工学院", + "13383": "山东财经大学燕山学院", + "13386": "山东石油化工学院", + "13387": "山东外国语职业技术大学", + "13388": "潍坊工商职业学院", + "13389": "德州职业技术学院", + "13390": "枣庄科技职业学院", + "13391": "河北科技学院", + "13392": "保定电力职业技术学院", + "13393": "河北机电职业技术学院", + "13394": "渤海石油职业学院", + "13395": "廊坊职业技术学院", + "13396": "唐山科技职业技术学院", + "13397": "石家庄邮电职业技术学院", + "13398": "河北公安警察职业学院", + "13399": "石家庄工商职业学院", + "13400": "石家庄理工职业学院", + "13401": "石家庄医学高等专科学校", + "13402": "河北外国语学院", + "13403": "石家庄科技信息职业学院", + "13404": "河北大学工商学院", + "13408": "华北理工大学轻工学院", + "13409": "河北科技大学理工学院", + "13411": "河北师范大学汇华学院", + "13414": "河北经贸大学经济管理学院", + "13415": "河北医科大学临床学院", + "13417": "华北电力大学科技学院", + "13418": "江西服装学院", + "13419": "江西科技职业学院", + "13420": "南昌职业大学", + "13421": "南昌工学院", + "13422": "江西外语外贸职业学院", + "13423": "江西工业贸易职业技术学院", + "13424": "宜春职业技术学院", + "13425": "江西应用工程职业学院", + "13426": "江西生物科技职业学院", + "13427": "江西建设职业技术学院", + "13428": "抚州职业技术学院", + "13429": "南昌大学科学技术学院", + "13430": "南昌大学共青学院", + "13431": "华东交通大学理工学院", + "13432": "东华理工大学长江学院", + "13433": "南昌航空大学科技学院", + "13434": "江西理工大学应用科学学院", + "13435": "景德镇艺术职业大学", + "13436": "江西农业大学南昌商学院", + "13437": "江西中医药大学科技学院", + "13438": "江西师范大学科学技术学院", + "13439": "赣南师范大学科技学院", + "13440": "江西科技师范大学理工学院", + "13441": "江西财经大学现代经济管理学院", + "13447": "黑龙江生物科技职业学院", + "13448": "黑龙江商业职业学院", + "13449": "黑龙江公安警官职业学院", + "13450": "黑龙江信息技术职业学院", + "13451": "哈尔滨城市职业学院", + "13453": "黑龙江农垦科技职业学院", + "13468": "阳光学院", + "13469": "厦门大学嘉庚学院", + "13470": "福州大学至诚学院", + "13471": "集美大学诚毅学院", + "13472": "福建师范大学协和学院", + "13497": "郑州财经学院", + "13498": "黄河交通学院", + "13499": "河南检察职业学院", + "13500": "商丘工学院", + "13501": "河南大学民生学院", + "13502": "中原科技学院", + "13503": "信阳学院", + "13504": "安阳学院", + "13505": "新乡医学院三全学院", + "13506": "新乡工程学院", + "13507": "郑州工商学院", + "13508": "郑州经贸学院", + "13510": "西北师范大学知行学院", + "13511": "兰州工商学院", + "13512": "兰州财经大学长青学院", + "13514": "兰州博文科技学院", + "13515": "兰州信息科技学院", + "13518": "武威职业学院", + "13519": "甘肃交通职业技术学院", + "13520": "广西警察学院", + "13522": "广西现代职业技术学院", + "13523": "北海职业学院", + "13524": "北海艺术设计学院", + "13526": "桂林山水职业学院", + "13528": "山西职业技术学院", + "13530": "山西金融职业学院", + "13532": "太原城市职业技术学院", + "13533": "山西大学商务学院", + "13534": "山西工学院", + "13535": "山西农业大学信息学院", + "13537": "山西师范大学现代文理学院", + "13538": "中北大学信息商务学院", + "13541": "山西信息职业技术学院", + "13548": "重庆人文科技学院", + "13558": "新疆理工学院", + "13559": "新疆农业大学科学技术学院", + "13560": "新疆第二医学院", + "13561": "新疆科技学院", + "13562": "新疆建设职业技术学院", + "13564": "河南质量工程职业学院", + "13565": "郑州信息科技职业学院", + "13566": "陕西铁路工程职业技术学院", + "13567": "宝鸡职业技术学院", + "13568": "陕西航空职业技术学院", + "13569": "西安交通工程学院", + "13570": "陕西电子信息职业技术学院", + "13571": "无锡太湖学院", + "13573": "金陵科技学院", + "13575": "海南软件职业技术学院", + "13576": "海南政法职业学院", + "13577": "海南外国语职业学院", + "13578": "河北工程大学科信学院", + "13579": "中国矿业大学徐海学院", + "13584": "河北工业大学城市学院", + "13588": "重庆外语外事学院", + "13589": "重庆对外经贸学院", + "13590": "重庆财经学院", + "13591": "重庆工商大学派斯学院", + "13592": "燕山大学里仁学院", + "13593": "石家庄铁道大学四方学院", + "13594": "河北地质大学华信学院", + "13595": "河北农业大学现代科技学院", + "13596": "华北理工大学冀唐学院", + "13597": "太原科技大学华科学院", + "13598": "山西医科大学晋祠学院", + "13599": "大连艺术学院", + "13600": "长春光华学院", + "13601": "长春工业大学人文信息学院", + "13602": "长春理工大学光电信息学院", + "13603": "长春财经学院", + "13604": "吉林建筑科技学院", + "13605": "长春建筑学院", + "13606": "长春科技学院", + "13607": "吉林动画学院", + "13608": "山西财经大学华商学院", + "13609": "辽宁中医药大学杏林学院", + "13610": "辽宁何氏医学院", + "13611": "蚌埠工商学院", + "13612": "安徽大学江淮学院", + "13613": "安徽信息工程学院", + "13614": "马鞍山学院", + "13615": "合肥城市学院", + "13616": "合肥经济学院", + "13617": "安徽师范大学皖江学院", + "13618": "安徽医科大学临床医学院", + "13619": "阜阳师范大学信息工程学院", + "13620": "淮北理工学院", + "13621": "沈阳科技学院", + "13622": "吉林师范大学博达学院", + "13623": "长春大学旅游学院", + "13624": "泰山科技学院", + "13627": "重庆移通学院", + "13628": "新疆政法学院", + "13629": "首都师范大学科德学院", + "13630": "北京工商大学嘉华学院", + "13631": "大连东软信息学院", + "13632": "上海视觉艺术学院", + "13634": "武汉学院", + "13635": "长沙理工大学城南学院", + "13636": "上海外国语大学贤达经济人文学院", + "13637": "温州商学院", + "13638": "广西大学行健文理学院", + "13639": "柳州工学院", + "13640": "广西民族大学相思湖学院", + "13641": "广西师范大学漓江学院", + "13642": "南宁师范大学师园学院", + "13643": "广西中医药大学赛恩斯新医药学院", + "13644": "桂林电子科技大学信息科技学院", + "13645": "桂林理工大学博文管理学院", + "13646": "南京大学金陵学院", + "13647": "贵州中医药大学时珍学院", + "13648": "贵州财经大学商务学院", + "13649": "贵州大学科技学院", + "13650": "贵州大学明德学院", + "13651": "贵州民族大学人文科技学院", + "13652": "贵州师范大学求是学院", + "13653": "遵义医科大学医学与科技学院", + "13654": "南京理工大学紫金学院", + "13655": "南京航空航天大学金城学院", + "13656": "广州华立学院", + "13657": "广州大学松田学院", + "13658": "天津外国语大学滨海外事学院", + "13659": "天津体育学院运动与文化艺术学院", + "13660": "天津商业大学宝德学院", + "13661": "天津医科大学临床医学院", + "13662": "东北师范大学人文学院", + "13663": "南开大学滨海学院", + "13664": "武汉工程科技学院", + "13665": "电子科技大学成都学院", + "13666": "武汉华夏理工学院", + "13667": "广州商学院", + "13668": "成都理工大学工程技术学院", + "13669": "四川传媒学院", + "13670": "成都银杏酒店管理学院", + "13671": "成都文理学院", + "13672": "四川工商学院", + "13673": "四川外国语大学成都学院", + "13674": "青海大学昆仑学院", + "13675": "北京理工大学珠海学院", + "13676": "贵州医科大学神奇民族医药学院", + "13677": "西安交通大学城市学院", + "13678": "西北大学现代学院", + "13679": "西安建筑科技大学华清学院", + "13680": "西安财经大学行知学院", + "13681": "陕西科技大学镐京学院", + "13682": "西安工商学院", + "13683": "延安大学西安创新学院", + "13684": "珠海科技学院", + "13685": "西安电子科技大学长安学院", + "13686": "武汉传媒学院", + "13687": "南京传媒学院", + "13688": "浙江邮电职业技术学院", + "13690": "河北司法警官职业学院", + "13691": "山西工商学院", + "13692": "山西体育职业学院", + "13693": "山西警官职业学院", + "13694": "山西国际商务职业学院", + "13695": "潞安职业技术学院", + "13696": "太原旅游职业学院", + "13697": "山西旅游职业学院", + "13698": "山西管理职业学院", + "13699": "乌兰察布职业学院", + "13700": "天津工业职业学院", + "13701": "天津石油职业技术学院", + "13702": "天津城市职业学院", + "13703": "北京科技职业学院", + "13705": "成都医学院", + "13706": "吉林医药学院", + "13707": "广东文艺职业学院", + "13708": "广州体育职业技术学院", + "13709": "广州工程技术职业学院", + "13710": "中山火炬职业技术学院", + "13711": "江门职业技术学院", + "13712": "茂名职业技术学院", + "13713": "珠海城市职业技术学院", + "13714": "广州工商学院", + "13715": "广州涉外经济职业技术学院", + "13716": "广州南洋理工职业学院", + "13717": "广州科技职业技术大学", + "13718": "惠州经济职业技术学院", + "13719": "广东科技学院", + "13720": "广东理工学院", + "13721": "广东工商职业技术大学", + "13726": "新疆现代职业技术学院", + "13727": "新疆天山职业技术大学", + "13728": "北京培黎职业学院", + "13729": "黑龙江旅游职业技术学院", + "13730": "黑龙江三江美术职业学院", + "13731": "黑龙江生态工程职业学院", + "13732": "黑龙江能源职业学院", + "13734": "重庆城市职业学院", + "13735": "重庆水利电力职业技术学院", + "13736": "陕西邮电职业技术学院", + "13737": "西安海棠职业学院", + "13738": "西安汽车职业大学", + "13739": "西安健康工程职业学院", + "13740": "通辽职业学院", + "13741": "科尔沁艺术职业学院", + "13742": "宁波卫生职业技术学院", + "13743": "白城医学高等专科学校", + "13744": "黑河学院", + "13745": "山西电力职业技术学院", + "13746": "台州科技职业学院", + "13747": "上海电影艺术职业学院", + "13748": "无锡城市职业技术学院", + "13749": "无锡工艺职业技术学院", + "13750": "金山职业技术学院", + "13751": "苏州健雄职业技术学院", + "13752": "盐城工业职业技术学院", + "13753": "江苏财经职业技术学院", + "13754": "扬州工业职业技术学院", + "13756": "云南国防工业职业技术学院", + "13757": "云南机电职业技术学院", + "13758": "云南林业职业技术学院", + "13759": "云南城市建设职业学院", + "13760": "马鞍山师范高等专科学校", + "13761": "云南工程职业学院", + "13762": "福州外语外贸学院", + "13763": "福建江夏学院", + "13764": "闽北职业技术学院", + "13765": "福州黎明职业技术学院", + "13766": "泉州信息工程学院", + "13767": "厦门演艺职业学院", + "13768": "厦门华天涉外职业技术学院", + "13769": "福州科技职业技术学院", + "13770": "泉州经贸职业技术学院", + "13772": "湄洲湾职业技术学院", + "13773": "福州理工学院", + "13774": "豫章师范学院", + "13775": "江西中医药高等专科学校", + "13776": "江西软件职业技术大学", + "13777": "淄博师范高等专科学校", + "13778": "山东中医药高等专科学校", + "13779": "沧州医学高等专科学校", + "13780": "漯河医学高等专科学校", + "13781": "南阳医学高等专科学校", + "13782": "商丘医学高等专科学校", + "13783": "郑州电子信息职业技术学院", + "13784": "信阳职业技术学院", + "13785": "嵩山少林武术职业学院", + "13786": "郑州工业安全职业学院", + "13787": "永城职业学院", + "13788": "河南经贸职业学院", + "13789": "河南交通职业技术学院", + "13790": "河南农业职业学院", + "13791": "郑州旅游职业学院", + "13792": "郑州职业技术学院", + "13793": "江汉艺术职业学院", + "13795": "武汉工业职业技术学院", + "13796": "武汉民政职业学院", + "13797": "湖北黄冈应急管理职业技术学院", + "13798": "湖北财税职业学院", + "13799": "黄冈科技职业学院", + "13800": "湖北国土资源职业学院", + "13801": "湖北生态工程职业技术学院", + "13802": "湖南中医药高等专科学校", + "13804": "湖南民族职业学院", + "13805": "湘西民族职业技术学院", + "13806": "长沙师范学院", + "13807": "湖南财经工业职业技术学院", + "13808": "益阳职业技术学院", + "13809": "湖南应用技术学院", + "13810": "肇庆医学高等专科学校", + "13811": "琼台师范学院", + "13812": "四川商务职业学院", + "13813": "四川司法警官职业学院", + "13814": "广安职业技术学院", + "13815": "四川信息职业技术学院", + "13816": "四川工业科技学院", + "13817": "黔西南民族职业技术学院", + "13818": "贵州轻工职业技术学院", + "13819": "陕西警官职业学院", + "13820": "银川能源学院", + "13821": "忻州职业技术学院", + "13822": "河北女子职业技术学院", + "13824": "内蒙古交通职业技术学院", + "13827": "广西经贸职业技术学院", + "13828": "广西工商职业技术学院", + "13829": "广西演艺职业学院", + "13830": "广西外国语学院", + "13831": "广西电力职业技术学院", + "13836": "湖南信息学院", + "13842": "南京理工大学泰州科技学院", + "13843": "南京师范大学泰州学院", + "13844": "东莞城市学院", + "13845": "安徽财贸职业学院", + "13846": "安徽国际商务职业学院", + "13847": "安徽公安职业学院", + "13848": "安徽林业职业技术学院", + "13849": "安徽审计职业学院", + "13850": "安徽新闻出版职业技术学院", + "13851": "安徽邮电职业技术学院", + "13852": "安徽工业职业技术学院", + "13853": "浙江国际海运职业技术学院", + "13854": "浙江体育职业技术学院", + "13855": "济南工程职业技术学院", + "13856": "山东电子职业技术学院", + "13857": "山东华宇工学院", + "13858": "山东旅游职业学院", + "13859": "山东铝业职业学院", + "13860": "山东杏林科技职业学院", + "13861": "泰山职业技术学院", + "13862": "山西同文职业技术学院", + "13863": "天津铁道职业技术学院", + "13864": "包头钢铁职业技术学院", + "13866": "江西经济管理职业学院", + "13867": "江西制造职业技术学院", + "13868": "江西工程职业学院", + "13869": "江西青年职业学院", + "13870": "上饶职业技术学院", + "13871": "江西航空职业技术学院", + "13872": "江西农业工程职业学院", + "13873": "赣西科技职业学院", + "13874": "山东外事职业大学", + "13875": "海南经贸职业技术学院", + "13876": "海南工商职业学院", + "13885": "河南信息统计职业学院", + "13889": "河南林业职业学院", + "13891": "保定理工学院", + "13892": "三亚学院", + "13893": "上海师范大学天华学院", + "13894": "西安明德理工学院", + "13895": "燕京理工学院", + "13896": "天津师范大学津沽学院", + "13897": "天津理工大学中环信息学院", + "13898": "北京科技大学天津学院", + "13899": "北京中医药大学东方学院", + "13900": "辽宁财贸学院", + "13901": "北京邮电大学世纪学院", + "13902": "广州新华学院", + "13903": "四川大学锦城学院", + "13904": "北京工业大学耿丹学院", + "13905": "南京工业大学浦江学院", + "13906": "南京师范大学中北学院", + "13909": "云南工商学院", + "13911": "天津工艺美术职业学院", + "13912": "广州现代信息工程职业技术学院", + "13913": "晋中职业技术学院", + "13914": "山西华澳商贸职业学院", + "13915": "乌海职业技术学院", + "13916": "长春信息技术职业学院", + "13917": "松原职业技术学院", + "13918": "七台河职业学院", + "13919": "广东理工职业学院", + "13920": "广西城市职业大学", + "13921": "湖南工艺美术职业学院", + "13922": "湖南九嶷职业技术学院", + "13923": "湖南理工职业技术学院", + "13924": "湖南交通工程学院", + "13925": "湖南软件职业技术大学", + "13926": "新疆交通职业技术学院", + "13927": "广州华南商贸职业学院", + "13928": "广州华立科技职业学院", + "13929": "广州城市职业学院", + "13930": "广东工程职业技术学院", + "13931": "三亚航空旅游职业学院", + "13932": "陕西经济管理职业技术学院", + "13933": "兰州资源环境职业技术学院", + "13934": "山西运城农业职业技术学院", + "13935": "黑龙江民族职业学院", + "13936": "河南工业贸易职业学院", + "13937": "湖南汽车工程职业学院", + "13938": "长沙电力职业技术学院", + "13939": "湖南水利水电职业技术学院", + "13940": "湖南现代物流职业技术学院", + "13941": "湖南高速铁路职业技术学院", + "13942": "湖南铁路科技职业技术学院", + "13943": "广州铁路职业技术学院", + "13945": "西安铁路职业技术学院", + "13946": "咸阳职业技术学院", + "13947": "西安职业技术学院", + "13948": "商洛职业技术学院", + "13949": "汉中职业技术学院", + "13950": "延安职业技术学院", + "13951": "渭南职业技术学院", + "13952": "安康职业技术学院", + "13953": "铜川职业技术学院", + "13954": "甘肃农业职业技术学院", + "13955": "甘肃畜牧工程职业技术学院", + "13956": "新疆石河子职业技术学院", + "13957": "辽宁传媒学院", + "13958": "大连软件职业学院", + "13959": "大连翻译职业学院", + "13960": "辽宁商贸职业学院", + "13961": "大连枫叶职业技术学院", + "13962": "苏州百年职业学院", + "13963": "昆山登云科技职业学院", + "13964": "南京视觉艺术职业学院", + "13965": "江西卫生职业学院", + "13966": "山东药品食品职业学院", + "13967": "重庆工商职业学院", + "13968": "重庆应用技术职业学院", + "13969": "福建生物工程职业技术学院", + "13970": "福建艺术职业学院", + "13972": "福建幼儿师范高等专科学校", + "13973": "厦门城市职业学院", + "13975": "泉州工艺美术职业学院", + "13976": "三明医学科技职业学院", + "13977": "宁德职业技术学院", + "13978": "福州软件职业技术学院", + "13979": "厦门兴才职业技术学院", + "13980": "南京医科大学康达学院", + "13981": "南京中医药大学翰林学院", + "13982": "南京信息工程大学滨江学院", + "13983": "苏州大学文正学院", + "13984": "苏州大学应用技术学院", + "13985": "苏州科技大学天平学院", + "13986": "江苏大学京江学院", + "13987": "扬州大学广陵学院", + "13988": "江苏师范大学科文学院", + "13989": "南京邮电大学通达学院", + "13990": "南京财经大学红山学院", + "13991": "江苏科技大学苏州理工学院", + "13992": "常州大学怀德学院", + "13993": "南通大学杏林学院", + "13994": "南京审计大学金审学院", + "13995": "青岛工学院", + "13997": "青岛农业大学海都学院", + "13998": "齐鲁理工学院", + "13999": "山东财经大学东方学院", + "14000": "江苏城市职业学院", + "14001": "南京城市职业学院", + "14002": "烟台科技学院", + "14003": "商丘学院", + "14004": "四川文化传媒职业学院", + "14005": "四川华新现代职业学院", + "14006": "四川铁道职业学院", + "14007": "四川艺术职业学院", + "14008": "重庆三峡医药高等专科学校", + "14009": "重庆医药高等专科学校", + "14010": "四川中医药高等专科学校", + "14011": "遵义医药高等专科学校", + "14012": "曲靖医学高等专科学校", + "14013": "楚雄医药高等专科学校", + "14014": "保山中医药高等专科学校", + "14015": "丽江师范高等专科学校", + "14016": "德宏师范高等专科学校", + "14017": "大庆医学高等专科学校", + "14020": "天津城市建设管理职业技术学院", + "14021": "天津生物工程职业技术学院", + "14022": "天津海运职业学院", + "14025": "湖南安全技术职业学院", + "14026": "广西英华国际职业学院", + "14029": "陕西工商职业学院", + "14030": "西安信息职业大学", + "14031": "陕西旅游烹饪职业学院", + "14032": "云南新兴职业学院", + "14034": "长安大学兴华学院", + "14035": "武汉设计工程学院", + "14037": "西南财经大学天府学院", + "14038": "天津大学仁爱学院", + "14039": "四川大学锦江学院", + "14040": "郑州商学院", + "14041": "西安理工大学高科学院", + "14042": "西安科技大学高新学院", + "14043": "四川文化艺术学院", + "14045": "西南科技大学城市学院", + "14046": "福建农林大学金山学院", + "14047": "石家庄经济职业学院", + "14048": "内蒙古科技职业学院", + "14049": "内蒙古北方职业技术学院", + "14050": "赤峰职业技术学院", + "14051": "内蒙古经贸外语职业学院", + "14052": "吉林铁道职业技术学院", + "14053": "黑龙江交通职业技术学院", + "14055": "哈尔滨应用职业技术学院", + "14056": "南京机电职业技术学院", + "14058": "民办合肥财经职业学院", + "14059": "厦门软件职业技术学院", + "14060": "福建体育职业技术学院", + "14061": "三峡电力职业学院", + "14062": "郑州电力职业技术学院", + "14063": "广东科贸职业学院", + "14065": "广州科技贸易职业学院", + "14066": "中山职业技术学院", + "14067": "柳州城市职业学院", + "14068": "百色职业学院", + "14069": "重庆青年职业技术学院", + "14070": "四川科技职业学院", + "14071": "湖南电气职业技术学院", + "14072": "湖南外国语职业学院", + "14073": "北京经济管理职业学院", + "14075": "北京劳动保障职业学院", + "14076": "辽宁装备制造职业技术学院", + "14078": "山东商务职业学院", + "14079": "山东轻工职业学院", + "14080": "山东城市建设职业学院", + "14081": "烟台汽车工程职业学院", + "14082": "山东司法警官职业学院", + "14083": "贵阳护理职业学院", + "14085": "西藏职业技术学院", + "14086": "四川文化产业职业学院", + "14087": "天津财经大学珠江学院", + "14088": "温州科技职业学院", + "14089": "浙江汽车职业技术学院", + "14090": "浙江横店影视职业学院", + "14091": "四川财经职业学院", + "14092": "滇西科技师范学院", + "14093": "运城幼儿师范高等专科学校", + "14095": "黑龙江幼儿师范高等专科学校", + "14096": "安庆医药高等专科学校", + "14097": "益阳医学高等专科学校", + "14098": "合肥师范学院", + "14099": "湖北第二师范学院", + "14100": "山东政法学院", + "14101": "太原工业学院", + "14102": "天津广播影视职业学院", + "14103": "冀中职业学院", + "14105": "山西老区职业技术学院", + "14106": "辽宁地质工程职业学院", + "14107": "白城职业技术学院", + "14108": "哈尔滨科学技术职业学院", + "14110": "漳州城市职业学院", + "14111": "厦门南洋职业学院", + "14112": "厦门东海职业技术学院", + "14113": "漳州科技职业学院", + "14115": "漳州理工职业学院", + "14116": "武夷山职业学院", + "14117": "漳州卫生职业学院", + "14118": "菏泽家政职业学院", + "14119": "湖北科技职业学院", + "14120": "湖北青年职业学院", + "14121": "湖南都市职业学院", + "14122": "湖南电子科技职业学院", + "14123": "广州珠江职业技术学院", + "14125": "广州松田职业学院", + "14126": "广东文理职业学院", + "14127": "广西工程职业学院", + "14128": "重庆财经职业学院", + "14129": "贵阳职业技术学院", + "14130": "云南锡业职业技术学院", + "14131": "甘肃钢铁职业技术学院", + "14132": "安徽涉外经济职业学院", + "14133": "安徽绿海商务职业学院", + "14135": "合肥共达职业技术学院", + "14136": "广州城建职业学院", + "14137": "蚌埠经济技术职业学院", + "14138": "新疆职业大学", + "14139": "北京社会管理职业学院(民政部培训中心)", + "14140": "北京艺术传媒职业学院", + "14158": "石家庄人民医学高等专科学校", + "14160": "宿迁学院", + "14163": "苏州高博软件技术职业学院", + "14165": "民办安徽旅游职业学院", + "14166": "江西新能源科技职业学院", + "14167": "江西枫林涉外经贸职业学院", + "14168": "江西泰豪动漫职业学院", + "14169": "河南科技职业大学", + "14170": "广西理工职业技术学院", + "14171": "梧州职业学院", + "14172": "海南科技职业大学", + "14173": "重庆科创职业学院", + "14175": "四川城市职业学院", + "14176": "四川现代职业学院", + "14177": "山西经贸职业学院", + "14178": "佳木斯职业学院", + "14179": "上海体育职业学院", + "14180": "南京旅游职业学院", + "14181": "河南建筑职业技术学院", + "14182": "湖南国防工业职业技术学院", + "14183": "重庆建筑工程职业学院", + "14185": "河北正定师范高等专科学校", + "14186": "朔州职业技术学院", + "14187": "包头铁道职业技术学院", + "14188": "辽宁铁道职业技术学院", + "14189": "辽宁建筑职业学院", + "14190": "长白山职业技术学院", + "14191": "徽商职业学院", + "14192": "马鞍山职业技术学院", + "14193": "山东传媒职业学院", + "14195": "临沂职业学院", + "14196": "枣庄职业学院", + "14197": "湖北工程职业学院", + "14198": "毕节职业技术学院", + "14199": "内蒙古大学创业学院", + "14200": "银川科技学院", + "14201": "北京第二外国语学院中瑞酒店管理学院", + "14202": "沧州交通学院", + "14203": "皖江工学院", + "14205": "内蒙古师范大学鸿德学院", + "14206": "同济大学浙江学院", + "14207": "上海财经大学浙江学院", + "14208": "河北劳动关系职业学院", + "14209": "大连航运职业技术学院", + "14210": "安徽现代信息工程职业学院", + "14211": "广西经济职业学院", + "14212": "云南经贸外事职业学院", + "14213": "石家庄科技职业学院", + "14215": "北京体育职业学院", + "14219": "乌兰察布医学高等专科学校", + "14220": "广西幼儿师范高等专科学校", + "14221": "四川幼儿师范高等专科学校", + "14222": "西安医学高等专科学校", + "14223": "贵州师范学院", + "14225": "河北东方学院", + "14226": "运城职业技术大学", + "14227": "大连装备制造职业技术学院", + "14228": "大连汽车职业技术学院", + "14229": "安徽矿业职业技术学院", + "14230": "合肥信息技术职业学院", + "14231": "泉州海洋职业学院", + "14232": "泉州轻工职业学院", + "14233": "漯河食品职业学院", + "14235": "郑州城市职业学院", + "14236": "三亚理工职业学院", + "14237": "重庆电讯职业学院", + "14238": "重庆能源职业学院", + "14239": "云南三鑫职业技术学院", + "14240": "辽宁现代服务职业技术学院", + "14241": "江西冶金职业技术学院", + "14242": "山东理工职业学院", + "14243": "安阳职业技术学院", + "14245": "新乡职业技术学院", + "14246": "重庆商务职业学院", + "14247": "山西铁道职业技术学院", + "14248": "鄂尔多斯职业学院", + "14249": "江西管理职业学院", + "14250": "江西传媒职业学院", + "14251": "驻马店职业技术学院", + "14252": "贵州职业技术学院", + "14253": "德宏职业学院", + "14255": "江苏卫生健康职业学院", + "14256": "苏州信息职业技术学院", + "14257": "厦门安防科技职业学院", + "14258": "三峡旅游职业技术学院", + "14259": "沧州幼儿师范高等专科学校", + "14260": "宣化科技职业学院", + "14261": "山东文化产业职业学院", + "14262": "西南交通大学希望学院", + "14263": "东莞职业技术学院", + "14265": "广东南方职业学院", + "14266": "广州华商职业学院", + "14267": "重庆交通职业学院", + "14268": "广州华夏职业学院", + "14269": "浙江农业商贸职业学院", + "14270": "晋中师范高等专科学校", + "14271": "阳泉师范高等专科学校", + "14272": "黑龙江护理高等专科学校", + "14273": "桐城师范高等专科学校", + "14275": "浙江外国语学院", + "14276": "齐鲁师范学院", + "14277": "山东青年政治学院", + "14278": "广东第二师范学院", + "14279": "北京交通运输职业学院", + "14280": "廊坊燕京职业技术学院", + "14281": "承德护理职业学院", + "14282": "内蒙古工业职业学院", + "14283": "呼伦贝尔职业技术学院", + "14285": "满洲里俄语职业学院", + "14286": "辽宁冶金职业技术学院", + "14287": "辽宁工程职业学院", + "14288": "辽宁城市建设职业技术学院", + "14289": "辽宁医药职业学院", + "14290": "铁岭卫生职业学院", + "14291": "吉林科技职业技术学院", + "14293": "宿迁泽达职业技术学院", + "14295": "苏州工业园区服务外包职业学院", + "14296": "黄山职业技术学院", + "14297": "滁州城市职业学院", + "14298": "安徽汽车职业技术学院", + "14299": "皖西卫生职业学院", + "14300": "焦作工贸职业学院", + "14301": "许昌陶瓷职业学院", + "14302": "郑州理工职业学院", + "14303": "郑州信息工程职业学院", + "14305": "长垣烹饪职业技术学院", + "14306": "开封文化艺术职业学院", + "14307": "河南应用技术职业学院", + "14308": "河南艺术职业学院", + "14309": "湖南高尔夫旅游职业学院", + "14310": "湖南工商职业学院", + "14311": "广东环境保护工程职业学院", + "14312": "广西科技职业学院", + "14313": "广西卫生职业技术学院", + "14315": "重庆化工职业学院", + "14316": "重庆旅游职业学院", + "14317": "云南商务职业学院", + "14318": "榆林职业技术学院", + "14319": "甘肃机电职业技术学院", + "14320": "青岛远洋船员职业学院", + "14321": "江西工商职业技术学院", + "14322": "湖南三一工业职业技术学院", + "14323": "四川长江职业学院", + "14325": "南方科技大学", + "14327": "青岛电影学院", + "14328": "石家庄幼儿师范高等专科学校", + "14329": "徐州幼儿师范高等专科学校", + "14330": "合肥幼儿师范高等专科学校", + "14331": "泉州幼儿师范高等专科学校", + "14332": "济南幼儿师范高等专科学校", + "14333": "郑州升达经贸管理学院", + "14335": "廊坊卫生职业学院", + "14336": "山西青年职业学院", + "14337": "内蒙古能源职业学院", + "14338": "赤峰工业职业技术学院", + "14339": "阿拉善职业技术学院", + "14340": "延边职业技术学院", + "14342": "安徽扬子职业技术学院", + "14343": "济南护理职业学院", + "14345": "泰山护理职业学院", + "14346": "山东海事职业学院", + "14347": "潍坊护理职业学院", + "14348": "河南机电职业学院", + "14349": "河南护理职业学院", + "14350": "许昌电气职业学院", + "14351": "信阳涉外职业技术学院", + "14352": "鹤壁汽车工程职业学院", + "14353": "南阳职业学院", + "14355": "天门职业学院", + "14356": "湖北体育职业学院", + "14357": "襄阳汽车职业技术学院", + "14358": "长沙卫生职业学院", + "14359": "湖南食品药品职业学院", + "14360": "湖南有色金属职业技术学院", + "14361": "广东青年职业学院", + "14362": "广州东华职业学院", + "14363": "广东创新科技职业学院", + "14365": "重庆安全技术职业学院", + "14366": "重庆公共运输职业学院", + "14367": "重庆艺术工程职业学院", + "14368": "重庆轻工职业学院", + "14369": "重庆电信职业学院", + "14370": "重庆经贸职业学院", + "14371": "贵州盛华职业学院", + "14372": "昆明卫生职业学院", + "14373": "云南现代职业技术学院", + "14375": "甘肃有色冶金职业技术学院", + "14376": "白银矿冶职业技术学院", + "14377": "宁夏葡萄酒与防沙治沙职业技术学院", + "14378": "安徽黄梅戏艺术职业学院", + "14379": "潍坊工程职业学院", + "14380": "郑州商贸旅游职业学院", + "14381": "云南旅游职业学院", + "14382": "河南推拿职业学院", + "14383": "洛阳职业技术学院", + "14385": "沈阳北软信息职业技术学院", + "14386": "四川三河职业学院", + "14387": "内蒙古美术职业学院", + "14388": "重庆第二师范学院", + "14389": "成都师范学院", + "14390": "陕西学前师范学院", + "14391": "郑州幼儿师范高等专科学校", + "14392": "安阳幼儿师范高等专科学校", + "14393": "川北幼儿师范高等专科学校", + "14394": "上海民航职业技术学院", + "14395": "北京卫生职业学院", + "14396": "河北轨道运输职业技术学院", + "14397": "运城护理职业学院", + "14400": "齐齐哈尔理工职业学院", + "14401": "徐州生物工程职业技术学院", + "14402": "景德镇陶瓷职业技术学院", + "14403": "共青科技职业学院", + "14405": "郑州黄河护理职业学院", + "14406": "湖南吉利汽车职业技术学院", + "14407": "广东舞蹈戏剧职业学院", + "14408": "惠州卫生职业技术学院", + "14409": "四川卫生康复职业学院", + "14410": "四川电影电视学院", + "14411": "四川汽车职业技术学院", + "14412": "贵州工商职业学院", + "14413": "红河卫生职业学院", + "14415": "云南外事外语职业学院", + "14416": "新疆体育职业技术学院", + "14417": "新疆应用职业技术学院", + "14418": "安徽粮食工程职业学院", + "14419": "安徽卫生健康职业学院", + "14420": "合肥科技职业学院", + "14421": "新疆师范高等专科学校", + "14423": "上海科技大学", + "14425": "哈尔滨幼儿师范高等专科学校", + "14426": "吉林城市职业技术学院", + "14427": "广东信息工程职业学院", + "14428": "重庆幼儿师范高等专科学校", + "14430": "中国科学院大学", + "14431": "浙江特殊教育职业学院", + "14432": "河北中医学院", + "14434": "山西传媒学院", + "14435": "营口理工学院", + "14436": "江苏第二师范学院", + "14437": "南昌师范学院", + "14438": "山东管理学院", + "14439": "山东农业工程学院", + "14440": "贵州理工学院", + "14458": "张家口学院", + "14460": "保定幼儿师范高等专科学校", + "14461": "运城师范高等专科学校", + "14462": "朔州师范高等专科学校", + "14463": "内蒙古民族幼儿师范高等专科学校", + "14464": "辽宁民族师范高等专科学校", + "14465": "赣州师范高等专科学校", + "14466": "河南医学高等专科学校", + "14467": "湖北幼儿师范高等专科学校", + "14468": "湖南幼儿师范高等专科学校", + "14469": "贵阳幼儿师范高等专科学校", + "14470": "铜仁幼儿师范高等专科学校", + "14471": "河北工艺美术职业学院", + "14472": "渤海理工职业学院", + "14473": "辽宁轻工职业学院", + "14475": "江苏商贸职业学院", + "14476": "江西水利职业学院", + "14477": "菏泽职业学院", + "14478": "郑州财税金融职业学院", + "14479": "南阳农业职业学院", + "14480": "洛阳科技职业学院", + "14481": "广西培贤国际职业学院", + "14482": "重庆文化艺术职业学院", + "14483": "巴中职业技术学院", + "14484": "四川希望汽车职业学院", + "14485": "四川电子机械职业技术学院", + "14486": "四川文轩职业学院", + "14487": "大理农林职业技术学院", + "14488": "陕西艺术职业学院", + "14489": "新疆铁道职业技术学院", + "14490": "闽江师范高等专科学校", + "14491": "重庆科技职业学院", + "14492": "浙江安防职业技术学院", + "14493": "南通师范高等专科学校", + "14494": "宜春幼儿师范高等专科学校", + "14495": "湘南幼儿师范高等专科学校", + "14496": "川南幼儿师范高等专科学校", + "14497": "黔南民族幼儿师范高等专科学校", + "14498": "宁夏幼儿师范高等专科学校", + "14499": "毕节医学高等专科学校", + "14500": "吕梁职业技术学院", + "14501": "鄂尔多斯生态环境职业学院", + "14502": "皖北卫生职业学院", + "14503": "泉州工程职业技术学院", + "14504": "吉安职业技术学院", + "14505": "江西洪州职业学院", + "14506": "山东艺术设计职业学院", + "14507": "威海海洋职业学院", + "14508": "湖南劳动人事职业学院", + "14509": "广东生态工程职业学院", + "14510": "惠州城市职业学院", + "14511": "广东碧桂园职业学院", + "14512": "广西金融职业技术学院", + "14513": "四川护理职业学院", + "14514": "成都工业职业技术学院", + "14515": "四川西南航空职业学院", + "14516": "贵州建设职业技术学院", + "14517": "甘肃卫生职业学院", + "14518": "兰州科技职业学院", + "14519": "西宁城市职业技术学院", + "14520": "青海高等职业技术学院", + "14521": "青海柴达木职业技术学院", + "14522": "宁夏艺术职业学院", + "14523": "新疆生产建设兵团兴新职业技术学院", + "14524": "哈密职业技术学院", + "14525": "新疆科技职业技术学院", + "14526": "辽宁特殊教育师范高等专科学校", + "14527": "山西工程技术学院", + "14528": "扬州中瑞酒店职业学院", + "14529": "鹤壁能源化工职业学院", + "14530": "平顶山文化艺术职业学院", + "14531": "内蒙古艺术学院", + "14532": "鄂尔多斯应用技术学院", + "14534": "公安消防部队高等专科学校", + "14535": "浙江音乐学院", + "14536": "阜阳幼儿师范高等专科学校", + "14537": "江西师范高等专科学校", + "14538": "毕节幼儿师范高等专科学校", + "14539": "扎兰屯职业学院", + "14540": "黑龙江冰雪体育职业学院", + "14541": "江苏护理职业学院", + "14542": "江苏财会职业学院", + "14543": "江苏城乡建设职业学院", + "14544": "南昌影视传播职业学院", + "14545": "山东特殊教育职业学院", + "14546": "广西中远职业学院", + "14547": "成都工贸职业技术学院", + "14548": "四川应用技术职业学院", + "14549": "贵州农业职业学院", + "14550": "云南财经职业学院", + "14551": "庆阳职业技术学院", + "14552": "临夏现代职业学院", + "14553": "湖北铁道运输职业学院", + "14554": "武汉海事职业学院", + "14555": "长江艺术工程职业学院", + "14556": "广东茂名健康职业学院", + "14557": "重庆资源与环境保护职业学院", + "14558": "贵州工程职业学院", + "14559": "贵州工贸职业学院", + "14560": "哈尔滨音乐学院", + "14567": "吉林职业技术学院", + "14568": "江苏航空职业技术学院", + "14569": "赣南卫生健康职业学院", + "14570": "烟台黄金职业学院", + "14571": "荆门职业学院", + "14572": "广东酒店管理职业技术学院", + "14573": "玉柴职业技术学院", + "14574": "广西蓝天航空职业学院", + "14575": "海南体育职业技术学院", + "14576": "重庆护理职业学院", + "14577": "贵州水利水电职业技术学院", + "14578": "贵州电子商务职业技术学院", + "14579": "贵州应用技术职业学院", + "14580": "贵州电子科技职业学院", + "14581": "昆明铁道职业技术学院", + "14582": "昭通卫生职业学院", + "14583": "大理护理职业学院", + "14584": "云南水利水电职业学院", + "14585": "吐鲁番职业技术学院", + "14586": "唐山幼儿师范高等专科学校", + "14587": "广东茂名幼儿师范专科学校", + "14588": "北京网络职业学院", + "14589": "江苏安全技术职业学院", + "14590": "武汉铁路桥梁职业学院", + "14591": "武汉光谷职业学院", + "14592": "广州卫生职业技术学院", + "14594": "兰州现代职业学院", + "14595": "平凉职业技术学院", + "14596": "中国社会科学院大学", + "14597": "濮阳医学高等专科学校", + "14598": "驻马店幼儿师范高等专科学校", + "14599": "天津体育职业学院", + "14600": "天津滨海汽车工程职业学院", + "14601": "曹妃甸职业技术学院", + "14602": "吉林水利电力职业学院", + "14603": "长春健康职业学院", + "14604": "江苏旅游职业学院", + "14605": "日照航海工程职业学院", + "14606": "三门峡社会管理职业学院", + "14607": "河南轻工职业学院", + "14608": "河南测绘职业学院", + "14609": "惠州工程职业学院", + "14610": "广东江门中医药职业学院", + "14611": "广西安全工程职业技术学院", + "14612": "三亚中瑞酒店管理职业学院", + "14613": "贵州装备制造职业学院", + "14614": "贵州健康职业学院", + "14615": "贵州食品工程职业学院", + "14616": "贵州经贸职业技术学院", + "14617": "贵州护理职业技术学院", + "14618": "云南轻纺职业学院", + "14619": "云南特殊教育职业学院", + "14620": "云南工贸职业技术学院", + "14621": "云南交通运输职业学院", + "14622": "博尔塔拉职业技术学院", + "14623": "滇西应用技术大学", + "14624": "宁夏体育职业学院", + "14625": "茅台学院", + "14626": "西湖大学", + "14627": "大同师范高等专科学校", + "14628": "太原幼儿师范高等专科学校", + "14629": "西昌民族幼儿师范高等专科学校", + "14630": "六盘水幼儿师范高等专科学校", + "14631": "昆明幼儿师范高等专科学校", + "14632": "承德应用技术职业学院", + "14633": "哈尔滨北方航空职业技术学院", + "14634": "信阳航空职业学院", + "14635": "郑州卫生健康职业学院", + "14636": "河南物流职业学院", + "14637": "河南地矿职业学院", + "14638": "广东茂名农林科技职业学院", + "14639": "海南健康管理职业技术学院", + "14640": "眉山药科职业学院", + "14641": "天府新区信息职业学院", + "14642": "德阳城市轨道交通职业学院", + "14643": "德阳科贸职业学院", + "14644": "江阳城建职业学院", + "14645": "天府新区航空旅游职业学院", + "14646": "天府新区通用航空职业学院", + "14647": "阿坝职业学院", + "14648": "毕节工业职业技术学院", + "14649": "云南医药健康职业学院", + "14650": "神木职业技术学院", + "14651": "宝鸡三和职业学院", + "14652": "和田职业技术学院", + "14654": "郑州西亚斯学院", + "14655": "深圳技术大学", + "14656": "萍乡卫生职业学院", + "14657": "江西婺源茶业职业学院", + "14660": "铁门关职业技术学院", + "14661": "石河子工程职业技术学院", + "14662": "辽宁师范高等专科学校", + "14663": "怀化师范高等专科学校", + "14664": "广东江门幼儿师范高等专科学校", + "14665": "赣州职业技术学院", + "14666": "青岛工程职业学院", + "14667": "广东财贸职业学院", + "14668": "广西自然资源职业技术学院", + "14669": "达州中医药职业学院", + "14670": "内江卫生与健康职业学院", + "14671": "南充科技职业学院", + "14672": "攀枝花攀西职业学院", + "14673": "资阳口腔职业学院", + "14674": "资阳环境科技职业学院", + "14675": "云南理工职业学院", + "14676": "曲靖职业技术学院", + "14677": "喀什职业技术学院", + "14678": "克孜勒苏职业技术学院", + "14679": "新疆科信职业技术学院", + "14680": "阿勒泰职业技术学院", + "14681": "山西工程职业学院", + "14682": "安徽艺术学院", + "14683": "福建技术师范学院", + "14684": "广西职业师范学院", + "14685": "郑州亚欧交通职业学院", + "14686": "邯郸幼儿师范高等专科学校", + "14687": "长治幼儿师范高等专科学校", + "14688": "青岛幼儿师范高等专科学校", + "14689": "烟台幼儿师范高等专科学校", + "14690": "永州师范高等专科学校", + "14691": "衡阳幼儿师范高等专科学校", + "14692": "长沙幼儿师范高等专科学校", + "14693": "钦州幼儿师范高等专科学校", + "14694": "梧州医学高等专科学校", + "14695": "邯郸科技职业学院", + "14696": "唐山海运职业学院", + "14697": "山西通用航空职业技术学院", + "14698": "朔州陶瓷职业技术学院", + "14699": "赤峰应用技术职业学院", + "14700": "鞍山职业技术学院", + "14701": "长春早期教育职业学院", + "14702": "梅河口康美职业技术学院", + "14703": "浙江宇翔职业技术学院", + "14704": "黄山健康职业学院", + "14705": "南昌健康职业技术学院", + "14706": "九江理工职业学院", + "14707": "烟台文化旅游职业学院", + "14708": "临沂科技职业学院", + "14709": "青岛航空科技职业学院", + "14710": "潍坊环境工程职业学院", + "14711": "河南女子职业学院", + "14712": "河南对外经济贸易职业学院", + "14713": "濮阳石油化工职业技术学院", + "14714": "南阳科技职业学院", + "14715": "兰考三农职业学院", + "14716": "汝州职业技术学院", + "14717": "林州建筑职业技术学院", + "14718": "郑州电子商务职业学院", + "14719": "郑州轨道工程职业学院", + "14720": "郑州体育职业学院", + "14721": "湖北健康职业学院", + "14722": "广西制造工程职业技术学院", + "14723": "广西物流职业技术学院", + "14724": "海南卫生健康职业学院", + "14725": "重庆理工职业学院", + "14726": "重庆智能工程职业学院", + "14727": "重庆健康职业学院", + "14728": "南充文化旅游职业学院", + "14729": "南充电影工业职业学院", + "14730": "绵阳飞行职业学院", + "14731": "德阳农业科技职业学院", + "14732": "泸州医疗器械职业学院", + "14733": "贵州机电职业技术学院", + "14734": "贵州财经职业学院", + "14735": "贵州民用航空职业学院", + "14736": "红河职业技术学院", + "14737": "榆林能源科技职业学院", + "14738": "培黎职业学院", + "14739": "石嘴山工贸职业技术学院", + "14740": "塔城职业技术学院", + "14741": "塔里木职业技术学院", + "14742": "邢台应用技术职业学院", + "14743": "吉林通用航空职业技术学院", + "14744": "通化医药健康职业学院", + "14745": "上海南湖职业技术学院", + "14746": "浙江金华科贸职业技术学院", + "14747": "宿州航空职业学院", + "14748": "和君职业学院", + "14749": "滨州科技职业学院", + "14750": "洛阳文化旅游职业学院", + "14751": "周口文理职业学院", + "14752": "信阳艺术职业学院", + "14753": "郑州城建职业学院", + "14754": "郑州医药健康职业学院", + "14755": "湖北孝感美珈职业学院", + "14756": "广州幼儿师范高等专科学校", + "14757": "广东汕头幼儿师范高等专科学校", + "14758": "广东梅州职业技术学院", + "14759": "广东潮州卫生健康职业学院", + "14760": "广东云浮中医药职业学院", + "14761": "广东肇庆航空职业学院", + "14762": "防城港职业技术学院", + "14763": "广西信息职业技术学院", + "14764": "广西农业工程职业技术学院", + "14765": "北海康养职业学院", + "14766": "重庆工信职业学院", + "14767": "甘孜职业学院", + "14768": "自贡职业技术学院", + "14769": "贵州文化旅游职业学院", + "14770": "宝鸡中北职业学院", + "14771": "兰州航空职业技术学院", + "14772": "白银希望职业技术学院", + "15312": "上饶幼儿师范高等专科学校", + "15335": "长春师范高等专科学校", + "15466": "盐城幼儿师范高等专科学校", + "15496": "湘中幼儿师范高等专科学校", + "15519": "抚州幼儿师范高等专科学校", + "15583": "苏州幼儿师范高等专科学校", + "16201": "山西工程科技职业大学", + "16202": "河北石油职业技术大学", + "16203": "河北科技工程职业技术大学", + "16204": "河北工业职业技术大学", + "16205": "广西农业职业技术大学", + "16206": "贵阳康养职业大学", + "16207": "浙江药科职业大学", + "16208": "兰州资源环境职业技术大学", + "16209": "兰州石化职业技术大学", + "16301": "宁波诺丁汉大学", + "16401": "北京师范大学-香港浸会大学联合国际学院", + "16402": "长江商学院", + "16403": "西交利物浦大学", + "16404": "上海纽约大学", + "16405": "温州肯恩大学", + "16406": "昆山杜克大学", + "16407": "香港中文大学(深圳)", + "16408": "浙江舟山群岛新区旅游与健康职业学院", + "16409": "深圳北理莫斯科大学", + "16410": "广东以色列理工学院", + "16411": "福州墨尔本理工职业学院", + "18213": "哈尔滨工业大学(深圳)", + "19027": "北京师范大学(珠海校区)", + "19145": "东北大学秦皇岛分校", + "19213": "哈尔滨工业大学(威海)", + "19414": "中国石油大学(北京)克拉玛依校区", + "19422": "山东大学威海分校", + "19802": "北京吉利学院", + "50028": "北京警察学院", + "50083": "陕西航天职工大学", + "50084": "陕西机电职业技术学院", + "50085": "陕西青年职业学院", + "50139": "河北地质职工大学", + "50166": "山西卫生健康职业学院", + "50252": "吉林省教育学院", + "50337": "黑龙江农垦管理干部学院", + "50343": "黑龙江省政法管理干部学院", + "50344": "黑龙江省教育学院", + "50559": "宁波幼儿师范高等专科学校", + "50561": "金华教育学院", + "50581": "安徽经济管理干部学院", + "50591": "福建教育学院", + "50607": "南昌钢铁有限责任公司职工大学", + "50649": "山东省经济管理干部学院", + "50680": "第一拖拉机制造厂拖拉机学院", + "50709": "平顶山职业技术学院", + "50763": "荆州教育学院", + "50788": "株洲市职工大学", + "50793": "湖南航空工业职工工学院", + "50810": "长沙教育学院", + "50812": "湘潭教育学院", + "50853": "湛江幼儿师范专科学校", + "50870": "广西教育学院", + "50881": "广元中核职业技术学院", + "50963": "贵州航空职业技术学院", + "50966": "聊城教育学院", + "50990": "西安飞机工业公司职工工学院", + "51006": "西安铁路工程职工大学", + "51009": "西安电力机械制造公司机电学院", + "51010": "陕西省建筑工程总公司职工大学", + "51038": "兰州航空职业技术学院", + "51060": "新疆工业职业技术学院", + "51177": "河北广播电视大学", + "51180": "石家庄职工大学", + "51189": "山西能源学院", + "51243": "吉林省经济管理干部学院", + "51255": "江苏开放大学", + "51257": "江苏省省级机关管理干部学院", + "51283": "南昌教育学院", + "51285": "江西经济管理干部学院", + "51340": "广西政法管理干部学院", + "51351": "四川体育职业学院", + "51373": "陕西工运学院", + "51378": "甘肃财贸职业学院", + "51614": "上海工会管理职业学院", + "51675": "崇左幼儿师范高等专科学校", + "51721": "河北环境工程学院", + "51723": "河北管理干部学院", + "51787": "山西省政法管理干部学院", + "51802": "河北青年管理干部学院", + "51828": "江苏省青年管理干部学院", + "80000": "中共中央党校", + "80002": "中科院数学与系统科学研究院", + "80005": "中国科学院武汉岩土力学研究所", + "80007": "中国科学院力学研究所", + "80008": "中国科学院物理研究所", + "80009": "中科院高能物理所", + "80010": "中国科学院声学研究所", + "80012": "中科院理论物理所", + "80014": "中国科学院上海应用物理研究所", + "80017": "中科院近代物理研究所", + "80018": "中科院南京天文光学技术研究所", + "80020": "中国科学院武汉物理与数学研究所", + "80021": "中国科学院紫金山天文台", + "80022": "中国科学院上海天文台", + "80023": "中科院云南天文台", + "80024": "中国科学院国家授时中心", + "80025": "中国科学院国家天文台", + "80026": "中国科学院声学研究所东海研究站", + "80028": "中科院新疆理化技术研究所", + "80029": "中国科学院自然科学史研究所", + "80030": "中国科学院理化技术研究所", + "80032": "中科院化学研究所", + "80035": "中国科学院上海有机化学所", + "80036": "中国科学院成都有机化学研究所", + "80037": "中国科学院长春应用化学研究所", + "80038": "中科院大连化学物理所", + "80039": "中国科学院兰州化物所", + "80040": "中国科学院上海硅酸盐研究所", + "80041": "中科院过程工程所", + "80042": "中科院生态环境中心", + "80043": "中国科学院山西煤炭化学研究所", + "80045": "中国科学院福建物质结构研究所", + "80046": "中国科学院盐湖研究所", + "80047": "中国科学院青海盐湖研究所", + "80053": "中科院兰州地质研究所", + "80054": "中科院古脊椎所", + "80055": "中科院南京地质古生物研究所", + "80057": "中国科学院测量与地球物理研究所", + "80058": "中国科学院大气物理研究所", + "80060": "中国科学院地理科学与资源研究所", + "80061": "中科院南京地理与湖泊研究所", + "80062": "中国科学院东北地理与农业生态研究所", + "80063": "中科院成都山地灾害与环境研究所", + "80065": "中国科学院地球化学研究所", + "80068": "中国科学院海洋研究所", + "80070": "遥感应用研究所", + "80073": "空间科学与应用研究中心", + "80074": "中科院中国遥感卫星地面站", + "80075": "中科院地质与地球物理研究所", + "80076": "中科院寒区旱区环境与工程研究所", + "80080": "南京天文仪器研制中心", + "80102": "中国科学院新疆生态与地理研究所", + "80103": "中科院动物研究所", + "80104": "中国科学院昆明动物研究所", + "80105": "中科院植物研究所", + "80106": "中科院昆明植物研究所", + "80108": "中国科学院武汉植物园", + "80110": "中科院成都生物研究所", + "80112": "中国科学院生物物理研究所", + "80113": "中科院微生物所", + "80119": "中国科学院水生生物研究所", + "80121": "中国科学院遗传与发育生物学研究所", + "80122": "中国科学院西北高原生物研究所", + "80123": "中国科学院上海药物研究所", + "80124": "中国科学院武汉病毒研究所", + "80125": "中科院心理研究所", + "80126": "中国科学院南京土壤研究所", + "80127": "中科院沈阳应用生态所", + "80128": "中国科学院西双版纳热带植物园", + "80129": "中国科学院水土保持与生态环境研究中心", + "80132": "中国科学院计算技术研究所", + "80133": "中科院沈阳计算技术所", + "80135": "中国科学院工程热物理研究所", + "80136": "中科院半导体所", + "80137": "中科院电子学所", + "80138": "中科院上海微系统与信息技术所", + "80139": "中科院长春光学精密机械与物理研究所", + "80140": "中国科学院上海光学精密机械研究所", + "80142": "中科院西安光学精密机械研究所", + "80143": "中国科学院上海技术物理研究所", + "80144": "中科院金属研究所", + "80146": "中科院自动化所", + "80147": "中科院沈阳自动化所", + "80148": "中科院电工研究所", + "80150": "中科院软件研究所", + "80151": "中国科学院光电技术研究所", + "80153": "中科院成都计算机应用研究所", + "80155": "中科院文献情报中心", + "80156": "中科院遗传发育所农业资源中心", + "80158": "中科院地球环境研究所", + "80159": "中科院微电子研究所", + "80160": "中国科学院计算机网络信息中心", + "80162": "中国科学院亚热带农业生态研究所", + "80163": "中科院南京天文仪器研制中心", + "80164": "科技政策与管理科学研究所", + "80166": "中科院国家天文台乌鲁木齐天文站", + "80167": "中国科学院北京基因组研究所", + "80168": "中国科学院合肥物质科学研究院", + "80176": "中国科学院上海免疫与感染研究所", + "80177": "中国科学院深圳先进技术研究院", + "80184": "中国科学院上海高等研究院", + "80189": "中国科学院分子细胞科学卓越创新中心", + "80190": "中国科学院脑科学与智能技术卓越创新中心", + "80191": "中国科学院分子植物科学卓越创新中心", + "80192": "中国科学院上海营养与健康研究所", + "80193": "中国科学院微小卫星创新研究院", + "80201": "中国社会科学院研究生院", + "80202": "国家行政学院", + "80401": "北京国家会计学院", + "80402": "上海国家会计学院", + "80403": "厦门国家会计学院", + "80901": "中国科学技术信息研究所", + "81601": "中国财政科学研究院", + "82001": "商务部国际贸易经济合作研究院", + "82101": "中国农业科学院研究生院", + "82110": "中国兽医药品监察所", + "82201": "中国林业科学研究院", + "82301": "中国水利水电科学研究院", + "82302": "中国电力科学研究院", + "82303": "国网电力科学研究院", + "82304": "西安热工研究院", + "82305": "长江科学院", + "82306": "南京水利科学研究院", + "82401": "中国建筑科学研究院", + "82402": "中国城市规划设计研究院", + "82403": "中国建筑设计研究院", + "82405": "中国环境科学研究院", + "82501": "中国地质科学院", + "82601": "钢铁研究总院", + "82602": "中冶集团建筑研究总院", + "82603": "长沙矿冶研究院", + "82604": "中钢集团马鞍山矿山研究院", + "82605": "冶金自动化研究设计院", + "82606": "洛阳耐火材料研究院", + "82608": "中钢集团天津地质研究院有限公司", + "82609": "中钢集团武汉安全环保研究院", + "82701": "机械科学研究总院", + "82702": "北京机械工业自动化研究所", + "82703": "北京机电研究所", + "82705": "沈阳铸造研究所", + "82706": "机械科学研究院哈尔滨焊接研究所", + "82707": "上海材料研究所", + "82708": "郑州机械研究所", + "82709": "武汉材料保护研究所", + "82715": "中国农业机械化科学研究院", + "82717": "上海发电设备成套设计研究院", + "82718": "上海内燃机研究所", + "82720": "洛阳船舶材料研究所", + "82721": "郑州机电工程研究所", + "82801": "中国原子能科学研究院", + "82802": "中国核动力研究设计院", + "82803": "核工业第二研究设计院", + "82804": "核工业理化工程研究院", + "82805": "上海核工程研究设计院", + "82806": "核工业北京地质研究院", + "82807": "核工业北京化工冶金研究院", + "82808": "中国辐射防护研究院", + "82809": "核工业西南物理研究院", + "82818": "中国工程物理研究院", + "82901": "中国航空研究院", + "82902": "北京航空精密机械研究所", + "82903": "中国航空研究院 601 所", + "82904": "中国航空工业总公司第 603 研究所", + "82905": "中国航空研究院 606 所", + "82906": "中国航空研究院 611 研究所", + "82907": "中国空空导弹研究院", + "82908": "中国航空研究院 613 所", + "82909": "中国航空研究院 623 所", + "82910": "中国航空研究院第六二四研究所", + "82911": "中国飞行试验研究院", + "82912": "中国航空研究院 631 所", + "82913": "北京航空材料研究院", + "82914": "中国航空制造技术研究院", + "82920": "中国航空工业规划设计研究院", + "82925": "中国航发湖南动力机械研究所", + "82927": "中国航空研究院 609 所", + "82928": "中国航空研究院 627 研究所", + "82929": "中国航空研究院 626 所", + "82931": "中国航空工业总公司第 628 研究所", + "82932": "北京长城计量测试技术研究所", + "82936": "中国航空研究院 618 所", + "82937": "中国航空研究院 640 所", + "82938": "中国航空研究院 602 所", + "82961": "中国航空研究院 610 所", + "83000": "中国电子科技集团公司电子科学研究院", + "83001": "华北计算机系统工程研究所", + "83002": "华北计算技术研究所", + "83003": "北京真空电子技术研究所", + "83004": "河北半导体研究所", + "83005": "南京电子技术研究所", + "83006": "中国电波传播研究所", + "83007": "南京电子器件研究所", + "83008": "西南通信研究所", + "83009": "华东计算技术研究所", + "83010": "通信测控技术研究所", + "83011": "华北光电技术研究所", + "83101": "西安近代化学研究所", + "83102": "内蒙古金属材料研究所", + "83103": "西安应用光学研究所", + "83104": "昆明物理研究所", + "83105": "西南技术物理研究所", + "83106": "北方自动控制技术研究所", + "83107": "中国北方车辆研究所", + "83109": "西安机电信息技术研究所", + "83110": "陕西应用物理化学研究所", + "83111": "中国兵器工业第 202 研究所", + "83112": "中国兵器工业第 203 研究所", + "83113": "中国兵器工业第 206 研究所", + "83114": "西南自动化研究所", + "83115": "山东非金属材料研究所", + "83116": "中国兵器装备研究院", + "83201": "中国运载火箭技术研究院", + "83221": "中国航天科工集团第二研究院", + "83232": "中国航天系统科学与工程研究院", + "83233": "中国航天科技集团公司第十六研究所", + "83241": "中国航天科工集团第三研究院", + "83245": "中国航天科工集团三院 8357 研究所", + "83246": "中国航天科工集团三院 8358 研究所", + "83256": "航天动力技术研究院", + "83258": "中国航天科技集团公司第四研究院 42 所", + "83266": "中国空间技术研究院", + "83269": "中国空间技术研究院 504 所", + "83271": "中国空间技术研究院兰州空间技术物理研究所", + "83276": "中国航天工业总公司西安微电子技术研究所", + "83277": "中国航天空气动力技术研究院", + "83278": "中国航天科技集团有限公司第六研究院第十一研究所", + "83285": "上海航天技术研究院", + "83286": "中国航天科工集团第十研究院", + "83301": "煤炭科学研究总院", + "83303": "煤科院上海分院", + "83304": "煤科院抚顺分院", + "83306": "煤科院西安分院", + "83307": "煤科院唐山分院", + "83309": "煤科院北京建井研究所", + "83310": "煤科院北京煤化研究所", + "83311": "煤科院北京开采研究所", + "83401": "中国石油勘探开发研究院", + "83501": "北京化工研究院", + "83502": "上海化工研究院", + "83503": "沈阳化工研究院", + "83504": "北京橡胶工业研究设计院", + "83505": "天华化工机械及自动化研究设计院有限公司", + "83702": "北京市科学技术研究院资源环境研究所", + "83704": "中国日用化学工业研究院", + "83705": "中国食品发酵工业研究院", + "83706": "中国制浆造纸研究院有限公司", + "83801": "中国铁道科学研究院", + "83901": "上海船舶运输科学研究所", + "83902": "交通运输部公路科学研究所", + "84001": "电信科学技术研究院", + "84002": "电信科学技术第一研究所", + "84003": "电信科学技术第四研究所", + "84004": "电信科学技术第五研究所", + "84011": "武汉邮电科学研究院", + "84201": "中国艺术研究院", + "84202": "中国电影艺术研究中心", + "84501": "中国疾病预防控制中心", + "84502": "中国中医科学院", + "84503": "中国食品药品检定研究院", + "84504": "北京生物制品研究所", + "84505": "上海生物制品研究所", + "84506": "武汉生物制品研究所", + "84507": "兰州生物制品研究所", + "84508": "中日友好临床医学研究所", + "84509": "长春生物制品研究所", + "84512": "卫生部北京老年医学研究所", + "84601": "国家体育总局体育科学研究所", + "84901": "中国建筑材料科学研究总院", + "85101": "中国气象科学研究院", + "85301": "自然资源部第一海洋研究所", + "85302": "自然资源部第二海洋研究所", + "85303": "自然资源部第三海洋研究所", + "85304": "国家海洋环境预报中心", + "85305": "国家海洋技术中心", + "85401": "中国地震局地球物理研究所", + "85402": "中国地震局地质研究所", + "85403": "中国地震局兰州地震研究所", + "85404": "中国地震局地震研究所", + "85405": "中国地震局地震预测研究所", + "85406": "中国地震局工程力学研究所", + "85407": "应急管理部国家自然灾害防治研究院", + "85801": "中国计量科学研究院", + "85802": "中国测绘科学研究院", + "85901": "中国医药工业研究总院", + "85902": "四川抗菌素工业研究所", + "86201": "中国舰船研究院", + "86202": "武汉数字工程研究所", + "86203": "中国舰船研究设计中心", + "86204": "杭州应用声学研究所", + "86205": "中国船舶科学研究中心", + "86206": "中国船舶及海洋工程设计研究院", + "86207": "上海船舶设备研究所", + "86208": "上海船用柴油机研究所", + "86209": "哈尔滨船舶锅炉涡轮机研究所", + "86210": "江苏自动化研究所", + "86211": "天津航海仪器研究所", + "86212": "西安精密机械研究所", + "86215": "武汉船用电力推进装置研究所", + "86216": "武汉华中光电技术研究所", + "86217": "武汉船舶通信研究所", + "86218": "武汉第二船舶设计研究所", + "86219": "上海船舶电子设备研究所", + "86220": "大连测控技术研究所", + "86221": "中国舰船研究院邯郸净化设备研究所", + "86222": "中国舰船研究院宜昌测试技术研究所", + "86223": "扬州船用电子仪器研究所", + "86224": "南京船舶雷达研究所", + "86301": "中国石油化工股份有限公司石油化工科学研究院", + "86401": "昆明贵金属研究所", + "86402": "北京矿冶研究总院", + "86403": "北京有色金属研究总院", + "86404": "长沙矿山研究院", + "86406": "中共广东省委党校", + "86601": "郑州烟草研究院", + "87102": "北京市科学技术研究院城市安全与环境科学研究所", + "87103": "北京市生态环境保护科学研究院", + "87110": "北京市心肺血管疾病研究所", + "87111": "北京市市政工程研究院", + "87112": "北京市结核病胸部肿瘤研究所", + "87113": "北京市创伤骨科研究所", + "87120": "首都儿科研究所", + "87401": "山西省中医药研究院", + "87801": "黑龙江省中医药科学院", + "87802": "黑龙江省社会科学院", + "87804": "黑龙江省科学院", + "87901": "上海市计算技术研究所", + "87902": "上海国际问题研究院", + "87903": "上海社会科学院", + "88001": "江苏省植物研究所", + "88002": "江苏省血吸虫病防治研究所", + "88101": "浙江省医学科学院", + "88701": "湖北省社会科学院", + "88901": "广东省社会科学院", + "88911": "广东省心血管病研究所", + "89101": "四川省社会科学院", + "89611": "中共北京市委党校", + "89621": "中共辽宁省委党校", + "89622": "中共吉林省委党校", + "89623": "中共黑龙江省委党校", + "89631": "中共上海市委党校", + "89632": "中共江苏省委党校", + "89633": "中共浙江省委党校", + "89637": "中共山东省委党校", + "89642": "中共湖北省委党校", + "89643": "中共湖南省委党校", + "89651": "中共四川省委党校", + "89655": "中共重庆市委党校", + "89661": "中共陕西省委党校", + "90106": "军事医学科学院", + "91001": "国防大学", + "91002": "国防科技大学", + "91004": "陆军工程大学", + "91012": "陆军军医大学", + "91014": "中国人民解放军陆军勤务学院", + "91016": "海军工程大学", + "91020": "海军军医大学", + "91024": "中国人民解放军空军工程大学", + "91030": "空军军医大学", + "91034": "火箭军工程大学", + "91036": "航天工程大学", + "91037": "中国人民解放军战略支援部队信息工程大学", + "91101": "军事科学院", + "91102": "解放军医学院" + } +} \ No newline at end of file diff --git a/src/ui/IVYZ3P9M.vue b/src/ui/IVYZ3P9M.vue new file mode 100644 index 0000000..ad2dc8f --- /dev/null +++ b/src/ui/IVYZ3P9M.vue @@ -0,0 +1,696 @@ + + + + + + diff --git a/src/views/Authorization.vue b/src/views/Authorization.vue index a9a9b1d..aae6bcf 100644 --- a/src/views/Authorization.vue +++ b/src/views/Authorization.vue @@ -4,12 +4,12 @@

    海南天远大数据科技有限公司:

    - 本人________拟向贵司申请大数据分析报告查询业务,贵司需要了解本人相关状况,用于查询大数据分析报告,因此本人同意向贵司提供本人的姓名和手机号等个人信息,并同意贵司向第三方(包括但不限于西部数据交易有限公司)传送上述信息。第三方将使用上述信息核实信息真实情况,查询信用记录,并生成报告。 + 本人________拟向贵司申请大数据分析报告查询业务,贵司需要了解本人相关状况,用于查询大数据分析报告,因此本人同意向贵司提供本人的姓名和手机号等个人信息,并同意贵司向第三方传送上述信息。第三方将使用上述信息核实信息真实情况,查询信用记录,并生成报告。

    授权内容如下:

    1. - 贵司向依法成立的第三方服务商(包括但不限于西部数据交易有限公司)根据本人提交的信息进行核实,并有权通过前述第三方服务机构查询、使用本人的身份信息、设备信息、运营商信息等,查询本人信息(包括但不限于学历、婚姻、资产状况及对信息主体产生负面影响的不良信息),出具相关报告。 + 贵司向依法成立的第三方服务商根据本人提交的信息进行核实,并有权通过前述第三方服务机构查询、使用本人的身份信息、设备信息、运营商信息等,查询本人信息(包括但不限于学历、婚姻、资产状况及对信息主体产生负面影响的不良信息),出具相关报告。
    2. 依法成立的第三方服务商查询或核实、搜集、保存、处理、共享、使用(含合法业务应用)本人相关数据,且不再另行告知本人,但法律、法规、监管政策禁止的除外。 diff --git a/src/views/index.vue b/src/views/index.vue index 9678765..7f11afd 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -1,6 +1,7 @@