Pine
|
f5ffb19604
|
feat(finance): 新增财务分组与充值套餐管理页
套餐(面额/赠送/折扣/上架)写入 system_configs.recharge_packages,支付服务约60秒缓存生效
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-30 22:32:49 +08:00 |
|
Pine
|
0369cbb146
|
feat(compute): 算力页改造为平台用户视图(引擎真实余额/折扣/用量)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-30 22:32:49 +08:00 |
|
Pine
|
6568108777
|
feat(users): 建号规则(手机号必填/随机账号)+手机号绑定表单
管理端与园区端用户创建/编辑表单同步收紧,usersApi 新增 bindPhone
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-30 22:32:49 +08:00 |
|
Pine
|
21c4701de9
|
feat(login): 登录改造(去账密/短信+扫码) + 资讯发布时间/来源/导读表单
- 登录页移除账号密码 tab,仅短信+小程序扫码;扫码组件重写:倒计时+失效模糊蒙版+手动刷新(失效即停轮询,绝不自动刷新)
- 文章编辑器:发布时间(datetime-local,定时发布)+来源+导读(独立编辑不限字数)+作者留空显示官方
- 园区端发布:来源+发布时间(禁早于3天前校验),无发布人输入
|
2026-08-28 17:26:29 +08:00 |
|
Pine
|
1ed474a006
|
chore: 汇总提交(算力中心/内容审核/园区企业成员/园区用户tab/任务资格表单/依赖锁)
|
2026-08-27 21:03:45 +08:00 |
|
Pine
|
64d75249b4
|
fix(auth): LoginResponse 增加 phone/phoneBound/wxBound/wxMiniBound 绑定状态字段
个人中心设置页据此识别手机号与小程序/微信绑定;后端 /auth/me 已返回这些字段
|
2026-08-27 20:27:43 +08:00 |
|
Pine
|
5bad4f5c6c
|
feat(任务): 运营端+园区端任务管理改独立页面(不弹窗) + 任务详情/发布/开标/选定
- 运营端 /tasks 列表改 Link(详情/编辑为独立页),去掉新增/编辑弹窗
- /tasks/new 与 /tasks/:id/edit = TaskEditor(编辑/发布表单, 多端配置) 独立页
- /tasks/:id = TaskDetail 任务详情页:基本信息 + 报名/接单情况(claims) + 竞标情况(bids) + 发布/下架 + 开标中标(winBid) + 指派
- 园区端 tasks-tab 加「发布任务」行内表单(不弹窗):标题/分类/方式/可见性/预算/名额/条件/公有等,经 createParkTask 发布
- tasksApi 增 getOne/bids/claims/winBid;parkApi 增 createParkTask
|
2026-08-27 20:19:55 +08:00 |
|
Pine
|
8fe18e38e4
|
feat(园区端): 任务管理菜单+独立页面(不发弹窗) —— 本园任务列表/行内发单/指派/上下架
- parkApi 增 parkTasks/parkTaskStatus/parkTaskRelease/parkTaskAssign(带 tenant_id 按园区隔离)
- pages/park/tasks-tab.tsx:DataTable 行内操作(发单/指派/上下架),行内展开不弹窗
- pages/park/pages.tsx 导出 ParkTasksPage;App.tsx 加 /park/tasks 路由
- CARRIER_NAV「园区运营」加「任务管理」菜单(无 perm 恒对 carrier 显示,避免权限码未就绪不出现)
- SlidersHorizontal 图标导入
|
2026-08-27 20:11:47 +08:00 |
|
Pine
|
dfccfc9602
|
brand: 侧边栏/登录页/favicon 改用 logo.png(新增 public/logo.png)
|
2026-08-27 19:53:45 +08:00 |
|
Pine
|
40156975a1
|
feat(tasks): 任务管理表单增强 —— 发布方角色/可见性/指派类型/归属园区/竞标名额/接单条件JSON/托管方式 + C端可见/公有任务开关
|
2026-08-27 19:29:51 +08:00 |
|
Pine
|
b001a19b3d
|
style(admin): 预览外链去箭头emoji
|
2026-08-27 15:50:07 +08:00 |
|
Pine
|
81805804c9
|
feat(admin): 公众号式写文章富文本编辑器(WangEditor) + OSS 上传
- 新增 @wangeditor/editor(+for-react)/dompurify;/article-editor 整页编辑器:左侧封面/标题/新建内容,顶部 WangEditor 工具栏(图片/视频/超链接走 /admin/upload),中央标题(0/64)+作者+富文本正文,底部字数/保存草稿/预览/发表
- contentApi +getOne;后端 GET /content/{id} 回填
- 资讯列表「写文章」header + 每行「编辑文章」跳转编辑器;CrudTable +headerActions/createLabel
- 预览用 DOMPurify 消毒富文本
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-27 14:59:22 +08:00 |
|
Pine
|
51abec765f
|
feat(admin): 资讯富编辑UI(封面/视频/封面/外链/发布人) + 媒体上传
- CrudTable +image 字段类型(选择文件→upload→预览/清除) + upload prop
- contentApi.upload(FormData /admin/upload)
- content 页字段:封面(image)/视频URL/视频封面(image)/外链/发布人昵称/发布人头像(image)+表格封面/发布人列
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-27 14:38:02 +08:00 |
|
Pine
|
fbfd6c1712
|
feat(admin): 资讯管理完整增删改 + 类别(政策/资讯/技能/动态)
- content 页改用 CrudTable:类别 select(policy/news/skill/dynamic) + 新增/编辑/删除 + 发布/下线快捷钮(extraActions)
- CrudTable:+extraActions、+textarea 字段类型、+Field full 列
- contentApi:+update(PUT)/remove(DELETE)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-27 14:10:20 +08:00 |
|
Pine
|
21f68fe0be
|
feat(admin): 课程/活动管理富操作(新增/编辑/删除/状态)
- 新增通用 CrudTable 组件:列表 + 新增/编辑表单弹窗 + 删除/刷新,字段 schema 驱动(text/number/select),可复用于其它管理页
- courses/activities 页改为 CrudTable:课程(名称/分类/等级/价格/场地/名额/时间/状态)、活动(类型/形式/地点/人数/时长/主办/状态)
- resources:coursesApi/activitiesApi 补 update(PUT)/remove(DELETE);Activity 类型补 mode/duration_min/host/link/image/desc
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-27 10:33:26 +08:00 |
|
Pine
|
3e425f9f81
|
feat(park-admin): 平台端 园区企业查看 + 算力(折扣%/配额只增不减) 管理
- park-admin 每个园区列出入驻企业(成员数) + 企业算力面板(折扣%只可增、配额追加)
- parkApi 补 adminTenantCompanies / adminSetCompanyCompute;复用同级 monotonic 服务端校验
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-26 20:00:47 +08:00 |
|
Pine
|
e8009ea562
|
feat(park-company): 园区端 企业成员管理 + 算力(折扣%/配额只增不减) UI
- companies-tab:企业表格加 成员数/算力(折扣·配额) 列;行内「成员」「算力」操作
- 成员面板:成员列表 + 从候选池(company-pool)添加/移除成员
- 算力面板:折扣%(只可增,min=当前) + 追加配额(只可增);调 parkApi.setCompanyCompute
- parkApi 补 companyMembers/companyPool/addCompanyMember/removeCompanyMember/setCompanyCompute;类型 ParkCompany 加 compute 字段、ParkMember 对齐后端
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-26 19:59:45 +08:00 |
|
Pine
|
fc1841dfe6
|
refactor(auth): 管理端清除多身份残留(identities/currentIdentity/selectIdentity/Identity)
- auth.tsx/type 去 identities/currentIdentity 状态与 Identity 类型,role 恒取 user.role
- api/auth.ts 删 selectIdentity、getSavedUser/saveUser 去 identity 字段
- types.ts LoginResponse 去 identities/identity_id/port/identity_name 字段
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-26 19:16:14 +08:00 |
|
Pine
|
40176d2149
|
feat(park): 平台园区管理瘦身 + 屏幕绑定页 + 园区端菜单分组
- 平台端园区管理收敛为创建/删除/停用;新增园区子页 park-admin
- 平台屏幕绑定页:未绑定仅在线屏、已绑定显示在线状态+解绑
- 园区端(carrier)工作台子页 pages + 按主题分组菜单;park 路由布局按 role 分流
- park.ts/types 补 adminScreens/adminTenants/bind/unbind 及 online 字段
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-26 19:03:13 +08:00 |
|
Pine
|
9097f52fe4
|
feat(auth): 管理端统一鉴权+身份标签校正,菜单按权限码显隐
- AppShell 身份标签按 role 映射(operator→运营方),不再信任脏 account_type_label
- auth.tsx role 取 user.role(单角色);登录去多身份 Dialog、按 role 进端口
- rbac.tsx 菜单项补 perm 权限码,navForRole 按 user.permissions 过滤(无权限菜单不显示)
- App/login 去多身份跳转
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-26 19:03:09 +08:00 |
|
Pine
|
435d342d13
|
feat(admin-portal): OPC认证/入园/转园 审核页 + users 弹窗增强
- certification: 对接 /admin/opc-certifications (list+审核, 富信息/意见)
- admission: 平台入驻审核 /admin/park-admissions
- park-transfer: 平台转园审核 /admin/park-transfers
- park: 园区端入园/转园 Tab (carrier 本园区)
- users: 弹窗加绑定徽章+园区归属提示
- types/api: ParkAdmission/OpcCertification/ParkTransfer + 审核流程
|
2026-08-26 15:44:06 +08:00 |
|
Pine
|
6cdcc9661e
|
feat(admin): 用户管理丰富编辑+去除角色权限+优化菜单
- 用户管理: 取消「分类」按钮, 合并进「编辑/管理」弹窗(账号类型4种/认证/所属/绑定园区), 移除子角色
- 移除 角色权限 页面/路由/菜单/rolesApi(前端不再管理角色权限)
- 左侧菜单分组: 总览/平台管理/培训内容/业务运营; 运营端=运营方, 园区端=载体方单独
- ACCOUNT_ROLES 收敛为四种(运营方/载体方/OPC/服务方)
|
2026-08-26 13:19:10 +08:00 |
|
Pine
|
484057b11f
|
fix(ui): 当前身份显示账号类型文本标签(后端account_type_label), 不再显示代码
|
2026-08-26 13:09:03 +08:00 |
|
Pine
|
4e46ebaf10
|
fix(auth): 角色恒取 user.role(真实账号角色) —— 修登录后无权限需刷新
- role 优先 user.role(operator), 不随首个身份(currentIdentity[0]=opc)跳动
|
2026-08-26 13:00:22 +08:00 |
|
Pine
|
9f2ba7386b
|
fix(auth): 登录令牌持久化到localStorage + 去掉自动selectIdentity(修401)
- applyLogin 现在会把 token 写入 localStorage(api client 据此鉴权) —— 二维码/绑定等路径此前未写token, 导致后续 /auth/me、select-identity 401
- 移除 loginWithResponse 里的自动 selectIdentity(运营端单身份, 无需切换)
|
2026-08-26 12:53:55 +08:00 |
|
Pine
|
1f21978a91
|
feat(profile): 个人中心「绑定小程序」—— 小程序码+扫码确认绑定(自动合并)
- 小程序行加「绑定」按钮 → BindMpDialog(展示bind-start小程序码,轮询确认后刷新)
- auth.ts 加 bindMpStart
|
2026-08-26 12:47:56 +08:00 |
|
Pine
|
71620f85b7
|
refactor(admin): 移除多身份绑定与切换 —— 只剩运营端/园区端单一身份登录
- 登录后直接以运营端进入(不再多身份选择弹窗/端口身份过滤)
- 移除顶栏「切换身份」(IdentitySwitcher); 侧边/路由仍按 operator 域
- 园区端(园区账密)登录保持不变
|
2026-08-26 12:42:35 +08:00 |
|
Pine
|
044ec4bb81
|
feat(profile): 管理平台个人中心 —— 绑定/解绑 手机号·小程序·微信
- 新增 /settings (个人中心): 展示账号+绑定状态, 绑定手机号(验证码), 解绑 手机/小程序/微信
- auth.ts 加 bindPhone(合并返新令牌)/unbind; 路由+导航项
|
2026-08-26 12:37:09 +08:00 |
|
Pine
|
0f47db9699
|
fix(auth): 小程序扫码登录确认后真正落库token —— onQrResult 先 loginWithResponse
扫码轮询 done 后未走 loginWithResponse, 令牌未写入 → RequireAuth 判未登录又回login。
改为 loginWithResponse(res) 设 token+单身份自动选中, 再 applyPlatformResult 跳转。
|
2026-08-26 12:32:05 +08:00 |
|
Pine
|
048d93b2c2
|
feat(auth): 登录页移除「微信扫码」tab(只保留账号/短信/小程序)
|
2026-08-26 12:25:53 +08:00 |
|
Pine
|
79fe6d017a
|
feat(auth): 登录页支持小程序码(qr_image)渲染 —— 微信扫码自动拉起小程序
|
2026-08-26 12:01:59 +08:00 |
|
Pine
|
de38280c44
|
feat(compute): 算力中心 概览真实版本/单位 + 用户充值调整额度
- 概览显示引擎版本、1元=配额(quota_per_unit)、入口说明
- 用户Tab每行「调整额度」Dialog(充值/扣减/覆盖,配额数→≈金额); computeApi.balance
|
2026-08-26 12:01:37 +08:00 |
|
Pine
|
dc79586c10
|
fix(admin): 登录后完整菜单 + 刷新保持当前Tab
- navForRole: 持平台令牌(operator)即恒显示完整运营菜单,不再被残留园区凭据(isParkUser)误判为园区端
- 新增 useUrlTab: 选区同步到 ?tab= ,刷新/回退均保持
- 算力中心 compute 与 园区管理 park 的 Tab 改用受控值 useUrlTab
|
2026-08-25 22:57:53 +08:00 |
|
Pine
|
f03e3a3fed
|
feat(auth): 登录页支持四种登录(账号/短信/微信扫码/小程序扫码)
- 平台登录内嵌四方式Tab,PollingQr 用 @rc-component/qrcode 渲染+轮询
- auth.ts 加 sendCode/phoneLogin/wxQrStart/wxQrPoll/mpQrStart/mpQrPoll;auth.tsx 加 loginWithResponse
- package.json 加 @rc-component/qrcode(锁文件只提交 npm package-lock.json)
|
2026-08-25 22:47:45 +08:00 |
|
Pine
|
3fcb737831
|
feat(park): 大屏控制页适配 —— 移除语音助手指令、加任务展示/任务刷新
- screen-tab PAGE_COMMANDS:移除 voice_start(语音页已关闭);增 navigate 任务展示(/tasks)。
- 新增「任务中心」控制组:task_refresh(刷新任务)。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-25 19:42:03 +08:00 |
|
Pine
|
49e95ac353
|
feat(tasks): 任务管理增强 —— 分类字典下拉/交付时限/人数/独占/发包方/4种接单方式
- tasksApi 加 categories/assign/recommend/select。
- tasks/index.tsx:分类下拉读 /admin/task-categories(35 类);Dialog 加 交付时限/限制人数/独占/发包方/接单方式(4 项);列展示 接单方式/截止;操作加 指派/选定(按 mode 显示)。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-25 19:30:34 +08:00 |
|
Pine
|
f2113e02da
|
feat(tasks): 任务管理(发布/增改/审核) — admin 端
- tasksApi 加 create(POST /admin/tasks)、update(PATCH /admin/tasks/:id)。
- pages/tasks/index.tsx:扩为任务管理,加 Dialog 新增/编辑表单(title/category/mode/budget/标签/优先级/描述),列加 任务码/模式/编辑;保留 通过/下架。
- rbac.tsx 菜单「任务审核」→「任务管理」,角色仍 operator。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-25 18:42:53 +08:00 |
|
Pine
|
d7af800c22
|
feat(compute): 模型列表展示富字段+图标(模态/供应商/区间价/窗口/输出/免费试用)
- 模型列加彩色首字母图标徽章(icon key→渐变色), 新增 模态/供应商/价目(区间|单值)/窗口输出/免费试用 列
- 与 compute 富字段(models.json)对齐
|
2026-08-25 17:03:29 +08:00 |
|
Pine
|
948941cd81
|
feat(admin): OPC 认证工作流页(待审→通过/驳回→落认证状态+所属)
- 新增 /certification 页: 按认证状态筛选, 通过认证/驳回 调 /admin/users/{id}/classification
- 菜单加「OPC认证」; tsc+build 通过
|
2026-08-25 16:32:24 +08:00 |
|
Pine
|
06ad2b0fc1
|
feat(admin): 用户管理加来源/认证/所属/账号类型/微信绑定/算力额度列+分类编辑
- 列表列: 来源/认证/所属(独立OPC|园区)/账号类型/微信绑定/算力额度
- 「分类」弹窗: 认证状态/账号类型/所属/园区名 编辑, 调 /admin/users/{id}/classification
- UserRow 类型补全部新字段; tsc+build 通过
|
2026-08-25 16:28:19 +08:00 |
|
Pine
|
21dcf2ea41
|
feat(compute): 引擎用户页加载即对账同步+同步按钮
- 挂载时自动调 /admin/compute/sync-users 对账(平台全用户→引擎) 后刷新列表
- 增「同步用户」按钮+同步结果提示
|
2026-08-25 15:31:34 +08:00 |
|
Pine
|
bde861910e
|
feat(compute): 用量统计页(全局概览+按模型费用分布)
- 新增 stats.tsx: 总请求/输入输出token/总费用/模型数 KPI + 按模型费用分布表(quota→¥)
- compute 分区加「用量统计」页签; 调 /api/stats/overview + /api/stats/by_model
|
2026-08-25 14:41:08 +08:00 |
|
Pine
|
29ad1f5a95
|
fix(compute): 能力检测失败/空模型时在对话框提示,便于定位
- detectCaps 增加 try/catch; 空模型/失败置 err 提示
|
2026-08-25 13:24:26 +08:00 |
|
Pine
|
02d390646e
|
feat(compute): 模型能力检测改为手动按钮(去掉失焦自动)
- 移除 actual_model 失焦自动检测; 能力区加「检测支持能力」按钮, 点击按当前模型预填能力
|
2026-08-25 13:19:58 +08:00 |
|
Pine
|
1948434110
|
feat(compute): 模型页选中模型自动检测能力并预填
- 新增模型表单: 实际模型失焦自动调 /model/capabilities 预填视觉/图像/音频/视频
- 能力复选框(视觉理解/图像/语音/视频); 列表改'能力'汇总徽标列
|
2026-08-25 13:18:20 +08:00 |
|
Pine
|
81f1cb496a
|
feat(compute): 通道编辑表单 mosdel字段加「从 API 获取模型」按钮
- 支持从供应商 API 拉取模型列表,选择后自动填入 models(需先填 Base URL+Key)
|
2026-08-25 12:54:16 +08:00 |
|
Pine
|
24f8ad1eda
|
fix(compute): 通道列表「编辑」置 creating=true 打开对话框
|
2026-08-25 12:48:56 +08:00 |
|
Pine
|
4451d48cad
|
feat(compute): 通道表单新增「支持查询余额」开关+测试查询模型列表
- channel 新增/编辑表单加 can_query_balance 复选框(默认开启, 关闭则更新余额跳过查询)
- 测试通过后自动把上游模型列表写回通道 models(查询模型列表)
|
2026-08-25 12:45:44 +08:00 |
|
Pine
|
ee79b12156
|
fix(compute): 通道测试/更新余额读真实结果(data.ok/message/latency)
- testRow/balanceRow 改用 data.ok + data.message + data.balance 判断, 避免外层 success 恒真的误判
|
2026-08-25 12:37:55 +08:00 |
|
Pine
|
c1c7168dfa
|
feat(compute): 模型创建改关联通道(供应商=通道)+移除重复供应商页签
- models: 创建/编辑改选「所属通道(供应商)」, 实际模型取该通道支持的 models(datalist 建议+可自定义); 保存时把模型挂进通道 models 保证可服务
- 撤下 metadata vendors 页(供应商=通道, 避免菜单歧义): 删除 vendors.tsx, 通道页签合并为「通道 / 供应商」
- blank 简化(vendor_id 承载通道 id)
|
2026-08-25 12:34:44 +08:00 |
|