327 lines
6.8 KiB
Markdown
327 lines
6.8 KiB
Markdown
|
|
# 后端枚举字段说明
|
||
|
|
|
||
|
|
## 概述
|
||
|
|
|
||
|
|
后端只返回枚举代码值,不返回枚举名称。前端需要根据代码值进行转换显示。
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## API 返回的枚举字段
|
||
|
|
|
||
|
|
### 1. 中介类型 (intermediaryType)
|
||
|
|
|
||
|
|
| 代码值 | 说明 |
|
||
|
|
|--------|------|
|
||
|
|
| `1` | 个人中介 |
|
||
|
|
| `2` | 机构中介 |
|
||
|
|
|
||
|
|
**前端转换示例:**
|
||
|
|
```javascript
|
||
|
|
const getIntermediaryTypeName = (type) => {
|
||
|
|
const map = {
|
||
|
|
'1': '个人',
|
||
|
|
'2': '机构'
|
||
|
|
}
|
||
|
|
return map[type] || '未知'
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. 状态 (status)
|
||
|
|
|
||
|
|
| 代码值 | 说明 |
|
||
|
|
|--------|------|
|
||
|
|
| `0` | 正常 |
|
||
|
|
| `1` | 停用 |
|
||
|
|
|
||
|
|
**前端转换示例:**
|
||
|
|
```javascript
|
||
|
|
const getStatusName = (status) => {
|
||
|
|
const map = {
|
||
|
|
'0': '正常',
|
||
|
|
'1': '停用'
|
||
|
|
}
|
||
|
|
return map[status] || '未知'
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3. 数据来源 (dataSource / date_source)
|
||
|
|
|
||
|
|
| 代码值 | 说明 |
|
||
|
|
|--------|------|
|
||
|
|
| `MANUAL` | 手动录入 |
|
||
|
|
| `IMPORT` | 批量导入 |
|
||
|
|
| `SYSTEM` | 系统同步 |
|
||
|
|
| `API` | 接口获取 |
|
||
|
|
|
||
|
|
**前端转换示例:**
|
||
|
|
```javascript
|
||
|
|
const getDataSourceName = (source) => {
|
||
|
|
const map = {
|
||
|
|
'MANUAL': '手动录入',
|
||
|
|
'IMPORT': '批量导入',
|
||
|
|
'SYSTEM': '系统同步',
|
||
|
|
'API': '接口获取'
|
||
|
|
}
|
||
|
|
return map[source] || '未知'
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 4. 性别 (indivGender) - 个人中介
|
||
|
|
|
||
|
|
| 代码值 | 说明 |
|
||
|
|
|--------|------|
|
||
|
|
| `M` | 男 |
|
||
|
|
| `F` | 女 |
|
||
|
|
| `O` | 其他 |
|
||
|
|
|
||
|
|
**前端转换示例:**
|
||
|
|
```javascript
|
||
|
|
const getGenderName = (gender) => {
|
||
|
|
const map = {
|
||
|
|
'M': '男',
|
||
|
|
'F': '女',
|
||
|
|
'O': '其他'
|
||
|
|
}
|
||
|
|
return map[gender] || '未知'
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 5. 证件类型 (indivCertType)
|
||
|
|
|
||
|
|
常用证件类型代码:
|
||
|
|
- `身份证` - 身份证
|
||
|
|
- `护照` - 护照
|
||
|
|
- `港澳通行证` - 港澳通行证
|
||
|
|
- `台湾通行证` - 台湾通行证
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 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. **国际化支持**:前端可以根据语言切换返回不同的名称
|