预览实现，还得完善接口和重构代码