对于select、radio这些常见的组件,我们不希望在页面把数据写死,而是通过数据字典动态获取,这样就会灵活很多,也能提高开发效率。

  • 我们可以在数据字典里面,管理字典数据。下面为数据字典的JSON数据,如下所示:
{
  "code": 0,
  "msg": "success",
  "data": [
    {
      "dictType": "user_gender",
      "dataList": [
        {
          "dictLabel": "男",
          "dictValue": "0"
        },
        {
          "dictLabel": "女",
          "dictValue": "1"
        },
        {
          "dictLabel": "未知",
          "dictValue": "2"
        }
      ]
    },
    {
      "dictType": "user_status",
      "dataList": [
        {
          "dictLabel": "正常",
          "dictValue": "1"
        },
        {
          "dictLabel": "停用",
          "dictValue": "0"
        }
      ]
    }
  ]
}
  • 我们可以通过dictType,查找出dataList数据列表,如下所示:
export function getDictDataList(dictList: any[], dictType: string) {
  const type = dictList.find((element: any) => element.dictType === dictType)
  if (type) {
    return type.dataList
  } else {
    return []
  }
}
  • 这样,我们就完成数据的准备工作了,下面就只需要在组件里面使用这些数据即可。