fix: keep submission previews user-readable
This commit is contained in:
@@ -1663,18 +1663,66 @@ function submissionInputContract(kind: XftSubmissionKind): Record<string, unknow
|
||||
values: {
|
||||
...core[kind],
|
||||
standardFields: submissionStandardFields(kind),
|
||||
minimalExample: submissionMinimalExample(kind),
|
||||
},
|
||||
customFieldValues: "使用 fields[].fieldNumber 与 fieldValue 组装;具体值格式以 fields[].type/options 为准",
|
||||
serverManagedFields: [...XFT_MANAGED_SUBMISSION_FIELDS],
|
||||
submissionStatus: "APPRV_PEND",
|
||||
notes: [
|
||||
"申请人身份、表单编码、权限校验和审批状态由网关填写,Agent 不得传入",
|
||||
"minimalExample 只说明 values 的 JSON 形状;尖括号占位符必须替换为用户业务回答或实时选项对应值,绝不能原样提交",
|
||||
"表单配置中的 billCompanyCode/billDepartmentCode 属于标准抬头字段,不放入 customFieldValues;两者均省略时由薪福通按当前申请人默认公司和部门填写",
|
||||
"薪福通不提供无副作用的流程预测接口,准备阶段只做本地结构校验,最终业务校验在提交时完成",
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
function submissionMinimalExample(kind: XftSubmissionKind): Record<string, unknown> {
|
||||
const city = "<由城市选项中用户所选名称对应的code替换>";
|
||||
const expense = "<由费用类型选项中用户所选名称对应的code替换>";
|
||||
const currency = "<人民币对应的内部枚举值>";
|
||||
if (kind === "travel_apply") return {
|
||||
businessTrip: { businessTripDetails: [{
|
||||
departCityCode: city, destinationCityCode: city,
|
||||
beginTime: "<yyyy-MM-dd HH:mm>", endTime: "<yyyy-MM-dd HH:mm>",
|
||||
}] },
|
||||
};
|
||||
if (kind === "expense_apply") return {
|
||||
applyExpenses: [{ expenseNumber: expense, amount: "<正数金额,最多两位小数>" }],
|
||||
};
|
||||
if (kind === "entertainment_apply") return {
|
||||
entertainmentApplyApiCreateDTO: {
|
||||
entertainmentCityCode: city, entertainmentPersonCount: "<正整数>",
|
||||
entertainmentStartTime: "<yyyy-MM-dd>", entertainmentEndTime: "<yyyy-MM-dd>",
|
||||
},
|
||||
};
|
||||
if (kind === "common_apply") return {
|
||||
customFieldValues: [{
|
||||
fieldNumber: "<从实时fields中复制当前字段的fieldNumber,仅工具内部使用>",
|
||||
fieldValue: "<按该field的type/options序列化用户业务回答>",
|
||||
}],
|
||||
};
|
||||
if (kind === "common_reimburse") return {
|
||||
reimAmount: "<报销总金额>", reimAmountCurrencyCode: currency,
|
||||
expenseList: [{
|
||||
expTypeCode: expense, currencyCode: currency,
|
||||
originalCurrencyReimAmt: "<本笔费用金额>",
|
||||
}],
|
||||
};
|
||||
if (kind === "travel_reimburse") return {
|
||||
reimAmount: "<报销总金额>", reimAmountCurrencyCode: currency,
|
||||
expenseList: [{
|
||||
expTypeCode: expense, currencyCode: currency,
|
||||
originalCurrencyReimAmt: "<本笔费用金额>",
|
||||
}],
|
||||
businessTrip: { businessTripDetails: [{
|
||||
departCityCode: city, destinationCityCode: city,
|
||||
beginTime: "<yyyy-MM-dd HH:mm>", endTime: "<yyyy-MM-dd HH:mm>",
|
||||
}] },
|
||||
};
|
||||
return { clientOnly: "用车信息对象当前必须在薪福通客户端填写" };
|
||||
}
|
||||
|
||||
function submissionStandardFields(kind: XftSubmissionKind): Array<Record<string, unknown>> {
|
||||
if (kind === "travel_reimburse") return travelReimbursementFields();
|
||||
if (kind === "common_reimburse") return commonReimbursementFields();
|
||||
|
||||
Reference in New Issue
Block a user