augushong
|
f3ac7189f2
|
refactor(component): tagInput/propertyInput/tableData 模板改为懒加载异步获取
原实现三个组件在 JS 顶层用 $.ajax({async:false}) 同步拉取 .html 模板,
每个页面打开固定发 3 个同步请求(阻塞主线程,与组件是否被使用无关),
且路径硬编码 /static/ 与 __STATIC__(OSS 部署)脱节,模板 URL 无版本
参数存在与 js 缓存不同步的漂移问题,请求失败时静默渲染空白。
改造内容:
- 模板改为首次 render() 时异步获取,Deferred 缓存供同页多实例共享,
失败不缓存并在下次 render 自动重试,失败时 console.error + 提示
- 模板 URL 取 CONFIG.STATIC + CONFIG.STATIC_VERSION,layout 的
window.CONFIG 新增这两项注入;无注入时逐级回退 /static 与 VERSION,
兼容下游覆盖 layout 的旧页面
- 组件 CSS 由 _require.html 直接 link 引入(__STATIC__ + 版本键),
替代原 JS 动态注入
- render() 返回 Promise(resolve Vue 实例);仓库内调用均为
fire-and-forget,无兼容影响
|
2026-10-05 14:08:03 +00:00 |
|
augushong
|
45bc4a7f43
|
refactor(curd): 移除生成模板与框架页面 data-auth 声明(含 uploadfile 权限映射回归本页节点的行为变化说明)
- CURD 生成模板 index.code 删除 6 个 data-auth 属性行,生成页面零权限声明
- extend/base 13 个列表页 index.html 清理全部 data-auth-* 声明(含注释文本同步改写)
- system/host/index.js 的 set-master 按钮 auth 改写为全节点 'system.host/setMaster'
(驼峰动作段逐字保留,parseNodeStr 仅 snake 化控制器段);system/auth 的
assignUsers 解析后与注册节点逐字相等,无需改写
- 行为变化:system/uploadfile 页原 data-auth-add/edit/delete 误映射 system.menu/*
(上游模板复制残留),删除后按钮按本页 system.uploadfile/* 节点判定——该页
控制器仅注册 delete 动作,非超管用户的添加按钮从此正确隐藏(现状是
有 system.menu/add 权限即显示但点击被后端拒绝),data-auth-edit 为死属性
(本页无编辑按钮)
- VersionBase::VERSION v2.7.0 → v2.8.0,使 admin-core.js 静态引用缓存键
(?t=get_site_version_key())失效,防下游升级后旧缓存 js 叠加新布局导致
非超管按钮全隐
|
2026-10-04 01:31:36 +00:00 |
|
augushong
|
fa89908c4b
|
feat(auth): 后台布局注入全局权限集合 UA_AUTH
|
2026-10-04 01:13:00 +00:00 |
|
augushong
|
a9f9045d10
|
fix(table): 卡片勾选收敛至勾位图标并消除勾选重渲闪烁(pro#4)
- 委托收敛勾位判定+快速路径 class 回显
- 勾位光标样式
- usercard/goodscard 勾位适配
- 两个技能文档契约同步
|
2026-10-03 11:55:56 +00:00 |
|
augushong
|
842641763a
|
feat(theme): 配色专属标准皮肤,清爽全包观感与面板交互重构
|
2026-09-27 02:18:41 +00:00 |
|
augushong
|
9cfb5fbd78
|
feat(view): 商品列表默认形态改为商品模板
|
2026-09-25 14:30:35 +00:00 |
|
augushong
|
4f469f4c09
|
feat(theme): 新增清爽皮肤(36px 紧凑头部)并设为默认
|
2026-09-25 12:55:29 +00:00 |
|
augushong
|
276d9b001e
|
feat(view): 名片模板视觉升级,状态开关移至头部
|
2026-09-25 11:50:49 +00:00 |
|
augushong
|
ee13e1bdfe
|
feat(view): 商品卡模板视觉升级,状态开关移至图面右上
|
2026-09-25 11:50:35 +00:00 |
|
augushong
|
58053e0280
|
feat(view): 商品列表新增商品自定义卡片模板三形态示例
|
2026-09-25 10:37:49 +00:00 |
|
augushong
|
994803f155
|
feat(view): 用户管理示例升级三形态并示范按端默认配置
|
2026-09-14 18:40:02 +00:00 |
|
augushong
|
d4367060b8
|
refactor(view): 清理十八页冗余的受控显式声明
|
2026-09-14 16:35:15 +00:00 |
|
augushong
|
0708afddf0
|
feat(table): 用户管理名片卡片官方示例
|
2026-09-11 12:58:46 +00:00 |
|
augushong
|
301b132f2f
|
feat(table): 灰度第四批 mall 三页切换受控模式
|
2026-09-10 22:10:26 +00:00 |
|
augushong
|
e9bbcc5bb2
|
feat(table): 灰度第三批三页切换并收编业务直呼
|
2026-09-10 21:22:43 +00:00 |
|
augushong
|
4f14f18c78
|
feat(table): 灰度第二批三页切换受控模式
|
2026-09-10 20:36:16 +00:00 |
|
augushong
|
a335ce7985
|
feat(table): 灰度第一批四页切换受控模式
|
2026-09-10 20:36:16 +00:00 |
|
augushong
|
6c5be1a15a
|
feat(table): 装载 reloadData shim 与 checkStatus 分发
|
2026-09-10 18:27:29 +00:00 |
|
augushong
|
9603bc23e3
|
chore(table): 删除第一代 uaTable 原型死代码
|
2026-09-10 17:26:23 +00:00 |
|
augushong
|
7932d1cd07
|
chore(update): 版本号提升至v2.6.0
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-09-10 12:52:01 +00:00 |
|
augushong
|
553047025c
|
refactor(install): 种子退役,migrate:run 一条命令完成建表与初始数据
新增 InitDataAlignService 六域对齐(超管/角色/权限节点/配置/快捷入口/商城演示)与 20260909130000 迁移;SystemAdmin 快照以字面量哈希入库;删除种子三件与安装锁依赖,seeds 目录留 .gitkeep;README/tests/规则等 11 处说明同步。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-09-09 14:38:10 +00:00 |
|
augushong
|
e54c772868
|
feat(admin): 菜单快照对齐迁移,存量库自动补齐运行管理与XHProf菜单
对齐迁移是菜单快照进入数据库的唯一途径(新装与存量库同路径);缺失行按显式 id 补插,框架结构行仅对齐 pid+sort,软删/用户分组跳过;新增规则文件与索引;清理 status 模块孤儿占位文件。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-09-09 14:37:56 +00:00 |
|
augushong
|
2906d51995
|
chore(update): 版本号提升至v2.5.1
|
2026-09-07 23:58:04 +08:00 |
|
augushong
|
68823568ef
|
fix(update): .agents项目自维护文件改判可选更新,防止升级强制覆盖与强制删除
|
2026-09-07 23:46:22 +08:00 |
|
augushong
|
1422878966
|
fix(mcp): 日志页密钥列关联键名兼容驼峰/蛇形,修复活密钥误显示已删除兜底
|
2026-08-21 22:58:29 +08:00 |
|
augushong
|
aba0d20615
|
feat(storage): v2.5.0存量升级脚本补齐存储配置
|
2026-08-20 22:21:25 +08:00 |
|
augushong
|
15cda70d0a
|
feat(storage): 初始化数据新增S3与WebDAV配置项
|
2026-08-20 22:15:23 +08:00 |
|
augushong
|
afe176c6f5
|
feat(storage): 上传配置页新增S3与WebDAV表单
|
2026-08-20 22:14:26 +08:00 |
|
augushong
|
f01ecbe08e
|
docs(storage): 新增v2.5.0升级提示与特性说明
|
2026-08-20 22:12:20 +08:00 |
|
augushong
|
0d20fd7786
|
feat(mcp): tools/call 自请求分发、CSRF 内部标记豁免与调用审计
|
2026-08-16 22:46:32 +08:00 |
|
augushong
|
744a0819f2
|
feat(mcp): 密钥授权页,仅创建者拥有的节点可授权(防越权与漂移)
|
2026-08-16 21:18:40 +08:00 |
|
augushong
|
25c98b6ed6
|
feat(mcp): MCP 调用日志只读列表页
|
2026-08-16 20:55:03 +08:00 |
|
augushong
|
918d1d4dd5
|
feat(mcp): MCP 密钥管理后台(CURD 重组 Base/App,密钥仅创建时明文展示)
|
2026-08-16 20:55:02 +08:00 |
|
augushong
|
5777448d99
|
feat(mcp): 新增 MCP 密钥/授权/日志三表 Scheme 与模型
|
2026-08-16 20:20:47 +08:00 |
|
augushong
|
8cbe62a402
|
feat(admin): 初始化菜单重组运行管理分组并补录 XHProf 菜单
系统管理下新增运行管理目录(309),含定时任务(310)、Web日志(311)两个子目录;定时器配置/日志、访问统计仪表盘、原始访问日志、性能分析、系统状态、日志管理、主机列表共 8 条菜单挪入新分组;补录此前遗漏的 XHProf 四条菜单(304-307,叶子带 auth_node),新装环境与开发库结构对齐(26 条)。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-08-15 19:11:39 +08:00 |
|
augushong
|
0e1df3852d
|
feat(update): 新增 admin:update --fetch-only 纯拉取模式
|
2026-08-08 19:09:21 +08:00 |
|
augushong
|
ad96755ff5
|
docs(permission): 统一校准权限节点措辞,消除更新节点误解
admin:permission:nodes 是查看型命令(实时扫描注解、不写库、改注解即生效),但文档/注释多处用一键更新/自动更新/生成等动作词描述,导致开发者系统性误以为它是更新权限节点命令。本次校准 8 个文件 10 处误导措辞,并在命令输出末尾追加机制提示。@NodeAnotation 拼写保持不变(框架故意少一个 t)。
|
2026-08-08 18:21:25 +08:00 |
|
augushong
|
8faa52ce90
|
feat(nginx-log): 多节点适配(node_id 全链路 + 全局/按节点聚合 + 节点筛选 + v2.4.0 升级脚本)
- 6 张表加 node_id 字段 + position/stat 改复合唯一键(migration)
- 6 个 Scheme 同步 node_id 注解 + 唯一键
- Reader 带 node_id 参数 + 懒加载接管(getLastPosition 回退查 node_id='')
- Aggregator 全局行(node_id='')+ 按节点循环 insertAggregatesForScope
- Stat 所有查询方法加 where node_id 条件
- Dashboard 控制器/视图加节点筛选下拉框 + AJAX 带 node_id
- AccessLog 列表加节点列 + 采集进度卡片显示节点信息
- import 定时任务 run_type 改 all(每节点采集自己的日志)
- v2.4.0 升级脚本追加 ALTER TABLE(幂等 check-then-alter)
- 菜单调整:去掉 Nginx 顶级菜单 + 读取位置管理,改为系统管理下挂两个子菜单
- ulthon-timer 文档补充 run_type=all 多节点部署注意事项
|
2026-08-08 10:33:20 +08:00 |
|
augushong
|
0f9f12174c
|
test(nginx-log): 权限节点扫描 + 端到端 QA 验证 + curd 路径修复
- 跑 admin:permission:nodes 扫描 138 个权限节点(17 个 nginx 相关节点)
- 17 个 nginx 节点 assign 给 role-id=1(写入 ul_system_auth_node 满足 plan 验收)
- curd 路径修复:菜单 href 由 system.nginx_access_log/index 改为 nginx.access_log/index(匹配 curd 生成的实际 URL,方案 B)
- SystemMenu.php / v2.4.0.php / DB ul_system_menu 三处同步(含 id=303 log_position)
- dashboard id=301 system.nginx_log_stat/index 保持不变(控制器确实在 system 模块)
- 端到端 QA 全通过:100 行日志 → import 74 行(静态过滤)→ aggregate stat_hour=1/url=6 → dashboard 数据完整
- 修复 T10 遗留 bug:cleanStatTables 用 Unix 时间戳当阈值,与 stat_date YYYYMMDD 不匹配导致误删
- threshold 从 strtotime('today')-days*86400 改为 (int) date('Ymd', strtotime('today')-days*86400)
- 验证:366 天前 stat 数据被删,今天 stat 数据保留
- 权限隔离:超管可访问,未登录被拦(code=40101 请先登录后台)
- Evidence: .omo/evidence/task-16-nginx-log-analytics-e2e/(15 个文件)
|
2026-07-28 06:47:24 +08:00 |
|
augushong
|
8a5a0d9877
|
feat(nginx-log): NginxLogStat dashboard 视图与 JS(echarts 趋势图)
|
2026-07-28 06:34:30 +08:00 |
|
augushong
|
3e983d8b8f
|
feat(nginx-log): adminUpdateCodeData v2.4.0 存量升级代码(sysconfig + 菜单幂等补齐)
|
2026-07-28 06:28:17 +08:00 |
|
augushong
|
d5329cdd45
|
feat(nginx-log): curd 生成 raw/position 后台并改只读
- NginxAccessLog + NginxLogPosition Scheme 加 #[Component] 注解
- Scheme Table name 补 ul_ 前缀(curd 严格校验要求)
- curd 生成 nginx 模块完整后台(controller/model/view/js)
- Base/App 双层只读控制器(参照 TimerLogBase 范式)
- AccessLogBase: add/edit/delete/modify 全部 error
- LogPositionBase: 同上
- 视图改造:
- access_log 裁剪到 8 列核心字段(time_local/method/uri/status/remote_addr/request_time/body_bytes_sent/http_user_agent)
- status/request_time 自定义 badge 渲染
- toolbar 清空 + operat 仅保留详情(B 类只读页面)
- log_position 全字段 + 只读化
- HTTP 验证:index 200 OK + add/edit/delete/modify 全部返回错误
|
2026-07-28 06:21:13 +08:00 |
|
augushong
|
7987001cd2
|
feat(nginx-log): NginxLogStat dashboard 控制器(Base/App 双层,日/周/月/年聚合)
- extend/base/admin/controller/system/NginxLogStatBase.php:完整逻辑
- @ControllerAnnotation(title=Nginx访问统计) + @NodeAnotation(title=访问统计)
- index() 页面/接口同体:isAjax() 返回 JSON,否则 fetch()
- period 解析:day(24h)/week(7d)/month(30d)/year(12m)/custom,invalid 自动 fallback day
- custom start>end 自动 swap
- 整体指标:SUM stat_hour,avg_request_time 按 PV 加权平均
- 趋势:day 按 stat_hour 聚合补 0-23;week/month/custom 按 stat_date 补日期序列;year 按 (stat_date DIV 100) 聚合补 1-12 月
- Top N:sysconfig('nginx_log','topn_default',10),topN=0 不截断
- 跨周期 UV 标注:uv_is_estimate = period !== 'day'
- 空表/空范围不崩(返回 0/[])
- app/admin/controller/system/NginxLogStat.php:App 入口,仅 extends Base
性能:stat_hour 10 万行 + period=year 服务端 < 700ms(< 2s 要求)
依赖:T1 stat 模型、T9 Aggregate;blocks:T13 视图
|
2026-07-28 06:17:22 +08:00 |
|
augushong
|
ce191adfd8
|
feat(nginx-log): 4 个 stack 模板增加 log_format 与 access_log 配置(Docker 开箱即用)
|
2026-07-28 00:24:26 +08:00 |
|
augushong
|
3405f8de60
|
feat(nginx-log): adminInitData 增加 nginx_log 默认配置(保留策略/topN/静态排除)
|
2026-07-28 00:18:56 +08:00 |
|
augushong
|
97eb8ca99a
|
fix(timer): timer_log 列表页补全刷新按钮与事件监听方法修正
toolbar 从 [] 改为 ['refresh'](B 类只读页面保留刷新),ua.table.on 修正为 layui.table.on。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-07-26 09:53:27 +08:00 |
|
augushong
|
739b536f8d
|
fix(host): Host 控制器禁用手动增删改与按钮配置修正
HostBase 补 add/edit/delete/modify 禁用方法(节点自动注册,不支持手动操作)。_common.js 的 addUrl/editUrl/deleteUrl/exportUrl/modifyUrl 改空字符串。index.js 补 toolbar: ['refresh'](C 类页面,去掉默认的 add/delete/export)。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-07-25 22:40:05 +08:00 |
|
augushong
|
908f84ee9f
|
refactor(timer): TimerLog 控制器迁移到 Base 层 + toolbar 与事件监听修正
控制器逻辑移入 extend/base/admin/controller/system/TimerLogBase.php,app 层改为空壳继承。index.js 补 toolbar:[] + defaultToolbar:['filter'](B 类只读页面),修正 ua.table.on → layui.table.on。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-07-25 22:39:53 +08:00 |
|
augushong
|
009647f96f
|
refactor(timer): TimerConfig 控制器与视图迁移到 Base 层
控制器逻辑移入 extend/base/admin/controller/system/TimerConfigBase.php,app 层改为空壳继承。9 个视图文件迁移到 extend/base/admin/view/system/timer_config/。index.js 补 toolbar: ['refresh', 'export'] 声明(C 类页面,去掉默认的 add/delete)。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-07-25 22:39:20 +08:00 |
|
augushong
|
236a343fa9
|
feat(timer): 新增并发数/触发节点/触发时间三字段及幂等分发
Scheme 定义 concurrency(nullable)/trigger_node_id/last_trigger_time 三字段,Model 声明属性,v2.3.0 分发代码幂等 ALTER 保证升级自动同步。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-07-25 21:57:14 +08:00 |
|