调整widget格式，优化代码组织，添加case覆盖率，添加部分逻辑