doublex001
|
410b1b7386
|
refactor(theme): 卡片间隔令牌化收尾,borderRadius/padding:8 收敛为 spacing.card
- 82 个 .tsx 文件的卡片 borderRadius/padding(含 H/V):8 收敛为 spacing.card(值恒 8,零视觉变化)
- 自动补齐 spacing 的 theme 导入(复用已有导入或按目录深度计算相对路径)
- check-spacing 令牌引用命中 954 处且仍 0 违规,审计网未撕裂
- 更新项目开发状态.md(4.21 残留①标记完成 + 新增 4.23)
|
1 month ago |
doublex001
|
928c310c36
|
feat(theme): 新增间距设计令牌层并收敛 onboarding 非卡片间距
- 新增 src/theme/spacing.ts:标尺(xs4/sm8/md12/lg16/xl24) + 语义令牌(card8/gutter8/framework16/block12/section12),src/theme/index.ts 从 ./spacing 导出
- 扩展 scripts/check-spacing.mjs:resolveSpacing 解析 spacing./spacingTokens. 引用,令牌化卡片不再被静默跳过(修潜在 bug),输出新增令牌命中统计
- onboarding 35 文件非卡片间距令牌化+收敛(18→block/22→section/14→block/10→sm/12→block)
- 更新项目开发状态.md 4.21
- B5(app 框架 padding:16) 本批延期,spacing.framework 单一来源已就绪
|
1 month ago |
doublex001
|
3aa3c60004
|
feat: 软件改名「轻松聘」,引导页改为三屏满屏主题色
改名(带断言的白名单脚本,逐文件核对改前出现次数,对不上不写盘):
- 显示名「有职」→「轻松聘」:代码+配置 13 文件 50 处,文档 12 处
- 标识符 youzhi → qingsongpin:app.config.js 的 slug / scheme /
ios.bundleIdentifier / android.package、storage 键前缀、高德 URL 的 src、
screenshots 截图流水线 manifest 的 scheme
- 注意:storage 的 KEY_PREFIX 变更会让本机旧数据读不到(未上架、仅开发数据,
可接受;若已有线上用户数据必须写迁移而非直接换前缀)
引导页 app/guide.tsx 四屏 → 三屏(标题为产品文案):
求职开挂 AI护驾 / 真实能力 一测便知 / 一起解锁 职场秘籍
- 副标题只写仓库里查得到的已上线模块,未编造能力
- 整页底色改用新增 token onboardingGradient(primary → primaryBtn → primaryDark):
现成的 headerGradient 三支末端是青 #4FD1C5,白字仅约 1.9:1,只适合顶部深色区,
不能做整页底色;配 locations=[0,0.34,1] 使正文落在 5.2:1 以上
- 底部按钮反色为白底 + primaryText 蓝字;前两屏「下一步」、第三屏「开启体验」
- 状态栏加 style="light"(根布局是 dark,深蓝底上会黑压黑)
- 素材位 guideEvaluate/guideWeightDim/guideGameMap/guideLegalAI
→ guideAiCopilot/guideAbilityTest/guideGrowthUnlock
待补图(已逐张打开确认,非推测):assets/icon.png、splash-icon.png、
brand-logo.jpg、android-icon-{foreground,background,monochrome}.png 仍是有职字标
门槛:tsc 0 / eslint 0 / 26 套件 365 用例全过 / check:spacing 196 张卡片全 8px 全绿
真机:模拟器像素测量,CTA 按钮左边界 16.0dp、高 50.0dp,渐变三点与理论值吻合
|
1 month ago |
doublex001
|
eaa8adb858
|
style(ui): 引导页 8px 收敛与上批 gap 漏网修正,新增间距核对门槛
4.18 的核对脚本把 components/onboarding/ 整目录排除了,于是规则里最明确的
「整个项目所有卡片的圆角都必须是 8px」在 26 个引导页上从未被核对过。排除是
脚本作者自己加的,不是用户说的。本批先把它从「待定夺」变成「有数据」。
实测引导页 42 处 borderRadius:真卡片只有 5 张,其余是控件、图标底色块、圆与
占位框。「引导页自成一套半径体系」这个排除前提是假的 —— 其卡片半径是
8/14/10/8/8,只有两张不在 8,不存在另一套体系。
改动(10 个文件 +14/−14):
- ScreenShell.scrollContent 内容留白 20 → 8;P1Login.content 24 → 8
(P1 不用页壳,自带 content)
- RadioRow.row 12/14/16 → 8/8/8 —— 它与主应用 holland/question.option、
game/level.option 同形态(横排 + space-between + 白底 + borderWidth: 1),
那两处上批已判为卡片并置 8,是代码库自己否掉了「RadioRow 属控件」的判断
- B1Wechat.preview 圆角 14 → 8、内边距 14 → 8
- P12Company.notice 圆角 10 → 8、内边距 12 → 8、卡片间隔 16 → 8
- P9JobStatus.list / P18Education.list 的卡片间隔 gap 10 → 8
改错又还原的两处(本批最该记的教训):
ScreenShell.backRow 与 footer 我改成了 8,两处都还原为 16。主应用底部固定区
的口径就是 16(padding: 16 出现 4 次),头部返回图标的视觉位置也在 16 上下
(headerBtn 是 40×40 居中盒,42/58 个文件如此)。即引导页原本的 16 本就与
主应用一致,只有内容留白 20 与主应用的 8 不符。我先前「同屏三个留白、体系
不自洽」的判断站不住:16 是全应用通用的框架留白,且返回按钮属页面框架、
不是卡片,不在「页面留白」范围内。教训是:判断某个值该不该统一之前,
先量一遍主应用同类元素的既有取值。
补上 4.18 卡片间隔维度的 3 处漏网:holland/question.options gap 10、
holland.featureList gap 10、jobs/weight-settings.templateRow gap 10,
三者子元素分别是 option / featureCard / templateCard,全是 r8/padding 8 的卡片。
纠正 4.18 的不实结论:当时报「卡片 477 / 圆角 = 8:217」并称剩余非 8 的只有
若干控件。实际那个脚本的排除正则锚定全名(^(...|btn|tag|chip|...)$),
retryBtn / statusTag / filterChip / progressTrack 这类带后缀的键一个都没匹配上,
260 个控件全被当成卡片报出来。217/477 是脚本的原始通过数,剩余 260 项是肉眼
判成控件的,脚本从未验证过这个判断。另有大小写漏匹配与 *Box 排除过头
(emptyBox / salaryBox / matchBox 被一并吞掉,等于把上批改过的东西排除在核对之外)。
新增 scripts/check-spacing.mjs + npm run check:spacing(--error 有命中即 exit 1),
与 check-routes / check-affordances / check-icons / check-backend-stubs 同族体例。
把判据编码进脚本而不是留在人脑:结构判定而非命名判定、按词尾而非全名排除、
圆用几何判据(width === height 且 borderRadius ≈ width/2)、排除项逐条打印供复核,
给排除表加名字要写理由。可失败性已在仓库脚本上复验:塞入含 4 类违规的探针文件
四维全命中且 exit 1,删掉后 exit 0。
真机验证(emulator-5554,非代码走查):引导页由内部状态机驱动、无 URL 参数,
临时改初始步截图,看完已还原并 git diff 确认无残留。用像素测量代替目视
(/tmp/mdj/px.js 解码 PNG 取某行首个非背景像素;密度 420dpi → 比例 2.625)。
P1 按钮 8dp、P9 卡片 8dp/按钮 8dp、P17 卡片 8dp/按钮 8dp、B1 卡片居中(设计如此)
/按钮 8dp、P12 提示卡 8dp/按钮 8dp。头部返回箭头改动前后同行 52px → 73px,
差 21px 正好 8dp,一次同时证明热重载与还原都生效。
门槛:tsc 0 / eslint 0 / 26 套件 365 用例全过 / check-routes /
check:affordances / check:icons(194 文件 1357 字形)/ check-backend-stubs(140 函数)/
check:spacing(卡片 196,圆角 = 8:196/196,另三维度 0)全绿。
|
1 month ago |
doublex001
|
00522d53f9
|
feat: 死控件清零并修复一键登录取号、重做引导页
一键登录(P2Q)取不到手机号的根因不在取号:页面读的是 data.phone,而该字段
只有短信通道才写入,且 loginByCarrier 返回的 phone 被直接丢弃,于是号码位恒为
占位「本机号码」。现改为进页面即预取(useCarrierPhone + fetchCarrierPhone),
失败时置灰按钮并给出「重新获取 / 改用验证码登录」,成功后把号码写回引导资料
(P2P/P2R 预填与 B3 联系人电话同源)。真实取号是运营商原生 SDK,Expo Go 跑不了,
接入路线图见新增文档《运营商一键登录接入方案.md》。
引导页重做四屏内容与配图,配图位走新增组件 ImageSlot:素材未到位时在页面上标注
「配图待补」+ 该放什么图,补图只改 assets.ts 的 source 一行;设置页补「查看引导页」
入口(此前只有首次启动能进,看过一次就再也进不去),并区分「首次启动」与
「已登录回顾」两种出口,避免把已登录用户甩回注册流程。
企业沟通 / 人才推荐两页的 Tab 与搜索真正生效:Tab 计数与待办数量改由列表推导
(原先写死的数字与示例数据对不上,会出现「Tab 写 3、列表 0 条」),无对应页面的
漏斗图标摘除,筛选复位不再只是弹提示;申诉举证接真实选图,候选人详情「发起沟通」
跳会话页,面试评分支持本地草稿与恢复,入职清单勾选落库并可增删自定义待办、导出文本,
薪资计算器「更多工具」改指真实路由(原先三项都指回自己),技能词云接搜索与学习路径生成。
测试新增 3 个文件 51 例(共 219 例全绿),存储 mock 由「恒返回 null」改为带状态 Map,
使「存了要能读回来」这类行为真正被验证;tsc / eslint / 三个审计脚本(0 失效跳转、
0 死控件、137 个接口预留)均 0 问题。
另:package-lock.json(本项目统一用 yarn.lock)与本地调试截图加入 .gitignore。
|
1 month ago |
doublex001
|
731b4c9bac
|
feat(onboarding): 品牌更名「有职」并重构注册引导流程
- 品牌从「职来」更名为「有职」(slug: youzhi),同步 storage 前缀与全部文案
- 登录页与选择身份页合并重构为分步引导注册(register + onboarding 多屏 + UI 组件库)
- 新增品牌 logo,设置页「身份切换/退出登录」改跳注册页
- 更新 AGENTS.md 仓库地址与提交节奏说明
|
2 months ago |