奖学金申请修改按钮不能点击问题修复
📋 变更信息
- 变更日期: 2025-08-05 15:15:00
- 变更人员: Cursor AI Assistant
- 变更类型: Bug修复
- 影响模块: 奖学金申请管理
- 变更描述: 修复修改按钮不能点击的字段映射问题
🐛 问题描述
问题现象
- 添加了状态检查后,修改按钮变成禁用状态,无法点击
- 用户反馈"修改按钮不能点了"
问题原因分析
字段映射不一致:
- 表格使用的是
prop="status" 字段
- TypeScript接口中定义的是
currentStatus 字段
- 按钮禁用条件使用了
currentStatus 导致字段不匹配
前后端字段不统一:
- 后端返回数据使用
status 字段
- 前端类型定义缺少
status 字段
🔧 修复方案
1. 修复按钮禁用条件
问题代码
:disabled="scope.row.currentStatus !== 'draft'"
修复后代码
<!-- 暂时移除禁用条件,确保按钮可点击 -->
<el-button
link
type="primary"
icon="Edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['jcbt:scholarshipApplication:edit']"
></el-button>
2. 修复函数内状态检查
问题代码
if (row.currentStatus !== 'draft') {
ElMessage.warning('只有草稿状态的申请才能修改');
return;
}
修复后代码
if (row.status !== 'draft') {
ElMessage.warning('只有草稿状态的申请才能修改');
return;
}
3. 完善TypeScript类型定义
添加兼容字段
interface ScholarshipApplicationVO {
// ... 其他字段
currentStatus?: string;
status?: string; // 前端兼容字段,与currentStatus保持一致
// ... 其他字段
}
✅ 修复验证
修复后的行为
- ✅ 修改按钮可点击: 移除了错误的禁用条件
- ✅ 状态检查: 在函数内部进行状态检查,给出友好提示
- ✅ 字段兼容: 添加了status字段到类型定义中
- ✅ 用户体验: 点击按钮后会有状态提示而不是直接禁用
预期用户体验
- 所有申请: 修改按钮都可以点击
- 草稿状态: 点击后正常跳转到编辑页面
- 非草稿状态: 点击后显示"只有草稿状态的申请才能修改"提示
🎯 技术要点
字段映射问题解决
- 前后端统一: 确保前后端使用相同的字段名
- 类型兼容: 在TypeScript接口中添加所有可能的字段
- 状态检查位置: 在函数内部而不是模板中进行复杂逻辑判断
用户体验优化
- 按钮可点击: 避免直接禁用按钮,改用点击后提示
- 友好提示: 给出明确的操作限制说明
- 权限控制: 保持原有的权限控制逻辑
📝 注意事项
- 字段一致性: 前后端字段名要保持一致
- 类型定义: TypeScript接口要包含所有使用的字段
- 状态检查: 复杂的业务逻辑建议在函数中处理,而不是模板中
- 用户体验: 优先考虑用户体验,避免无说明的禁用状态
🔄 后续优化建议
- 统一字段名: 后续考虑统一前后端使用相同的字段名
- 状态管理: 建立完整的状态流转规则
- 类型生成: 考虑从后端API自动生成前端类型定义
- 按钮状态: 可以考虑用样式区分不同状态的按钮
修复完成时间: 2025-08-05 15:15:00
测试状态: ✅ 修改按钮可正常点击
部署状态: 🟡 待部署测试