ERPNext V14资产仪表盘前端定制:找不到对应HTML文件求助
ERPNext 14 资产仪表盘前端定制方案
完全可以对这类页面进行定制,无需局限于默认页面。你找不到HTML文件是因为ERPNext(基于Frappe框架)的页面大多是通过Doctype配置和客户端脚本动态渲染的,并非传统静态HTML文件,以下是具体实现方案:
1. 轻量定制:用客户端脚本实现侧边悬浮栏
这是最推荐的方式,无需修改核心文件,且升级ERPNext不会丢失定制内容:
- 进入系统后台,打开「系统设置」→「客户端脚本」
- 新建脚本,选择「Asset」作为对应Doctype,脚本类型选「列表/仪表盘」
- 写入以下示例代码(可根据需求调整样式和内容):
// 针对资产仪表盘页面添加侧边悬浮栏 frappe.listview_settings['Asset'].on_render = function(listview) { // 避免重复创建元素 if ($('#custom-asset-sidebar').length) return; // 创建悬浮栏DOM元素 const sidebar = $(` <div id="custom-asset-sidebar" style=" position: fixed; right: 20px; top: 120px; width: 260px; background: #fff; border-radius: 8px; box-shadow: 0 2px 12px rgba(0,0,0,0.1); padding: 16px; z-index: 9999; "> <h5 style="margin-top:0; border-bottom:1px solid #eee; padding-bottom:8px;">资产快捷操作</h5> <button class="btn btn-sm btn-primary" onclick="frappe.new_doc('Asset')">新增资产</button> <p style="margin-top:12px; font-size:13px;">这里可以添加自定义内容、快捷按钮或统计信息</p> </div> `); // 将悬浮栏添加到页面 $('body').append(sidebar); };
- 保存后刷新资产仪表盘页面,即可看到自定义悬浮栏。
2. 深度定制:通过自定义App扩展页面结构
如果需要更复杂的页面改造(比如修改仪表盘布局框架),建议创建自定义App来扩展:
- 用
frappe new-app custom_asset命令创建自定义App并安装 - 在自定义App中,通过Frappe的Hook系统(
hooks.py)注册自定义JS/CSS文件,覆盖或扩展现有仪表盘的渲染逻辑 - 如需修改页面模板,可参考Frappe核心的
dashboard页面结构(位于frappe/core/page/dashboard),在自定义App中创建同名页面进行替换
注意事项
- 绝对不要直接修改ERPNext核心目录下的文件,否则后续版本升级会覆盖你的定制内容
- ERPNext 14基于Frappe v14,前端依赖jQuery和Bootstrap 4,自定义脚本需兼容这些库
- 若针对的是特定的「Dashboard View」而非列表视图,可通过监听
frappe.dashboard相关的初始化事件来注入自定义元素
内容的提问来源于stack exchange,提问作者Aaron
相关产品推荐
相关产品推荐

