外观
常用变量说明
本文档列出合同模板中当前系统实际支持的全部变量,以后端渲染代码(
OrderService::generateContract等)为准整理。 模板编辑时请只使用本文档列出的变量名;写错或自定义拼写的变量不会被替换,会原样留在合同里。
一、变量基本格式
变量使用双大括号包裹,全小写、单词间用下划线连接(snake_case):
html
<p>客户姓名:{{customer_name}}</p>
<p>车牌号:{{license_plate}}</p>| 规则 | 正确示例 | 错误示例 |
|---|---|---|
snake_case 小写下划线 | {{customer_name}} | {{customerName}} ❌ |
| 全部小写 | {{order_amount}} | {{OrderAmount}} ❌ |
| 下划线连接 | {{license_plate}} | {{license-plate}} ❌ |
| 英文命名 | {{vehicle_brand}} | {{车辆品牌}} ❌ |
二、变量总表
2.1 合同信息
| 变量 | 说明 | 取值来源 / 格式 |
|---|---|---|
{{contract_number}} | 合同编号 | 与订单编号一致(如 202606101430251234) |
{{effective_date}} | 合同生效日期 | 格式:2026年6月10日 |
{{expire_date}} | 合同到期日期 | 格式:2027年6月10日 |
{{sign_date}} | 签署日期 | 客户已签署时取实际签字日期,未签署取当天 |
{{order_date}} | 订单日期 | 取订单的下单日期,备用变量 |
2.2 客户信息
| 变量 | 说明 | 取值来源 / 格式 |
|---|---|---|
{{customer_name}} | 客户姓名 | 客户资料 |
{{customer_phone}} | 联系电话 | 客户资料 |
{{customer_id_number}} | 证件号码 | 客户资料 |
{{customer_id_type}} | 证件类型(自动显示中文) | 身份证 / 护照 / 军官证 / 营业执照 |
{{customer_address}} | 客户地址 | 客户资料 |
{{customer_signature}} | 客户签名图片 | 特殊变量:合同生成时保留占位,客户签署后在 PDF 导出/预览时自动注入签名图片;未签署时显示为空 |
证件类型注意
系统仅对 身份证/护照/军官证/营业执照 四种类型做中文转换,其他证件类型会默认显示为「身份证」,涉及其他证件类型时请勿依赖该变量。
2.3 车辆信息
| 变量 | 说明 | 取值来源 / 格式 |
|---|---|---|
{{vehicle_brand}} | 车辆品牌 | 订单车辆信息,如 特斯拉 |
{{vehicle_model_name}} | 车型名称 | 订单车辆信息,如 Model 3 |
{{vehicle_model_code}} | 厂牌型号编码 | 订单车辆信息 |
{{vehicle_brand_model}} | 品牌+型号(自动组合) | 如 特斯拉 Model 3 |
{{license_plate}} | 车牌号 | 如 浙A12345 |
{{vin}} | 车架号(VIN) | 17 位车辆识别码 |
{{engine_number}} | 发动机号 | 订单车辆信息 |
{{vehicle_type}} | 车辆属性(自动显示中文) | 新车 / 二手车 |
{{vehicle_mileage}} | 表显里程(公里) | 如 35000 |
{{purchase_amount}} | 购车发票金额 | 如 158000.00 |
{{purchase_date}} | 购车发票日期 | 格式:2025年3月15日 |
{{register_date}} | 首次登记日期 | 格式:2025年3月15日 |
2.4 产品信息
| 变量 | 说明 | 取值来源 / 格式 |
|---|---|---|
{{product_id}} | 产品 ID | 关联产品 |
{{product_name}} | 产品名称 | 如 三众电车 |
{{product_display_name}} | 产品显示名称 | 取产品的显示名称,未配置时回退为产品名称 |
{{warranty_coverage}} | 保修范围说明 | ⚠️ 当前为固定文本「(详见本合同保障范围条款)」,不读取产品字段 |
{{exemption_clause}} | 免责条款 | 取产品的免责条款配置 |
{{service_phone}} | 服务电话 | 取产品的服务电话配置 |
2.5 订单信息
| 变量 | 说明 | 取值来源 / 格式 |
|---|---|---|
{{order_amount}} | 订单金额 | 如 6888.00 |
{{amount_in_words}} | 订单金额大写(自动转换) | 如 陆仟捌佰捌拾捌元整 |
{{payment_plan}} | 付款方式(自动显示中文) | 全款 / 分期 |
{{remarks}} | 订单备注 | 取订单备注 |
{{service_term_desc}} | 服务期限描述(自动拼接) | 如 2026年03月24日到2034年03月23日或160000公里终止,两者先到为准 |
{{service_duration_months}} | 保障月数 | 如 36 |
{{service_duration_years}} | 保障年限(月数÷12,保留 1 位小数) | 如 3.0 |
{{coverage_mileage}} | 保障里程(公里) | 如 160000 |
{{supplier_name}} | 供应商(承保公司)名称 | 取公司全称,未配置时回退为公司简称 |
2.6 系统生成
| 变量 | 说明 | 取值来源 / 格式 |
|---|---|---|
{{date_now}} | 当前日期 | 格式:2026年6月10日 |
{{tenant_name}} | 租户名称 | ⚠️ 当前固定输出「平台」 |
{{company_seal_image}} | 公司公章图片 | 读取关联产品的公章配置并自动嵌入图片;产品未配置公章时输出为空 |
三、自定义变量
在模板编辑页的「自定义变量」字段中以 JSON 格式定义:
json
{
"deductible_amount": "500",
"gift_description": "赠送一次基础保养"
}在模板中同样用 {{deductible_amount}} 引用。
注意事项:
- 自定义变量名同样必须遵循
snake_case规范。 - ⚠️ 内置变量优先:如果自定义变量与内置变量同名,实际生效的是内置变量(系统会忽略同名的自定义值)。请避免与上面的内置变量重名。
- 未定义的变量不会被替换,会以
{{xxx}}原文形式留在合同中。
四、历史资料差异说明
早期文档《模板变量命名规范》(cankao/模板变量命名.md)中的部分写法与当前系统实际行为不一致,以本文档为准:
| 早期文档写法 | 当前系统实际变量 |
|---|---|
{{vehicle_model}} | {{vehicle_model_name}} / {{vehicle_model_code}} |
{{vehicle_attribute}} | {{vehicle_type}} |
{{mileage}} | {{vehicle_mileage}} |
日期格式 2026-06-10 | 实际输出 2026年6月10日 |
| 自定义变量覆盖内置变量 | 实际是内置变量优先 |
五、常见问题
Q:变量写错了会怎样? A:不会被替换,{{custmer_name}}(拼写错误)会原样显示在合同中。保存模板后请生成一份测试合同核对。
Q:数据为空时显示什么? A:显示为空白。建议在模板排版时为空值预留合理版式。
Q:一个模板能用多少个变量? A:没有数量限制。
Q:旧模板里的 memberName、{{service_fee}} 这些写法还能用吗? A:不能。系统不会自动转换旧变量名,必须手工改为标准变量,对应关系见 一级合同模板变量说明。