Files
hzdyjs/docs/变更管理/code-adjust-record-2025-07-15-wuzhen.md
T
2025-07-24 21:03:00 +08:00

6.7 KiB
Raw Blame History

招生报名信息页面优化记录

时间: 2025-07-15 18:30:00 修改人: wuzhen

功能优化

调整内容

  1. 调换搜索区域字段顺序:

    • 将所属学院选择框提前,报考专业选择框放在后面
    • 优化布局,保持一致的样式和宽度
  2. 改进搜索区域布局:

    • 采用响应式网格布局,每行显示4个搜索条件
    • 将固定宽度改为自适应宽度,更好适应不同屏幕尺寸
    • 优化标签和输入框对齐方式,提升整体美观度
  3. 实现学院与专业的联动:

    • 将报考专业字段从输入框改为下拉选择框
    • 根据选择的学院自动筛选对应的专业列表
    • 当学院选择变化时,清空并更新专业选项
  4. 数据来源优化:

    • 从字典数据和部门数据两个来源获取专业信息
    • 对专业数据进行去重处理,确保选项不重复
    • 参考了新增报名信息页面的实现方式
  5. 操作按钮布局优化:

    • 将操作按钮(新增、修改、删除、导出、批量审核)调整为垂直布局
    • 按钮从标题旁改为放置在标题下方,更加符合用户阅读和操作习惯
    • 搜索展开/收起控件单独放在标题行右侧,与主操作按钮分离

具体修改

  1. 前端布局改进:

    <!-- 修改前:内联布局,固定宽度 -->
    <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">
      <el-form-item label="报考专业" prop="appliedMajor">
        <el-input v-model="queryParams.appliedMajor" placeholder="请输入报考专业" clearable style="width: 240px" />
      </el-form-item>
      <el-form-item label="所属学院" prop="collegeId">
        <el-select v-model="queryParams.collegeId" placeholder="请选择学院" clearable style="width: 240px">
          <!-- 学院选项 -->
        </el-select>
      </el-form-item>
      <!-- 其他搜索条件... -->
    </el-form>
    
    <!-- 修改后:响应式网格布局,自适应宽度 -->
    <el-form :model="queryParams" ref="queryFormRef" label-width="80px">
      <el-row :gutter="20">
        <!-- 第一行:4个条件 -->
        <el-col :span="6">
          <el-form-item label="姓名" prop="name">
            <el-input v-model="queryParams.name" placeholder="请输入姓名" clearable />
          </el-form-item>
        </el-col>
        <!-- 更多表单项... -->
      </el-row>
      <el-row :gutter="20">
        <!-- 第二行:4个条件,包括学院和专业 -->
        <el-col :span="6">
          <el-form-item label="所属学院" prop="collegeId">
            <el-select v-model="queryParams.collegeId" placeholder="请选择学院" clearable class="w-100" @change="onSearchCollegeChange">
              <!-- 学院选项 -->
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="报考专业" prop="appliedMajor">
            <el-select v-model="queryParams.appliedMajor" placeholder="请选择报考专业" clearable class="w-100">
              <el-option v-for="major in searchMajorOptions" :key="major.value" :label="major.label" :value="major.value" />
            </el-select>
          </el-form-item>
        </el-col>
        <!-- 更多表单项... -->
      </el-row>
    </el-form>
    
  2. 添加响应式数据和CSS类:

    // 搜索区域的专业选项
    const searchMajorOptions = ref<Array<{ value: string, label: string }>>([]);
    
    /* 添加全宽样式类,用于表单控件的自适应宽度 */
    .w-100 {
      width: 100% !important;
    }
    
  3. 添加联动处理函数:

    // 搜索区域学院选择变化时的处理
    const onSearchCollegeChange = (selectedCollegeId: string) => {
      queryParams.value.appliedMajor = ''; // 清空专业选择
      if (!selectedCollegeId) {
        searchMajorOptions.value = [];
        return;
      }
    
      // 从多个来源获取专业数据并进行整合、去重
      const majors: Array<{ value: string, label: string }> = [];
    
      // 从字典数据获取
      if (zsjy_major.value) {
        const filteredMajors = zsjy_major.value.filter(
          item => item.cssClass === selectedCollegeId
        );
        majors.push(...filteredMajors.map(m => ({ value: m.value, label: m.label })));
      }
    
      // 从部门数据获取
      const college = collegeOptions.value.find(c => c.deptCategory === selectedCollegeId);
      if (college && majorOptionsByCollege.value[college.deptId]) {
        const deptMajors = majorOptionsByCollege.value[college.deptId];
        majors.push(...deptMajors.map(m => ({
          value: m.deptName,
          label: m.deptName
        })));
      }
    
      // 去重处理
      searchMajorOptions.value = majors.filter((item, index, self) =>
        index === self.findIndex(m => m.value === item.value)
      );
    };
    
  4. 操作按钮布局优化:

    <!-- 修改前:横向按钮布局 -->
    <div class="card-header">
      <span class="toolbar-title">招生信息管理</span>
      <div class="toolbar-actions">
        <el-button>新增</el-button>
        <el-button>修改</el-button>
        <!-- 更多按钮... -->
        <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
      </div>
    </div>
    
    <!-- 修改后:垂直布局 -->
    <div class="card-header-vertical">
      <span class="toolbar-title">招生信息管理</span>
      <div class="search-toggle">
        <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
      </div>
    </div>
    <div class="button-group">
      <el-button>新增</el-button>
      <el-button>修改</el-button>
      <!-- 更多按钮... -->
    </div>
    

效果

  1. 改进后的搜索区域布局整齐美观,每行显示4个搜索条件,更加直观高效
  2. 输入框和下拉框宽度实现自适应,在不同屏幕分辨率下都能合理展示
  3. 搜索条件按照使用频率和关联性排列,学院和专业条件相邻放置
  4. 实现了学院和专业的联动筛选,提高了用户体验和数据准确性
  5. 与新增报名信息页面的交互方式保持一致,降低用户学习成本
  6. 操作按钮调整为垂直布局,视觉层次更加清晰,符合用户从上到下的阅读和操作习惯

测试验证

  1. 在不同屏幕尺寸下验证搜索区域的自适应布局表现
  2. 验证每行是否正确显示4个搜索条件,布局是否对齐美观
  3. 选择不同学院,验证专业选项是否正确更新
  4. 清空学院选择,验证专业选项是否被清空
  5. 使用多个搜索条件组合进行搜索,验证搜索结果是否符合预期
  6. 验证操作按钮在垂直布局下是否正常工作,展示效果是否美观

责任人

wuzhen