Files
ccdi/assets/api-docs/后端枚举字段说明.md

332 lines
6.8 KiB
Markdown
Raw Normal View History

2026-02-04 18:36:20 +08:00
# 后端枚举字段说明
## 概述
后端只返回枚举代码值,不返回枚举名称。前端需要根据代码值进行转换显示。
---
## API 返回的枚举字段
### 1. 中介类型 (intermediaryType)
2026-03-03 16:14:16 +08:00
| 代码值 | 说明 |
|-----|------|
2026-02-04 18:36:20 +08:00
| `1` | 个人中介 |
| `2` | 机构中介 |
**前端转换示例:**
2026-03-03 16:14:16 +08:00
2026-02-04 18:36:20 +08:00
```javascript
const getIntermediaryTypeName = (type) => {
const map = {
'1': '个人',
'2': '机构'
}
return map[type] || '未知'
}
```
### 2. 状态 (status)
| 代码值 | 说明 |
2026-03-03 16:14:16 +08:00
|-----|----|
2026-02-04 18:36:20 +08:00
| `0` | 正常 |
| `1` | 停用 |
**前端转换示例:**
2026-03-03 16:14:16 +08:00
2026-02-04 18:36:20 +08:00
```javascript
const getStatusName = (status) => {
const map = {
'0': '正常',
'1': '停用'
}
return map[status] || '未知'
}
```
### 3. 数据来源 (dataSource / date_source)
2026-03-03 16:14:16 +08:00
| 代码值 | 说明 |
|----------|------|
2026-02-04 18:36:20 +08:00
| `MANUAL` | 手动录入 |
| `IMPORT` | 批量导入 |
| `SYSTEM` | 系统同步 |
2026-03-03 16:14:16 +08:00
| `API` | 接口获取 |
2026-02-04 18:36:20 +08:00
**前端转换示例:**
2026-03-03 16:14:16 +08:00
2026-02-04 18:36:20 +08:00
```javascript
const getDataSourceName = (source) => {
const map = {
'MANUAL': '手动录入',
'IMPORT': '批量导入',
'SYSTEM': '系统同步',
'API': '接口获取'
}
return map[source] || '未知'
}
```
### 4. 性别 (indivGender) - 个人中介
| 代码值 | 说明 |
2026-03-03 16:14:16 +08:00
|-----|----|
| `M` | 男 |
| `F` | 女 |
2026-02-04 18:36:20 +08:00
| `O` | 其他 |
**前端转换示例:**
2026-03-03 16:14:16 +08:00
2026-02-04 18:36:20 +08:00
```javascript
const getGenderName = (gender) => {
const map = {
'M': '男',
'F': '女',
'O': '其他'
}
return map[gender] || '未知'
}
```
### 5. 证件类型 (indivCertType)
常用证件类型代码:
2026-03-03 16:14:16 +08:00
2026-02-04 18:36:20 +08:00
- `身份证` - 身份证
- `护照` - 护照
- `港澳通行证` - 港澳通行证
- `台湾通行证` - 台湾通行证
---
## API 返回数据示例
### 列表查询响应
```json
{
"code": 200,
"msg": "查询成功",
"rows": [
{
"intermediaryId": 1,
"name": "张三",
"certificateNo": "110101199001011234",
"intermediaryType": "1",
"status": "0",
"dataSource": "MANUAL",
"createTime": "2026-02-04 10:00:00",
"updateTime": "2026-02-04 10:00:00"
},
{
"intermediaryId": 0,
"name": "测试机构有限公司",
"certificateNo": "91110000123456789X",
"intermediaryType": "2",
"status": "0",
"dataSource": "MANUAL",
"createTime": "2026-02-04 10:00:00",
"updateTime": "2026-02-04 10:00:00"
}
],
"total": 2
}
```
### 个人中介详情响应
```json
{
"code": 200,
"data": {
"intermediaryId": 1,
"name": "张三",
"certificateNo": "110101199001011234",
"intermediaryType": "1",
"status": "0",
"dataSource": "MANUAL",
"remark": "测试数据",
"indivType": "中介",
"indivSubType": "本人",
"indivGender": "M",
"indivCertType": "身份证",
"indivPhone": "13800138000",
"indivWechat": "test_wx001",
"indivAddress": "北京市朝阳区测试路123号",
"indivCompany": "测试公司",
"indivPosition": "测试员",
"createTime": "2026-02-04 10:00:00"
}
}
```
### 机构中介详情响应
```json
{
"code": 200,
"data": {
"intermediaryId": 0,
"name": "测试机构有限公司",
"certificateNo": "91110000123456789X",
"intermediaryType": "2",
"status": "0",
"dataSource": "MANUAL",
"remark": "机构中介测试数据",
"corpCreditCode": "91110000123456789X",
"corpType": "有限责任公司",
"corpNature": "民营企业",
"corpIndustryCategory": "制造业",
"corpIndustry": "通用设备制造业",
"corpEstablishDate": "2020-01-01",
"corpAddress": "北京市海淀区测试大街456号",
"corpLegalRep": "李四",
"corpLegalCertType": "身份证",
"corpLegalCertNo": "110101198001011234",
"createTime": "2026-02-04 10:00:00"
}
}
```
---
## 前端 Vue 组件示例
### 枚举转换工具函数
```javascript
// utils/enums.js
export const IntermediaryType = {
PERSON: '1',
ENTITY: '2',
getName: (type) => {
const map = {
'1': '个人',
'2': '机构'
}
return map[type] || '未知'
}
}
export const IntermediaryStatus = {
NORMAL: '0',
DISABLED: '1',
getName: (status) => {
const map = {
'0': '正常',
'1': '停用'
}
return map[status] || '未知'
}
}
export const DataSource = {
MANUAL: 'MANUAL',
IMPORT: 'IMPORT',
SYSTEM: 'SYSTEM',
API: 'API',
getName: (source) => {
const map = {
'MANUAL': '手动录入',
'IMPORT': '批量导入',
'SYSTEM': '系统同步',
'API': '接口获取'
}
return map[source] || '未知'
}
}
export const Gender = {
MALE: 'M',
FEMALE: 'F',
OTHER: 'O',
getName: (gender) => {
const map = {
'M': '男',
'F': '女',
'O': '其他'
}
return map[gender] || '未知'
}
}
```
### 表格列使用枚举
```vue
<template>
<el-table :data="tableData">
<el-table-column prop="name" label="姓名" />
<el-table-column prop="intermediaryType" label="中介类型">
<template #default="{ row }">
{{ IntermediaryType.getName(row.intermediaryType) }}
</template>
</el-table-column>
<el-table-column prop="status" label="状态">
<template #default="{ row }">
<el-tag :type="row.status === '0' ? 'success' : 'danger'">
{{ IntermediaryStatus.getName(row.status) }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="dataSource" label="数据来源">
<template #default="{ row }">
{{ DataSource.getName(row.dataSource) }}
</template>
</el-table-column>
</el-table>
</template>
<script>
import { IntermediaryType, IntermediaryStatus, DataSource } from '@/utils/enums'
export default {
data() {
return {
IntermediaryType,
IntermediaryStatus,
DataSource,
tableData: []
}
}
}
</script>
```
### 表单下拉框使用枚举
```vue
<template>
<el-form :model="form">
<el-form-item label="中介类型" prop="intermediaryType">
<el-select v-model="form.intermediaryType" placeholder="请选择中介类型">
<el-option label="个人" value="1" />
<el-option label="机构" value="2" />
</el-select>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-radio-group v-model="form.status">
<el-radio label="0">正常</el-radio>
<el-radio label="1">停用</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
</template>
```
---
## 注意事项
1. **后端只返回代码值**,前端负责转换为显示名称
2. **前端下拉框的 value 应该使用代码值**(如 '1', '2', '0' 等)
3. **建议在前端统一维护枚举映射关系**,避免硬编码
4. **新增枚举值时**,只需要前端更新映射表即可,后端无需修改
5. **国际化支持**:前端可以根据语言切换返回不同的名称