doublex001
|
5fbb7222f0
|
feat(auth): 补齐密码登录通道并修复登录态从未写入的缺口
【严重缺口修复】P2(验证码)/ P2Q(一键登录)此前只 navigate('P3'),从不写登录态——
全项目唯一写 token 的地方是微信链路。微信入口一旦摘除,isTokenValid 恒为 false,
每次冷启动都会把用户打回登录页。现三条通道均接入 useAuth().login()。
【新增通道】P1 主通道改为「验证码登录」,「一键登录」为次,新增「密码登录」(P2P):
- P2P 手机号 + 密码登录;P2R 设置 / 重置密码(同页两阶段:验证手机号 → 设新密码,
成功后直接下发登录态,用户无需再登录一次)
- 设置页新增 /settings/password 修改密码,改完强制重登
【密码规则】8–20 位且需含字母和数字,规则计算统一放在 api.ts 的 validatePassword /
validatePasswordConfirm,错误码 → 文案映射放在 constants 的 PASSWORD_RULE_LABEL,
按联合类型 PasswordRuleError 建模,新增成员漏配文案会被测试拦下。
【微信入口摘除】按产品决定(丁总 2026-09-14)前端不做 QQ / 微信登录:
P1Login 移除微信按钮、滑块验证与注销弹窗;P2W / B1 页面、useWechatLogin 状态机、
wechat-sdk 及三个接口函数全部保留待启用,接入路线见 微信登录接入方案.md。
【去重公共件】新增 PasswordField(密码输入 + 明文切换)、useAgreementGate(协议门卫,
此前在 3 个页面被逐字复制)、utils/validators(手机号 / 验证码规则的单一来源)。
【测试】新增 src/__tests__/password.test.ts(24 例)。全套 6 套 45 例通过,
tsc --noEmit 0 错误,eslint . 0 问题,check-routes 67 路由 0 失效跳转。
|
1 month ago |
doublex001
|
2afe503b32
|
feat(salary): 薪资计算器保存记录与计算历史
- types: 新增 SalaryCalcRecord(输入快照+结果快照+备注+时间戳)
- api: salary:records 本地持久化 fetch/save/delete,以 storage 为唯一真相源
- hooks: 新增 useSalaryRecords(useAsyncData 取列表 + save/remove 变更)
- page: 历史按钮→历史弹层(加载/错误重试/空态/列表,点按回填参数);
保存按钮→保存弹层(备注+确认),清除两处占位 Alert
- test: 新增保存/倒序读取/删除用例;同步修正城市基数 clamp 影响的既有用例
|
2 months ago |
doublex001
|
f6d42023be
|
feat: 薪资计算器城市选择 + 文书模板预览(占位审计断点收口)
- 薪资计算器:新增城市社保/公积金基数上下限表,选城市后 clamp 社保基数并计入计算(断点②)
- 文书模板:新增模板正文与预览页 /legal/template,正文 selectable 长按可复制(断点③)
- 分层:types/constants/api/页面;tsc --noEmit 0 错误、eslint 0 警告、路由审计 0 死链
|
2 months ago |
doublex001
|
cbf38e7745
|
feat: 法律服务付费闭环、会员权益兑现与岗位评价发布(2026-09-10)
按提交纪律精确分阶段 git add(未用 -A / 未用 git rm),tsc --noEmit 0 错误、
eslint .(全量)0 警告。
| 模块 | 主要文件 | 变更要点 | 状态 |
|---|---|---|---|
| 付费支付闭环 | legal/checkout.tsx(新)、useLegalMembership.ts(新)、legal.tsx、upgrade.tsx | 选套餐→结算→选支付方式→模拟支付→会员激活并 AsyncStorage 持久化;套餐卡可点击、返回时 focus 刷新 | 完成·真实SDK仅换 api 函数体 |
| 会员权益兑现 | legal/service.tsx(新)、useLegalServiceRequests.ts(新)、legal.tsx | 修复「付了钱却拿不到服务」:未开通引导开通,已开通进入使用页提交申请并留痕 | 完成 |
| 岗位评价发布 | jobs/[id].tsx、useJobDetail.ts、api.ts | 修复「评价生态却发不出评价」:新增 createJobReview,发布后置顶并持久化 | 完成 |
| 类型与导出 | types/legal.ts、types/index.ts、api/index.ts、hooks/index.ts | 新增订单/会员态/服务申请类型与对应函数、hook 导出 | 完成 |
| 文档 | 项目开发状态.md | 同步三批功能状态与审计结论 | 完成 |
注:mock 阶段持久化统一走 src/lib/storage.ts(AsyncStorage,youzhi: 前缀),
storage 为唯一真相源,真实后端就绪后仅替换 api.ts 对应函数体。
|
2 months ago |
doublex001
|
b8d19d29cc
|
chore: 有职 App 多模块推进与配置同步(2026-09-10)
按每日 17:50 提交纪律,精确分阶段 git add(未用 -A / 未用 git rm),
tsc --noEmit 0 错误。涵盖本日及近期累积改动。
| 模块 | 主要文件 | 变更要点 | 状态 |
|---|---|---|---|
| 构建/发布 | eas.json, app.config.js | EAS 构建/OTA 骨架(runtimeVersion/updates/channel、iOS·Android 包名) | 完成·占位待注入 |
| 依赖治理 | package.json, yarn.lock, package-lock.json(删) | 移 web 脚本、统一 yarn、删陈旧 lock | 完成 |
| 微信登录 | wechat-sdk.ts, useWechatLogin.ts, useWechatBindPhone.ts, wechat-auth.ts, P2WechatCode.tsx, DeletedAccountModal.tsx | 三分支状态机(new/active/deleted)+注销不可复活 | mock 完成·真实SDK 待开放平台申请 |
| 企业端 | enterprise-chat.tsx, enterprise-overview.tsx, talent-recommendation.tsx | 快捷入口话术统一 + 沟通页快捷操作 onPress 接线 | 完成 |
| 通关小游戏 | src/api/api.ts | 7 关内容增厚至 22 题(单选/多选/输入混排) | 完成 |
| UI 技术债 | profile/audit-report/game/legal.tsx | as any → Ionicons 类型化、路由类型化 | 完成 |
| 滑块验证/注销 | SliderCaptcha.tsx, ScreenShell.tsx, settings/account-cancel.tsx, index.tsx | 滑块验证 + 账号注销流程接线 | 完成 |
| 注册链路 | register.tsx, P1Login.tsx, P2PhoneCode.tsx, AuthContext/RoleContext | 微信分支 + 手机号验证整合 | 完成 |
| 路由审计 | scripts/check-routes.mjs | 死链/失效跳转自检工具 | 完成 |
| 文档 | 项目开发状态.md, 微信登录接入方案.md | 状态盘点 + 接入路线图 | 完成 |
|
2 months ago |
doublex001
|
731b4c9bac
|
feat(onboarding): 品牌更名「有职」并重构注册引导流程
- 品牌从「职来」更名为「有职」(slug: youzhi),同步 storage 前缀与全部文案
- 登录页与选择身份页合并重构为分步引导注册(register + onboarding 多屏 + UI 组件库)
- 新增品牌 logo,设置页「身份切换/退出登录」改跳注册页
- 更新 AGENTS.md 仓库地址与提交节奏说明
|
2 months ago |
doublex001
|
0d4ee5b87c
|
fix(navigation): 修正双端(端口)切换的角色与入口问题
- 身份选项类型 hr→enterprise,与全局 AppRole 对齐(消除类型不一致)
- 两端 layout 将 setRole 由 useEffect 改为 useFocusEffect,
根治「从企业端返回求职端」后 role 残留 enterprise、菜单/数据串端的问题
- 企业端「我的」页补「切换到求职端」入口(setRole('candidate') + replace /(tabs)/jobs),
与求职端「切换到企业端」对称,避免经设置进入企业端后回不去
- 求职端「切换到企业端」卡片 onPress 显式 setRole('enterprise') 兜底
|
2 months ago |
doublex001
|
8ca6d2e44e
|
feat(content): 文章详情页正文真实化,消除占位文案
- Article 接口新增 content 字段承载文章正文
- MOCK_ARTICLES 三篇(简历/面试/薪资)补真实 mock 正文,与标题标签匹配
- article/[id].tsx 用 article.content 替换原占位文本(保留三态与样式)
说明:企业端「更多服务」6 个子页经核查均已存在真实页面
(job-management/talent-recommendation/enterprise-chat 为 Tab,
job-publish/job-evaluations/interview-score 为已治理真实页),无需填充;
故本次边界项聚焦文章正文真实化。
|
2 months ago |
doublex001
|
0431d84ad3
|
refactor(menu): 按角色拆分功能菜单,从根上消除角色混淆
- 类型层:AppRole('candidate'|'enterprise') 下沉至 src/types/user.ts,
RoleContext 改为复用并 re-export;types 桶导出补登记 AppRole
- 数据层:MOCK_MENU_ITEMS 拆为 MOCK_CANDIDATE_MENU_ITEMS(16 项求职者功能
+企业入驻入口) 与 MOCK_ENTERPRISE_MENU_ITEMS(6 项企业功能)
- fetchMenuItems(role) 按角色下发对应菜单
- 企业端总览 EnterpriseOverview 新增 menuItems 字段,接入 MOCK_ENTERPRISE_MENU_ITEMS
- useProfileData(role) 透传角色;profile.tsx 用 useRole() 传入
- 企业端「我的」新增「更多服务」区渲染 menuItems(与「管理后台」分区并列)
效果:求职者端不再出现发布岗位/岗位管理等企业功能,企业端不再混排
求职者功能,角色隔离从根上解决后台术语/企业功能暴露给 C 端的问题
|
2 months ago |
doublex001
|
5022ff2842
|
refactor(menu): 后台管理入口迁至企业端,清理 C 端菜单重复 id
- MOCK_MENU_ITEMS 移除「运营规则配置」「数据审计报告」:后台管理术语不再
暴露给求职者端菜单(这两个页面在企业端「我的-管理后台」重新落地,非孤儿页)
- 修复 MOCK_MENU_ITEMS 中 enterprise-certification 重复出现两次导致
React key 警告的问题(保留「企业入驻」)
- EnterpriseOverview 类型新增 manageActions 字段;新增
MOCK_ENTERPRISE_MANAGE_ACTIONS 并接入企业总览
- 企业端「我的」页新增 ManageList「管理后台」分区:纵向列表,不挤占
快捷入口已有的 6 项横排布局
|
2 months ago |
doublex001
|
4f8202f25f
|
fix(ui): 身份选择页清理开发标识与后台术语,统一样式与文案
- _layout: identity-select 补 header 配置 title=选择身份,消除顶部暴露路由名
identity-select(同时获得系统返回按钮)
- 移除底部悬浮齿轮入口「管理规则 / 风控审计」(后台术语,用户看不懂)
- 统一两张身份卡图标样式:白底描边 + 主色线框,去除蓝/绿重量不均衡
- 卡片间距 12→16,缓解手机屏拥挤感
- 提示文案:点击上方卡片,进入对应身份页面(原「对应端」为开发术语)
- 补充安抚提示:身份后续可在设置中切换(设置页已有该入口)
- API: HR 卡片简介改为「发布岗位、筛选人才、管理评价、展示企业形象」
替换书面化运营话术「品牌透明度建设」
|
2 months ago |
doublex001
|
7a239ffe5a
|
feat: 补全 P1 占位页与 P2 空 onPress 接线
P1 收藏/历史占位页补真实数据:
- 新增 fetchFavorites/fetchHistory 接口(api.ts + index.ts 登记)
- 新增 useFavorites/useHistory hooks 并注册导出
- 新增复用组件 JobCard,favorites/history 接入真实列表+三态+点击进 /jobs/[id]
P2 空 onPress 接线:
- growth 设置→/settings、文章卡与"更多"→/article/[id]
- legal 四分支:chat/templates/faq/upgrade 分别跳对应子页
- 新增 articles 详情页 /article/[id] 与 legal 三子页(faq/upgrade/templates)
- appeal 提交成功弹 Alert 并 router.back()
|
2 months ago |
doublex001
|
b8462676a5
|
fix: 修复企业端 P0 逻辑断裂(聊天跳转 + 人才详情路由参数)
- enterprise-chat ChatRow 增加 onPress,点击进入 /chat/[id] 会话详情
- talent-recommendation 详情按钮跳转携带 ?id= 参数
- candidate-detail 从 useLocalSearchParams 读取 id(兜底 candidate-1)
- fetchCandidateDetail 按 id 回填候选人身份字段,避免不同候选人显示同一份资料
|
2 months ago |
doublex001
|
31ab07eb35
|
chore(ci): 修复 jest/eslint 工程化门禁(对齐 RN0.86 jest-preset、eslint9、mock 默认值、清理 any/空块)
|
2 months ago |
doublex001
|
5e89bfdc13
|
refactor(profile): 求职端企业入口与企业入驻菜单主色统一为 primary,去绿
|
2 months ago |
doublex001
|
ab7cc7102e
|
refactor(enterprise): 企业端主色统一为 primary,我的页接入设置入口,统一菜单话术
|
2 months ago |
doublex001
|
1e242da714
|
feat: 鉴权态新增分端标记 + 求职意向接口/hook
- AuthContext 增加 candidateSetupDone/enterpriseVerified 标记及 completeCandidateSetup/completeEnterpriseVerify
- api.saveJobPreference + useJobPreference hook,统一从 index 导出
- 形成『身份 → 分端设置 → 对应端』漏斗的持久判定位
|
2 months ago |
doublex001
|
9c44c06afb
|
feat: 新增登录鉴权层与引导/登录逻辑
- AuthContext:会话级 onboardingSeen/isLoggedIn/token,completeOnboarding/login/logout
- api.loginByPhone + LoginResult(mock,校验验证码>=4 位)
- useLogin hook 封装 loading/error,统一从 hooks 导出
|
2 months ago |
doublex001
|
62ff6c65f9
|
feat(data): 隐私二级设置/注销/删数据/法律文档 类型与 mock;竞争力排名与岗位评价管理补数据态
类型层(src/types/settings.ts):
- 新增 PrivacyDetailSetting / DndSetting / KeywordBlockSetting / AccountCancelData / DeleteAllData / LegalDocument 及 LegalSection 类型
- src/types/index.ts 同步导出
接口层(src/api/api.ts):
- 新增隐私二级设置(开关类 6 页)mock 与 fetch/update 接口
- 新增勿扰模式、关键词屏蔽 mock 与增删接口
- 新增账号注销、删除数据 mock 与提交接口
- 新增隐私政策、用户协议完整条款(含 18 岁未成年人门槛,公司名/法院等占位标注【待确认】)
- 竞争力排名 mock 填充数据态;岗位评价管理空态标志切为 hasData:true 以展示数据态
- 修复 submitAccountCancel 未使用参数(_reason)
|
2 months ago |
doublex001
|
37182f47ab
|
feat(data): 扩展类型定义、mock 数据与 hooks 层
类型层(src/types):
- 新增 14 个业务领域类型:enterprise / data-export / settings / rank / compare / offer-compare / evaluation / game / interview / legal / operation / resume / tools / weight
- 扩展 JobManagement、TalentRecommendation、EnterpriseCommunication,新增 hasData 字段驱动空态与数据态分支
接口层(src/api):
- 重写企业端 mock 数据(岗位管理 / 人才推荐 / 企业沟通),默认 hasData: true
- 新增隐私中心与个人数据导出的 mock 数据与接口
- 预留真实 fetch 示例,签名保持不变
Hooks 层(src/hooks):
- 新增 42 个业务 hooks,统一基于 useAsyncData 封装
- 新增 usePrivacyCenter、usePersonalDataExport、useWeightSettings
- 扩展 useProfileData 接入企业端入口
|
2 months ago |
doublex001
|
a6301a8570
|
feat: 新增岗位详情页,重构个人中心与底部导航
- 岗位详情:新增 JobDetail/JobOverallScore/SalaryData/EmployeeReview 等类型、fetchJobDetail 等接口、useJobDetail Hook,新增 app/jobs/[id].tsx 页面(含 SVG 雷达图、真实薪资区间、员工评价、评论输入),岗位列表卡片接入详情跳转
- 个人中心:重做我的页 UI,品牌蓝渐变头部、综合评分卡片、八大维度横向评分条、求职偏好、勋章横滑
- 导航栏:底部 Tab 改为悬浮毛玻璃胶囊,选中浅蓝高亮 + 图标弹跳动画,引入 expo-blur 依赖
|
2 months ago |
doublex001
|
30cc3dc106
|
feat: 完成求职App核心页面与数据层并迁移至 Expo Router
|
2 months ago |