高级版办公文档模板合同替换渲染说明书
0.00
★19次@未来之窗
A:赛忞初雪
高级版办公文档模板合同替换渲染说明书
该功能提供了高级的文档模板渲染能力,支持两种不同的渲染模式(`one` 和 `com`),能够根据传入的数据对象和模式,将文档中特定格式(如 `$key$` 或 `$prefix.key$`)的占位符替换为实际数据,实现文档内容的动态生成。可以对指定区域内的文本节点进行替换操作。
以下是实现未来之窗_文档_模板渲染高级功能的核心函数及其说明。
| 函数名称 | 入参说明 | 返回值 | 执行逻辑 |
|---|---|---|---|
$cq("[sector]").未来之窗_文档_模板渲染高级(先知灵晶, mode = "one", prefix = '') |
1. 先知灵晶(对象):用于替换模板中占位符的数据对象。2. mode(字符串,可选):渲染模式,默认为 `one`。支持的值有:
prefix(字符串,可选):前缀,仅在 `one` 模式下有效。
|
无 |
1. 遍历 `this.elements` 中的每个元素。 2. 为每个元素创建一个文本节点遍历器。 3. 根据 `mode` 参数选择不同的替换逻辑:
|
$cq.未来之窗_文档_模板渲染高级(selector, 先知灵晶, mode = "one", prefix = '') |
1. selector(字符串):CSS 选择器,用于指定要进行替换操作的区域。2. 先知灵晶(对象):用于替换模板中占位符的数据对象。3. mode(字符串,可选):渲染模式,默认为 `one`。支持的值有:
prefix(字符串,可选):前缀,仅在 `one` 模式下有效。
|
调用 `$cq(selector)` 后的结果 | 调用 `$cq(selector)` 获取指定区域的元素,然后调用 `未来之窗_文档_模板渲染高级` 方法进行渲染。 |
本示例展示了如何使用 `未来之窗_文档_模板渲染高级` 功能生成合同文档。页面提供了模式选择,支持 `one` 模式(无前缀、带前缀)和 `com` 模式(多层级数据)。
页面结构如下:
数据部分定义了不同模式下的演示数据:
按钮逻辑:
代码示例:
// one模式数据(单层)
const contractDataOne = {
lessor: "王某某",
lessee: "李某某",
address: "XX市XX区XX路88号",
area: "50",
startDate: "2026年3月1日",
endDate: "2027年2月28日",
leaseTerm: "12",
rent: "8000",
signDate: "2026年2月20日"
};
// com模式数据(多层级)
const contractDataCom = {
addressInfo: { detail: "XX市XX区XX路88号(多层级)" },
priceInfo: { monthly: "8000元(多层级)" },
signInfo: { lessor: "王某某(多层级)", lessee: "李某某(多层级)", date: "2026年2月20日(多层级)" }
};
// 重置模板
function handleBack() {
location.reload();
alert("模板已重置为原始占位符状态!");
}
// 填充信息(根据选择的模式调用不同逻辑)
function handleDone() {
// 获取选中的模式
var selectedMode = document.querySelector('input[name="replaceMode"]:checked').value;
if (selectedMode === "one") {
// one模式(无前缀)
$cq("#contractArea").未来之窗_文档_模板渲染高级(contractDataOne, "one");
alert("one模式(无前缀)填充完成!");
} else if (selectedMode === "one-prefix") {
// one模式(带前缀:contract)
$cq("#contractArea").未来之窗_文档_模板渲染高级(contractDataOne, "one", "contract");
alert("one模式(带前缀contract)填充完成!");
} else if (selectedMode === "com") {
// com模式(多层级)
$cq("#contractArea").未来之窗_文档_模板渲染高级(contractDataCom, "com");
alert("com模式(多层级)填充完成!");
}
}
// 绑定按钮事件
document.addEventListener('DOMContentLoaded', function() {
document.getElementById('backBtn').addEventListener('click', handleBack);
document.getElementById('doneBtn').addEventListener('click', handleDone);
});
硬件app