Files
ccdi/doc/api-docs/后端枚举字段说明.md
2026-02-09 14:28:25 +08:00

6.8 KiB

后端枚举字段说明

概述

后端只返回枚举代码值,不返回枚举名称。前端需要根据代码值进行转换显示。


API 返回的枚举字段

1. 中介类型 (intermediaryType)

代码值 说明
1 个人中介
2 机构中介

前端转换示例:

const getIntermediaryTypeName = (type) => {
  const map = {
    '1': '个人',
    '2': '机构'
  }
  return map[type] || '未知'
}

2. 状态 (status)

代码值 说明
0 正常
1 停用

前端转换示例:

const getStatusName = (status) => {
  const map = {
    '0': '正常',
    '1': '停用'
  }
  return map[status] || '未知'
}

3. 数据来源 (dataSource / date_source)

代码值 说明
MANUAL 手动录入
IMPORT 批量导入
SYSTEM 系统同步
API 接口获取

前端转换示例:

const getDataSourceName = (source) => {
  const map = {
    'MANUAL': '手动录入',
    'IMPORT': '批量导入',
    'SYSTEM': '系统同步',
    'API': '接口获取'
  }
  return map[source] || '未知'
}

4. 性别 (indivGender) - 个人中介

代码值 说明
M
F
O 其他

前端转换示例:

const getGenderName = (gender) => {
  const map = {
    'M': '男',
    'F': '女',
    'O': '其他'
  }
  return map[gender] || '未知'
}

5. 证件类型 (indivCertType)

常用证件类型代码:

  • 身份证 - 身份证
  • 护照 - 护照
  • 港澳通行证 - 港澳通行证
  • 台湾通行证 - 台湾通行证

API 返回数据示例

列表查询响应

{
  "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
}

个人中介详情响应

{
  "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"
  }
}

机构中介详情响应

{
  "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 组件示例

枚举转换工具函数

// 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] || '未知'
  }
}

表格列使用枚举

<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>

表单下拉框使用枚举

<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. 国际化支持:前端可以根据语言切换返回不同的名称