时间/日期/地区选择器组件招募
需要开源一个选择器,涵盖时间选择、地区选择、分割线自定义设置,以及文字大小与颜色的个性化配置。
悬赏内容
招募内容
核心需求:开发一款开源选择器组件,实现类似 ohos-PickerView 的选择交互功能,支持轻量化集成、高可定制,满足多场景选择需求。
一、核心定位与技术基础
开源属性:遵循 Apache-2.0 协议,支持 ohpm 包管理工具集成,允许自由使用、修改、二次分发。
核心目标:替代重复开发,提供单列 / 多列选择、时间选择等核心能力,兼顾易用性、稳定性和跨设备适配性。
二、核心功能需求
1. 基础选择核心能力
支持自定义单列 / 多列选项数据,兼容字符串、数值、日期等常见数据类型。
多列选择需实现联动逻辑(如省 - 市 - 区、年 - 月 - 日),联动响应延迟≤100ms,无卡顿。
支持预设默认选中项,选择完成后通过仓颉语言回调函数返回选中数据(含列索引、选项值)。
2. 样式高度自定义
可配置选择器整体宽高、背景色、边框圆角、阴影效果,适配不同应用 UI 风格。
支持自定义字体大小、颜色、字重,选中项需提供高亮样式(如背景色、下划线、字体加粗)。
允许修改确认 / 取消按钮的文本内容、字体样式、颜色及按钮尺寸,支持隐藏按钮的自定义配置。
3. 时间选择专项功能
内置时间选择模式(时 - 分、时 - 分 - 秒),支持设置时间范围(如限制 9:00-18:00 可选)。
适配 24 小时制 / 12 小时制切换,时间显示格式准确,无时分秒错位、溢出问题。
滑动切换时间时数字滚动流畅,支持惯性滑动,松手后快速定位到最近选项。
4. 交互体验优化
滑动选择响应灵敏,触摸反馈清晰,支持选中时震动提示(可配置开启 / 关闭)。
支持点击选择器外部区域关闭组件,或通过按钮触发关闭,关闭时可配置是否返回选中数据。
组件弹出 / 收起时支持淡入淡出 / 平移过渡动画,动画时长可自定义,提升交互质感。
5. 兼容性与稳定性
适配主流设备(手机、平板),不同屏幕尺寸下界面无错乱、拉伸问题。
长时间高频次操作(连续滑动 1000 次)无崩溃、内存泄漏,CPU 占用率≤15%。
支持国际化适配,可通过配置文件切换多语言文本(按钮文本、提示信息等)。
三、适用场景说明
组件适用场景包括但不限于:
表单填写:地址、生日、性别、职业等选择场景。
功能设置:闹钟时间、定时任务、音量调节等场景。
筛选交互:商品分类、价格区间、时间范围筛选等场景。
相关附件
质量认证要求
交付件
NO | 交付件描述 | 备注 |
1 | 三方库源代码 | 源代码 |
2 | 三方库测试方案和用例 | 测试用例和文档 |
3 | 用户手册,API文档,设计文档,license文档 | 资料和文档 |
验收标准
1.功能
三方库必须有明确的功能;
如果参考对标库移值开发,功能与参考三方库保持一致。
2.资料
Readme:包含简介,软件架构,目录结构,下载安装(编译构建),接口说明,使用示例,约束限制,开源协议,参与贡献等内容;
Changelog,三方库版本需包含基本的修改说明。
3.标准遵从性(可选),三方库实现需满足对应协议或行业标准,举例
appquth:支持对OAuth 的PKCE扩展;
icu4j:支持unicode标准库,通用字符集ISO/IEC 10646。
4.性能目标
性能敏感三方库接口运行性能持平对标三方库
5.开源协议遵从,必须包含License文件
放置合适的开源License协议,建议Apache License Version 2.0;
引用或参考开源三方库,需遵从开源协议。
6.网络安全要求
满足基础的网络安全红线及隐私要求,符合安全编码规范。
过程质量要求
指标分类 | 指标名称 | 指标要求 | 度量工具 | 牵引 OR Must |
代码度量 | 平均文件代码行 | ≤300 LOC | CMetricsPlus,CJMetric | Must |
总文件重复率 | C/C++≤4%;相比开源不劣化 | CMetricsPlus,CJMetric | Must | |
源文件重复率 | C/C++≤4%;相比开源不劣化 | CMetricsPlus,CJMetric | Must | |
平均函数或方法代码行* | ≤30 LOC | CMetricsPlus,CJMetric | Must | |
总代码重复率 | C/C++≤10%;相比开源不劣化 | CMetricsPlus,CJMetric | Must | |
源文件代码重复率 | C/C++≤10%;相比开源不劣化 | CMetricsPlus,CJMetric | Must | |
平均圈复杂度 | ≤5;相比开源不劣化 | CMetricsPlus,CJMetric | Must | |
冗余代码 | “0” 【2】; | CMetricsPlus,CJMetric | Must | |
不安全函数 | NA | CMetricsPlus,CJMetric | Must | |
静态检查 | 编译告警 | “0” 【2】 | Compile工具 | 牵引 |
通用静态告警 | “0” 【2】 | Pclint plus,CJLINT | Must | |
开发者测试 | DT用例密度(个/KLOC) | > 40 | 手工 | 牵引 |
DT代码语句覆盖率 | >=85% | Gcov,cjcov | 牵引 | |
DT代码分支覆盖率 | >=50% | Gcov,cjcov | 牵引 | |
未做DT文件数 | 0 | 手工 | 牵引 | |
问题解决率 | 遗留问题DI | 整体<10 | Issue | 牵引 |
遗留致命缺陷数(0) | 0 | Issue | Must | |
累计缺陷解决率 | 85% | Issue | 牵引 | |
软件开发 | 每日构建成功率 | 100% | CI | 牵引 |
测试评估 | 测试缺陷密度(/KLOC) | 5-9 | 人工 | 牵引 |
测试用例密度(个/KLOC) | 20-40 | 人工 | 牵引 | |
初验用例自动化率 | 100% | CIDA | 牵引 | |
HLT自动化用例比率 | 【85%,95%】 | CIDA | 牵引 | |
开源第三方(含构建工具) | 开源片段引用 | 0(除例外备案类) | FOSSBOT+人工 | Must |
可信构建 | 二进制一致性 | 0(含可澄清) | 人工 | Mus |

