fix(login): 修复右上角语言下拉弹层宽度截断问题,确保语种名称完整展示
这个提交包含在:
@@ -23,7 +23,7 @@ function Login() {
|
||||
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
{/* 移动端顶栏(当左侧Banner隐藏时生效) */}
|
||||
{/* 移动端顶栏 (当左侧Banner隐藏时生效) */}
|
||||
<div className={styles['mobile-header']}>
|
||||
<div className={styles['mobile-brand']}>
|
||||
<div className={styles['logo-badge']}>
|
||||
@@ -34,12 +34,17 @@ function Login() {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* 右上角多语言切换入口 */}
|
||||
{/* 右上角多语言切换入口 (完整展示语言名称,避免截断) */}
|
||||
<div className={styles['lang-container']}>
|
||||
<Select
|
||||
size="small"
|
||||
value={lang || 'zh-CN'}
|
||||
onChange={handleLangChange}
|
||||
triggerProps={{
|
||||
autoAlignPopupWidth: false,
|
||||
position: 'br',
|
||||
}}
|
||||
dropdownMenuStyle={{ minWidth: 150 }}
|
||||
triggerElement={
|
||||
<button
|
||||
type="button"
|
||||
@@ -60,7 +65,7 @@ function Login() {
|
||||
|
||||
{/* 主体两栏 */}
|
||||
<main className={styles.main}>
|
||||
{/* 左侧品牌与核心能力展板 */}
|
||||
{/* 左侧品牌看板 */}
|
||||
<section className={styles.banner} aria-label="Brand Overview">
|
||||
<div className={styles['banner-inner']}>
|
||||
<LoginBanner />
|
||||
|
||||
@@ -65,7 +65,7 @@ test('2. 彻底去除多余卡片堆叠与模板化 AI 味', () => {
|
||||
assert.ok(!emojiRegex.test(banner), 'Banner 中严禁使用 emoji');
|
||||
});
|
||||
|
||||
test('3. 登录主页面必须支持多语言切换与品牌标识', () => {
|
||||
test('3. 登录主页面必须支持多语言切换且弹层文字完整展示', () => {
|
||||
const index = read('src/pages/login/index.tsx');
|
||||
|
||||
// 页面必须包含多语言选择入口
|
||||
@@ -74,6 +74,16 @@ test('3. 登录主页面必须支持多语言切换与品牌标识', () => {
|
||||
'登录主页面必须支持语言切换'
|
||||
);
|
||||
|
||||
// 下拉弹层不得强制与触发按钮等宽,必须设置充足宽度避免文字被截断为省略号
|
||||
assert.ok(
|
||||
index.includes('autoAlignPopupWidth: false'),
|
||||
'下拉菜单必须配置 autoAlignPopupWidth: false 避免被小按钮限制宽度'
|
||||
);
|
||||
assert.ok(
|
||||
index.includes('minWidth'),
|
||||
'下拉菜单必须设置 minWidth 保证语种文字完整展现'
|
||||
);
|
||||
|
||||
// 严禁 any
|
||||
assert.ok(!/\bany\b/.test(index), 'index.tsx 严禁使用 any');
|
||||
});
|
||||
|
||||
在新工单中引用
屏蔽一个用户