Files
jiaowu-test/test-arco-collapse.html
KQL c969677ef6 feat: 优化课程列表功能和班级排名样式
- 修复课程列表单元展开/收起功能
- 优化日历页面跳转到课程列表的延迟时间
- 恢复复合技能课和垂直技能课的分割线及收缩功能
- 添加班级排名第一二三名的特殊样式图标
- 修复Collapse组件onChange事件处理
- 优化课程自动选中和滚动定位功能

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-11 15:51:09 +08:00

100 lines
3.6 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>Test Arco Collapse Behavior</title>
<link rel="stylesheet" href="https://unpkg.com/@arco-design/web-react@2.66.5/dist/css/arco.css">
</head>
<body>
<div id="root"></div>
<script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script src="https://unpkg.com/@arco-design/web-react@2.66.5/dist/arco.min.js"></script>
<script type="text/babel">
const { useState } = React;
const { Collapse, Button, Space } = arco;
const CollapseItem = Collapse.Item;
function App() {
// 测试受控模式
const [controlledKeys, setControlledKeys] = useState([]);
const handleControlledChange = (keys, extra, type) => {
console.log('=== Controlled Mode ===');
console.log('onChange keys:', keys);
console.log('keys type:', typeof keys);
console.log('Is Array:', Array.isArray(keys));
console.log('extra:', extra);
console.log('type:', type);
setControlledKeys(keys);
};
const programmaticallyOpen = (key) => {
setControlledKeys(prev => {
if (!prev.includes(key)) {
console.log('Programmatically opening:', key);
return [...prev, key];
}
return prev;
});
};
return (
<div style={{ padding: 20 }}>
<h2>Controlled Mode Test</h2>
<p>Active Keys: {JSON.stringify(controlledKeys)}</p>
<Space style={{ marginBottom: 20 }}>
<Button onClick={() => programmaticallyOpen('1')}>Open Unit 1</Button>
<Button onClick={() => programmaticallyOpen('2')}>Open Unit 2</Button>
<Button onClick={() => programmaticallyOpen('vertical-1')}>Open Vertical 1</Button>
<Button onClick={() => setControlledKeys([])}>Close All</Button>
<Button onClick={() => setControlledKeys(['1', '2', 'vertical-1'])}>Open All</Button>
</Space>
<Collapse
activeKey={controlledKeys}
onChange={handleControlledChange}
expandIconPosition="right"
>
<CollapseItem header="复合能力课 - 单元 1" name="1">
<div>课程内容 1</div>
</CollapseItem>
<CollapseItem header="复合能力课 - 单元 2" name="2">
<div>课程内容 2</div>
</CollapseItem>
<CollapseItem header="垂直能力课 - 单元 1" name="vertical-1">
<div>垂直课程内容</div>
</CollapseItem>
</Collapse>
<hr style={{ margin: '40px 0' }} />
<h2>Uncontrolled Mode Test (for comparison)</h2>
<Collapse
defaultActiveKey={['1']}
onChange={(keys) => {
console.log('=== Uncontrolled Mode ===');
console.log('onChange keys:', keys);
console.log('keys type:', typeof keys);
console.log('Is Array:', Array.isArray(keys));
}}
expandIconPosition="right"
>
<CollapseItem header="Uncontrolled - Panel 1" name="u1">
<div>Content 1</div>
</CollapseItem>
<CollapseItem header="Uncontrolled - Panel 2" name="u2">
<div>Content 2</div>
</CollapseItem>
</Collapse>
</div>
);
}
ReactDOM.render(<App />, document.getElementById('root'));
</script>
</body>
</html>