Appearance
单号生成器
getDocumentNo
通过后台配置的业务单号生成规则生成单据编号。
语法
js
getDocumentNo(payload, options, callBack)参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| payload | Object | 是 | 业务参数 |
| options | Object | 否 | 扩展配置参数 |
| callBack | Function | 是 | 回调集合 |
payload 参数说明
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| config_code | string | 是 | 单号配置标识 KEY |
| biz_date | string | 是 | 单据业务日期 |
| at_id | string | 是 | 账套 ID |
options 参数说明
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| retry | number | 否 | 3 | 失败重试次数;设为 0 则不重试 |
| alert_title | string | 否 | 系统繁忙 | 内置弹窗标题 |
| alert_text | string | 否 | 系统繁忙,请稍候重试 | 内置弹窗提示文案 |
| alert_off | boolean | 否 | false | 是否关闭内置弹窗;true = 不弹窗 |
callBack 参数说明
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| getData | Function | 否 | 获取回调数据 |
| success | Function | 否 | 成功回调(需自行处理返回数据) |
| error | Function | 否 | 失败回调 |
| complete | Function | 否 | 完成回调 |
示例
基础用法
js
// 业务参数
var payload = {
config_code: "SALES_ORDER", // 单号配置标识
biz_date: "2025-02-02", // 单据业务日期
at_id: "1001" // 账套 ID
};
// 回调方法
var callBack = {
getData: function (res) {
console.log("单号生成成功:", res);
},
error: function (e) {
console.log("失败", e);
},
complete: function (e) {
console.log("完成", e);
}
};
// 调用生成单号
var orderCode = getDocumentNo(payload, {}, callBack);
console.log("生成的单号:", orderCode);自定义重试次数
js
var payload = {
config_code: "PURCHASE_ORDER",
biz_date: "2025-02-02",
at_id: "1001"
};
var options = {
retry: 5,
alert_title: "生成单号失败",
alert_text: "单号生成失败,正在重试...",
alert_off: false
};
var callBack = {
success: function(data) {
console.log("单号生成成功:", data);
setValueById("document_no", data.document_no);
}
};
getDocumentNo(payload, options, callBack);静默模式(关闭内置弹窗,自行处理异常提示)
js
var payload = {
config_code: "INVENTORY_CHECK",
biz_date: "2025-02-02",
at_id: "1001"
};
var options = {
retry: 0,
alert_off: true
};
var callBack = {
success: function(data) {
console.log("单号生成成功:", data);
setValueById("document_no", data.document_no);
},
error: function(error) {
console.log("单号生成失败:", error);
message({
type: "error",
text: "单号生成失败:" + error.message
});
}
};
getDocumentNo(payload, options, callBack);表单保存场景(不存在单号则自动生成)
js
// 保存按钮点击事件
function btn_save() {
var document_no = getValueById("document_no");
if (!document_no) {
var payload = {
config_code: "SALES_ORDER",
biz_date: getDateVal("biz_date", "yyyy-MM-dd"),
at_id: getValueById("at_id")
};
var options = {
retry: 3,
alert_off: false
};
var call_back = {
success: function(data) {
setValueById("document_no", data.document_no);
act_saveData();
},
error: function(error) {
console.log("单号生成失败:", error);
}
};
getDocumentNo(payload, options, call_back);
} else {
// 已有单号,直接执行保存
act_saveData();
}
}
// 执行单据保存
function act_saveData() {
var saveData = {
document_no: getValueById("document_no"),
customer_id: getValueById("customer_id"),
total_amount: getValueById("total_amount")
};
runCommand(getPageId(), "SAVE_SALES_ORDER", saveData, {}, {}, {
getData: function() {
message({
type: "success",
text: "保存成功"
});
}
});
}返回值说明
成功回调 data 对象字段:
| 属性名 | 类型 | 说明 |
|---|---|---|
| document_no | string | 最终生成单据编号 |
| config_code | string | 单号配置 KEY |
| biz_date | string | 传入的单据日期 |
| at_id | string | 传入的账套 ID |
注意事项
config_code需要提前在后台系统完成配置,否则无法生成单号;biz_date推荐统一使用yyyy-MM-dd标准日期格式;at_id为账套标识,一般取自当前登录环境账套信息;- 默认失败自动重试 3 次,可根据业务场景调整
retry参数; - 设置
alert_off:true可关闭系统内置弹窗,由开发者自定义异常提示; - 业务保存前建议判断单号是否存在,避免重复调用生成接口。