You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ERPNext能否重命名DocType的Draft状态?物料申请状态修改咨询

无需修改后端代码重命名ERPNext物料申请的Draft状态

有几种不用改动核心后端代码的方案能实现你的需求,按操作复杂度排序如下:

方法1:自定义翻译(推荐,无代码)

ERPNext的状态文本是通过翻译系统渲染的,你可以针对物料申请(Material Request)这个DocType单独修改"Draft"的显示文本:

  • 进入系统设置 > 自定义翻译
  • 「语言」选择你当前使用的语言(比如中文),「参考文档类型」选Material Request
  • 添加翻译条目:「源文本」填"Draft",「目标文本」填"Under Review"
  • 保存后刷新页面,物料申请里的Draft状态就会显示为Under Review,其他DocType的Draft状态不受影响

方法2:客户端脚本(轻量代码)

如果自定义翻译满足不了更灵活的逻辑需求,可以给物料申请加客户端脚本替换状态显示:

  1. 进入自定义 > 客户端脚本,新建脚本,「参考文档类型」选Material Request
  2. 粘贴以下代码:
frappe.ui.form.on('Material Request', {
    refresh: function(frm) {
        // 页面刷新时,若状态为Draft则替换显示文本
        if (frm.doc.status === 'Draft') {
            frm.fields_dict.status.$wrapper.find('.value').text('Under Review');
        }
    },
    status: function(frm) {
        // 状态变化时同步替换显示文本
        if (frm.doc.status === 'Draft') {
            frm.fields_dict.status.$wrapper.find('.value').text('Under Review');
        }
    }
});
  1. 保存并刷新物料申请页面,提交后的Draft状态就会显示为Under Review

方法3:自定义状态字段(全局场景适用)

如果需要在报表、列表等全局场景都显示新状态,可以新增自定义字段:

  • 进入自定义 > 自定义字段,给Material Request新增一个数据类型为「数据」的字段(比如custom_status),设置为只读,可选择隐藏在表单内
  • 添加服务器端脚本(通过自定义 > 服务器脚本),在物料申请提交后更新这个字段:
frappe.ui.form.on('Material Request', {
    after_submit: function(frm) {
        if frm.doc.status == 'Draft':
            frm.set_value('custom_status', 'Under Review')
            frm.save()
    }
});
  • 最后在表单、列表、报表里把原状态字段替换成这个自定义字段即可

注意:方法1和2仅修改前端显示,后端存储的状态仍是Draft;方法3会在后端存储自定义状态,适合需要全局统一显示的场景。

内容的提问来源于stack exchange,提问作者Komel B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 07:07:05