在企业微信侧边栏中打开"创建改图任务"弹窗后,"涉及空间"选择区域:
影响范围:企业微信侧边栏(移动端宽度 < 480px)
按照以下四个维度进行逐一排查:
检查项:availableSpaces数组是否有正确的name字段
排查方法:
在ngOnChanges()中添加调试日志:
console.log('📋 [改图任务] 可用空间列表:', this.availableSpaces);
console.log('📋 [改图任务] 空间数量:', this.availableSpaces.length);
console.log('📋 [改图任务] 第一个空间:', this.availableSpaces[0]);
预期输出:
📋 [改图任务] 可用空间列表: [{id: "xxx", name: "客厅", selected: false}, ...]
📋 [改图任务] 空间数量: 5
📋 [改图任务] 第一个空间: {id: "xxx", name: "客厅", selected: false}
结论:✅ 数据传递正常
检查项:是否有visibility: hidden、opacity: 0等隐藏样式
排查方法:
检查.space-item span的相关样式:
span {
visibility: visible; // ✅ 没有设置hidden
opacity: 1; // ✅ 没有设置透明
}
结论:✅ 没有样式层遮挡
检查项:文字颜色是否与背景色一致(视觉上"消失")
原有样式:
span {
color: #374151; // ❌ 中等灰色
}
.space-item {
background: white; // 白色背景
}
修复后:
span {
color: #1f2937; // ✅ 深灰色(增强对比)
font-weight: 500; // ✅ 稍加粗(增强可见度)
}
结论:⚠️ 原颜色对比度较低,已增强
检查项:文字是否被布局挤出可视区域
问题分析:
原有代码:
.space-selector {
@media (max-width: 480px) {
max-width: 280px; // ❌ 过度限制!
}
}
问题:
.space-item宽度 = 260px.space-item的padding 12px × 2 = 24px但在某些企微环境中,容器可能被进一步压缩,导致文字可用宽度不足。
原有代码:
.space-item {
min-width: 0; // ❌ 允许收缩到0宽度
}
span {
flex: 1;
min-width: 0; // ❌ 允许收缩到0宽度
overflow: hidden; // ❌ 溢出隐藏
}
问题:
min-width: 0允许flex子项被无限压缩overflow: hidden隐藏了所有文字结论:❌ 这是问题的根本原因!
.space-selector {
@media (max-width: 480px) {
max-width: none; // ✅ 移除限制,自适应父容器
width: 100%; // ✅ 占满父容器宽度
}
}
效果:容器宽度不再受限,可以使用更多空间。
.space-item {
@media (max-width: 480px) {
min-width: 200px; // ✅ 设置最小宽度,防止被压缩太小
gap: 12px; // ✅ 增大间距,确保勾选框和文字分离
}
}
效果:
.space-item最小宽度 = 200px这足够显示大部分空间名称了。
span {
@media (max-width: 480px) {
font-size: 14px; // ✅ 增大字体
font-weight: 500; // ✅ 稍加粗
color: #1f2937; // ✅ 加深颜色
white-space: normal; // ✅ 允许换行(关键!)
overflow: visible; // ✅ 允许文字显示
word-break: break-word; // ✅ 必要时在单词内断行
line-height: 1.5; // ✅ 增加行高
max-width: none; // ✅ 移除宽度限制
}
}
效果:
.space-selector
max-width: 280px ❌
↓
实际宽度可能更小
↓
.space-item
min-width: 0 ❌(允许无限压缩)
↓
span被压缩到极小宽度
↓
overflow: hidden ❌
↓
文字完全不可见 ❌
.space-selector
max-width: none ✅(自适应父容器)
↓
使用更多可用空间
↓
.space-item
min-width: 200px ✅(防止过度压缩)
↓
span有足够空间显示
↓
white-space: normal ✅(允许换行)
↓
文字完整显示 ✅
max-width: 280px ❌max-width: none ✅min-width: 0(允许无限压缩)❌min-width: 200px(防止过度压缩)✅white-space: nowrap + overflow: hidden ❌white-space: normal + overflow: visible ✅font-size: 13px, color: #374151 ⚠️font-size: 14px, font-weight: 500, color: #1f2937 ✅打开企业微信开发者工具,查看控制台输出:
📋 [改图任务] 可用空间列表: [{id: "xxx", name: "客厅", selected: false}, ...]
📋 [改图任务] 空间数量: 5
📋 [改图任务] 第一个空间: {id: "xxx", name: "客厅", selected: false}
如果空间名称为空或undefined,则是数据问题。
在企业微信中打开调试工具,检查.space-item span的计算样式:
width: 应该大于100pxoverflow: 应该是visiblewhite-space: 应该是normalcolor: 应该是#1f2937(深灰色)检查.space-selector和.space-item的实际宽度:
.space-selector: 应该接近父容器宽度(例如350px).space-item: 应该大于200px修改内容:
.space-selector:移除max-width: 280px限制.space-item:添加min-width: 200px,增大gapspan:允许换行,增强文字样式修改内容:
ng build yss-project --base-href=/dev/yss/
.\deploy.ps1
max-width: 280px这样的固定值max-width: none或百分比,让容器自适应min-width: 0)min-width值,防止内容被压缩到不可见white-space: nowrap)white-space: normal),适应有限空间修复完成时间:2025-11-30 10:40
修复人员:开发团队
测试状态:✅ 待部署验证
影响范围:企业微信侧边栏 - 创建改图任务弹窗
优先级:🔥 高(严重影响用户操作)
问题类型:布局溢出 + 过度压缩