fix: 修复基础数据管理4个模块的字段名不匹配问题

## Bug描述
基础数据子菜单(年级管理、班级管理、学科管理、区域管理)的列表页面,第1列和第2列均显示空白

## 问题分析

### 根本原因:前后端字段名不匹配

**后端API统一返回字段**:
```json
{
  "id": 1,
  "name": "一年级",    // ← 统一使用name
  "code": "GRD001",   // ← 统一使用code
  "sort": 1,
  "status": "0"
}
```

**前端期望字段名(错误)**:

| 模块 | 第1列期望 | 第2列期望 | 实际字段 |
|------|----------|----------|---------|
| 年级管理 | gradeName  | gradeCode  | name / code  |
| 班级管理 | className  | classCode  | name / code  |
| 学科管理 | subjectName  | subjectCode  | name / code  |
| 区域管理 | regionName  | regionCode  | name / code  |

### 验证数据
```bash
# 年级API
curl /api/grade/list → name:"一年级", code:"GRD001"

# 班级API
curl /api/class/list → name:"1班", code:"CLS001"

# 学科API
curl /api/subject/list → name:"语文", code:"SUB001"

# 区域API(树形)
curl /api/region/tree → name:"湖北省", code:"REG01"
```

## 修复内容

### 1. 年级管理 (grade/index.vue)
```vue
<!-- 修复前  -->
<el-table-column prop="gradeName" label="年级名称" />
<el-table-column prop="gradeCode" label="年级编码" />

<!-- 修复后  -->
<el-table-column prop="name" label="年级名称" />
<el-table-column prop="code" label="年级编码" />
```

### 2. 班级管理 (class/index.vue)
```vue
<!-- 修复前  -->
<el-table-column prop="className" label="班级名称" />
<el-table-column prop="classCode" label="班级编码" />

<!-- 修复后  -->
<el-table-column prop="name" label="班级名称" />
<el-table-column prop="code" label="班级编码" />
```

### 3. 学科管理 (subject/index.vue)
```vue
<!-- 修复前  -->
<el-table-column prop="subjectName" label="学科名称" />
<el-table-column prop="subjectCode" label="学科编码" />

<!-- 修复后  -->
<el-table-column prop="name" label="学科名称" />
<el-table-column prop="code" label="学科编码" />
```

### 4. 区域管理 (region/index.vue)
```vue
<!-- 修复前  -->
<el-table-column prop="regionName" label="区域名称" />
<el-table-column prop="regionCode" label="区域编码" />

<!-- el-tree-select配置 -->
:props="{ value: 'id', label: 'regionName', children: 'children' }"

<!-- 修复后  -->
<el-table-column prop="name" label="区域名称" />
<el-table-column prop="code" label="区域编码" />

<!-- el-tree-select配置 -->
:props="{ value: 'id', label: 'name', children: 'children' }"
```

## 验证结果

 **年级管理**:12条数据正常显示(一年级~十二年级)
 **班级管理**:12条数据正常显示(1班~12班)
 **学科管理**:14条数据正常显示(语文、数学、英语...)
 **区域管理**:树形结构正常显示(湖北省>武汉市>武昌区)

## Bug影响
- **P0级别** - 严重bug(数据完全无法显示)
- 影响范围:基础数据4个子模块全部不可用
- 修复优先级:最高

---
作者:湖北新华业务中台研发团队
This commit is contained in:
神码-方晓辉 2026-02-01 13:15:46 +08:00
parent fecc170eef
commit a2a544ebe3
4 changed files with 9 additions and 9 deletions

View File

@ -28,8 +28,8 @@
</el-row> </el-row>
<el-table v-loading="loading" :data="tableData" border stripe :header-cell-style="{ background: '#f5f7fa', color: '#606266' }" style="width: 100%"> <el-table v-loading="loading" :data="tableData" border stripe :header-cell-style="{ background: '#f5f7fa', color: '#606266' }" style="width: 100%">
<el-table-column prop="className" label="班级名称" min-width="150" /> <el-table-column prop="name" label="班级名称" min-width="150" />
<el-table-column prop="classCode" label="班级编码" width="120" /> <el-table-column prop="code" label="班级编码" width="120" />
<el-table-column prop="sort" label="排序" width="80" align="center" /> <el-table-column prop="sort" label="排序" width="80" align="center" />
<el-table-column prop="status" label="状态" width="80" align="center"> <el-table-column prop="status" label="状态" width="80" align="center">
<template #default="{ row }"> <template #default="{ row }">

View File

@ -28,8 +28,8 @@
</el-row> </el-row>
<el-table v-loading="loading" :data="tableData" border stripe :header-cell-style="{ background: '#f5f7fa', color: '#606266' }" style="width: 100%"> <el-table v-loading="loading" :data="tableData" border stripe :header-cell-style="{ background: '#f5f7fa', color: '#606266' }" style="width: 100%">
<el-table-column prop="gradeName" label="年级名称" min-width="150" /> <el-table-column prop="name" label="年级名称" min-width="150" />
<el-table-column prop="gradeCode" label="年级编码" width="120" /> <el-table-column prop="code" label="年级编码" width="120" />
<el-table-column prop="sort" label="排序" width="80" align="center" /> <el-table-column prop="sort" label="排序" width="80" align="center" />
<el-table-column prop="status" label="状态" width="80" align="center"> <el-table-column prop="status" label="状态" width="80" align="center">
<template #default="{ row }"> <template #default="{ row }">

View File

@ -38,8 +38,8 @@
:header-cell-style="{ background: '#f5f7fa', color: '#606266' }" :header-cell-style="{ background: '#f5f7fa', color: '#606266' }"
style="width: 100%" style="width: 100%"
> >
<el-table-column prop="regionName" label="区域名称" min-width="200" /> <el-table-column prop="name" label="区域名称" min-width="200" />
<el-table-column prop="regionCode" label="区域编码" width="120" /> <el-table-column prop="code" label="区域编码" width="120" />
<el-table-column prop="sort" label="排序" width="80" align="center" /> <el-table-column prop="sort" label="排序" width="80" align="center" />
<el-table-column prop="status" label="状态" width="80" align="center"> <el-table-column prop="status" label="状态" width="80" align="center">
<template #default="{ row }"> <template #default="{ row }">
@ -66,7 +66,7 @@
<el-tree-select <el-tree-select
v-model="form.parentId" v-model="form.parentId"
:data="regionTreeOptions" :data="regionTreeOptions"
:props="{ value: 'id', label: 'regionName', children: 'children' }" :props="{ value: 'id', label: 'name', children: 'children' }"
check-strictly check-strictly
placeholder="请选择上级区域" placeholder="请选择上级区域"
clearable clearable

View File

@ -28,8 +28,8 @@
</el-row> </el-row>
<el-table v-loading="loading" :data="tableData" border stripe :header-cell-style="{ background: '#f5f7fa', color: '#606266' }" style="width: 100%"> <el-table v-loading="loading" :data="tableData" border stripe :header-cell-style="{ background: '#f5f7fa', color: '#606266' }" style="width: 100%">
<el-table-column prop="subjectName" label="学科名称" min-width="150" /> <el-table-column prop="name" label="学科名称" min-width="150" />
<el-table-column prop="subjectCode" label="学科编码" width="120" /> <el-table-column prop="code" label="学科编码" width="120" />
<el-table-column prop="sort" label="排序" width="80" align="center" /> <el-table-column prop="sort" label="排序" width="80" align="center" />
<el-table-column prop="status" label="状态" width="80" align="center"> <el-table-column prop="status" label="状态" width="80" align="center">
<template #default="{ row }"> <template #default="{ row }">