feat(iframe): 添加父窗口与iframe间的页面跳转API
暴露OCDIframeAPI接口,包含getFirstVisiblePageNo和gotoPage方法 移除demo.html中重复实现的页面跳转逻辑,改用新API
This commit is contained in:
1 parent
27c85de1c4
commit
1335932afa
3 files changed
+506
-480
No files matched your search
@@ -148,7 +148,14 @@
|
||||
actions.className = 'bookmark-actions'
|
||||
const jumpBtn = document.createElement('button')
|
||||
jumpBtn.textContent = '跳转'
|
||||
jumpBtn.onclick = () => navigateToPage(item.page)
|
||||
jumpBtn.onclick = () => {
|
||||
const api = editorFrame.contentWindow && editorFrame.contentWindow.OCDIframeAPI
|
||||
if (api && typeof api.gotoPage === 'function') {
|
||||
api.gotoPage(item.page)
|
||||
} else {
|
||||
alert('子页面未提供跳转 API')
|
||||
}
|
||||
}
|
||||
const editBtn = document.createElement('button')
|
||||
editBtn.textContent = '编辑'
|
||||
editBtn.onclick = () => {
|
||||
@@ -185,52 +192,20 @@
|
||||
|
||||
addBookmarkBtn.onclick = () => {
|
||||
const name = getNextBookmarkName()
|
||||
const page = getFirstVisiblePageNo()
|
||||
let page = 1
|
||||
try {
|
||||
const api = editorFrame.contentWindow && editorFrame.contentWindow.OCDIframeAPI
|
||||
if (api && typeof api.getFirstVisiblePageNo === 'function') {
|
||||
page = api.getFirstVisiblePageNo()
|
||||
} else {
|
||||
console.warn('[demo] 子页面未暴露 getFirstVisiblePageNo,默认使用第1页')
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn('[demo] 获取当前可见页失败,默认第1页', e)
|
||||
}
|
||||
addBookmark(name, page)
|
||||
}
|
||||
|
||||
function getFirstVisiblePageNo() {
|
||||
const doc = editorFrame.contentDocument || editorFrame.contentWindow?.document
|
||||
if (!doc) return 1
|
||||
const iframeRect = editorFrame.getBoundingClientRect()
|
||||
const canvases = Array.from(doc.querySelectorAll('canvas[data-index]'))
|
||||
if (!canvases.length) return 1
|
||||
const visible = canvases
|
||||
.map(c => {
|
||||
const rect = c.getBoundingClientRect()
|
||||
const overlapY = Math.min(rect.bottom, iframeRect.bottom) - Math.max(rect.top, iframeRect.top)
|
||||
return { c, rect, overlapY }
|
||||
})
|
||||
.filter(x => x.overlapY > 0)
|
||||
.sort((a, b) => a.rect.top - b.rect.top)
|
||||
|
||||
let chosen = visible.length ? visible[0].c : null
|
||||
if (!chosen) {
|
||||
chosen = canvases.sort((a, b) => a.getBoundingClientRect().top - b.getBoundingClientRect().top)[0]
|
||||
}
|
||||
const idxStr = chosen?.getAttribute('data-index') || '0'
|
||||
const idx = parseInt(idxStr, 10)
|
||||
return Number.isFinite(idx) ? idx + 1 : 1
|
||||
}
|
||||
|
||||
function navigateToPage(page) {
|
||||
const doc = editorFrame.contentDocument || editorFrame.contentWindow?.document
|
||||
if (!doc) return
|
||||
const target0 = doc.querySelector(`canvas[data-index="${page - 1}"]`)
|
||||
const target1 = doc.querySelector(`canvas[data-index="${page}"]`)
|
||||
const canvas = target0 || target1
|
||||
if (!canvas) {
|
||||
alert(`未找到第${page}页`)
|
||||
return
|
||||
}
|
||||
try {
|
||||
canvas.scrollIntoView({ behavior: 'smooth', block: 'center' })
|
||||
const evt = new MouseEvent('mousedown', { bubbles: true })
|
||||
canvas.dispatchEvent(evt)
|
||||
} catch (e) {
|
||||
console.warn('跳转页失败', e)
|
||||
}
|
||||
}
|
||||
|
||||
editorFrame.addEventListener('load', () => {
|
||||
renderBookmarks()
|
||||
|
||||
+424
-436
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"header": [
|
||||
{
|
||||
"value": "教材在线编辑器",
|
||||
"value": "工程车维修实训指导书",
|
||||
"size": 32,
|
||||
"rowFlex": "center"
|
||||
},
|
||||
{
|
||||
"value": "\n测试数据",
|
||||
"value": "\n版本:V1.0(综合版)",
|
||||
"size": 18,
|
||||
"rowFlex": "center"
|
||||
},
|
||||
@@ -21,294 +21,72 @@
|
||||
"value": "",
|
||||
"type": "title",
|
||||
"valueList": [
|
||||
{
|
||||
"value": "主诉:",
|
||||
"size": 18,
|
||||
"bold": true
|
||||
}
|
||||
{ "value": "目的与适用范围:", "size": 18, "bold": true }
|
||||
],
|
||||
"level": "first"
|
||||
},
|
||||
{
|
||||
"value": "\n发热三天,咳嗽五天。",
|
||||
"value": "\n本指导书用于装载机、挖掘机、起重机、推土机等工程车辆的维修与保养实训,涵盖安全规范、工具设备、系统检修、故障诊断、保养周期与考核记录,适用于职业教育与企业内训。\n",
|
||||
"size": 16
|
||||
},
|
||||
|
||||
{
|
||||
"value": "",
|
||||
"type": "title",
|
||||
"valueList": [
|
||||
{ "value": "术语与定义:", "size": 18, "bold": true }
|
||||
],
|
||||
"level": "first"
|
||||
},
|
||||
{
|
||||
"value": "",
|
||||
"type": "list",
|
||||
"valueList": [
|
||||
{ "value": "\nLOTO:上锁挂牌,防止误操作\nPPE:个人防护装备\nCAN:控制器局域网\nATF:自动变速箱油\nISO VG:粘度等级标识" }
|
||||
],
|
||||
"listType": "ul"
|
||||
},
|
||||
|
||||
{
|
||||
"value": "",
|
||||
"type": "title",
|
||||
"valueList": [
|
||||
{ "value": "安全规范:", "size": 18, "bold": true }
|
||||
],
|
||||
"level": "first"
|
||||
},
|
||||
{
|
||||
"value": "",
|
||||
"type": "list",
|
||||
"valueList": [
|
||||
{ "value": "\n风险评估与作业许可\n上锁挂牌(LOTO)执行\n个人防护与工具检查\n消防器材就位与通风保障\n举升作业区警示与防坠落\n高温高压部件冷却后再作业\n化学品与油品规范存放\n电气断电与静电释放措施" }
|
||||
],
|
||||
"listType": "ul"
|
||||
},
|
||||
{
|
||||
"value": "",
|
||||
"type": "control",
|
||||
"control": {
|
||||
"conceptId": "1",
|
||||
"type": "text",
|
||||
"conceptId": "E01",
|
||||
"type": "checkbox",
|
||||
"value": [],
|
||||
"placeholder": "其他补充",
|
||||
"prefix": "{",
|
||||
"postfix": "}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"value": "\n",
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"value": "",
|
||||
"type": "title",
|
||||
"valueList": [
|
||||
{
|
||||
"value": "现病史:",
|
||||
"size": 18,
|
||||
"bold": true
|
||||
}
|
||||
],
|
||||
"level": "first"
|
||||
},
|
||||
{
|
||||
"value": "\n患者于三天前无明显诱因,感冒后发现面部水肿,无皮疹,尿量减少,出现乏力,在外治疗无好转,现来我院就诊。\n",
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"value": "",
|
||||
"type": "title",
|
||||
"valueList": [
|
||||
{
|
||||
"value": "既往史:",
|
||||
"size": 18,
|
||||
"bold": true
|
||||
}
|
||||
],
|
||||
"level": "first"
|
||||
},
|
||||
{
|
||||
"value": "\n有糖尿病10年,有高血压2年,有",
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"value": "传染性疾病",
|
||||
"size": 16,
|
||||
"color": "#FF0000"
|
||||
},
|
||||
{
|
||||
"value": "1年。",
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"value": "",
|
||||
"type": "control",
|
||||
"control": {
|
||||
"conceptId": "2",
|
||||
"type": "select",
|
||||
"value": [],
|
||||
"code": null,
|
||||
"placeholder": "有无",
|
||||
"prefix": "{",
|
||||
"postfix": "}",
|
||||
"placeholder": "个人防护装备检查",
|
||||
"valueSets": [
|
||||
{
|
||||
"value": "有",
|
||||
"code": "98175"
|
||||
},
|
||||
{
|
||||
"value": "无",
|
||||
"code": "98176"
|
||||
},
|
||||
{
|
||||
"value": "不详",
|
||||
"code": "98177"
|
||||
}
|
||||
{ "value": "安全帽", "code": "P01" },
|
||||
{ "value": "防护眼镜", "code": "P02" },
|
||||
{ "value": "安全鞋", "code": "P03" },
|
||||
{ "value": "绝缘手套", "code": "P04" },
|
||||
{ "value": "反光服", "code": "P05" },
|
||||
{ "value": "耳塞", "code": "P06" }
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"value": "报告其他既往疾病。\n",
|
||||
"size": 16
|
||||
},
|
||||
|
||||
{
|
||||
"value": "",
|
||||
"type": "title",
|
||||
"valueList": [
|
||||
{
|
||||
"value": "流行病史:",
|
||||
"size": 18,
|
||||
"bold": true
|
||||
}
|
||||
],
|
||||
"level": "first"
|
||||
},
|
||||
{
|
||||
"value": "\n否认14天内接触过",
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"value": "",
|
||||
"type": "hyperlink",
|
||||
"url": "https://hufe.club/canvas-editor",
|
||||
"valueList": [
|
||||
{
|
||||
"value": "新冠肺炎",
|
||||
"size": 16,
|
||||
"color": "#0000FF",
|
||||
"underline": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"value": "确诊患者、疑似患者、无症状感染者及其密切接触者;否认14天内去过以下场所:水产、肉类批发市场,农贸市场,集市,大型超市,夜市;否认14天内与以下场所工作人员密切接触:水产、肉类批发市场,农贸市场,集市,大型超市;否认14天内周围(如家庭、办公室)有2例以上聚集性发病;否认14天内接触过有发热或呼吸道症状的人员;否认14天内自身有发热或呼吸道症状;否认14天内接触过纳入隔离观察的人员及其他可能与新冠肺炎关联的情形;陪同家属无以上情况。",
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"value": "",
|
||||
"type": "control",
|
||||
"control": {
|
||||
"conceptId": "6",
|
||||
"type": "text",
|
||||
"value": [],
|
||||
"placeholder": "内容",
|
||||
"preText": "其他:",
|
||||
"postText": "。"
|
||||
}
|
||||
},
|
||||
{
|
||||
"value": "\n",
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"value": "",
|
||||
"type": "title",
|
||||
"valueList": [
|
||||
{
|
||||
"value": "体格检查:",
|
||||
"size": 18,
|
||||
"bold": true
|
||||
}
|
||||
],
|
||||
"level": "first"
|
||||
},
|
||||
{
|
||||
"value": "\nT:39.5℃",
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"value": "∆",
|
||||
"type": "subscript",
|
||||
"color": "#FF0000"
|
||||
},
|
||||
{
|
||||
"value": ",P:80bpm,R:20次/分,BP:120/80mmHg;\n",
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"value": "",
|
||||
"type": "title",
|
||||
"valueList": [
|
||||
{
|
||||
"value": "辅助检查:",
|
||||
"size": 18,
|
||||
"bold": true
|
||||
}
|
||||
],
|
||||
"level": "first"
|
||||
},
|
||||
{
|
||||
"value": "\n2020年6月10日,普放:",
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"value": "血细胞比容",
|
||||
"highlight": "#F2F27F",
|
||||
"groupIds": [
|
||||
"1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"value": "36.50%(偏低)40~50;单核细胞绝对值0.75*10",
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"value": "9",
|
||||
"type": "superscript"
|
||||
},
|
||||
{
|
||||
"value": "/L(偏高)参考值:0.1~0.6;\n",
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"value": "",
|
||||
"type": "title",
|
||||
"valueList": [
|
||||
{
|
||||
"value": "门诊诊断:",
|
||||
"size": 18,
|
||||
"bold": true
|
||||
}
|
||||
],
|
||||
"level": "first"
|
||||
},
|
||||
{
|
||||
"value": "",
|
||||
"type": "list",
|
||||
"valueList": [
|
||||
{
|
||||
"value": "\n高血压\n糖尿病\n病毒性感冒\n过敏性鼻炎\n过敏性鼻息肉"
|
||||
}
|
||||
],
|
||||
"listType": "ol"
|
||||
},
|
||||
{
|
||||
"value": "",
|
||||
"type": "title",
|
||||
"valueList": [
|
||||
{
|
||||
"value": "处置治疗:",
|
||||
"size": 18,
|
||||
"bold": true
|
||||
}
|
||||
],
|
||||
"level": "first"
|
||||
},
|
||||
{
|
||||
"value": "",
|
||||
"type": "list",
|
||||
"valueList": [
|
||||
{
|
||||
"value": "\n超声引导下甲状腺细针穿刺术;\n乙型肝炎表面抗体测定;\n膜式病变细胞采集术、后颈皮下肤层;"
|
||||
}
|
||||
],
|
||||
"listType": "ol"
|
||||
},
|
||||
{
|
||||
"value": "",
|
||||
"type": "title",
|
||||
"valueList": [
|
||||
{
|
||||
"value": "电子签名:",
|
||||
"size": 18,
|
||||
"bold": true
|
||||
}
|
||||
],
|
||||
"level": "first"
|
||||
},
|
||||
{
|
||||
"value": "【",
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"value": "data:image/png;base64,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 truncated
|
||||
"type": "image",
|
||||
"width": 89,
|
||||
"height": 32
|
||||
},
|
||||
{
|
||||
"value": "】\n",
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"value": "",
|
||||
"type": "title",
|
||||
"valueList": [
|
||||
{
|
||||
"value": "其他记录:",
|
||||
"size": 18,
|
||||
"bold": true
|
||||
}
|
||||
{ "value": "工具与设备清单:", "size": 18, "bold": true }
|
||||
],
|
||||
"level": "first"
|
||||
},
|
||||
@@ -319,221 +97,431 @@
|
||||
{
|
||||
"height": 42,
|
||||
"tdList": [
|
||||
{
|
||||
"colspan": 1,
|
||||
"rowspan": 2,
|
||||
"value": [
|
||||
{
|
||||
"value": "1.",
|
||||
"size": 16
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"colspan": 1,
|
||||
"rowspan": 1,
|
||||
"value": [
|
||||
{
|
||||
"value": "2.",
|
||||
"size": 16
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"colspan": 2,
|
||||
"rowspan": 1,
|
||||
"value": [
|
||||
{
|
||||
"value": "3.",
|
||||
"size": 16
|
||||
}
|
||||
]
|
||||
}
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "工具", "size": 16, "bold": true } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "规格", "size": 16, "bold": true } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "用途", "size": 16, "bold": true } ] }
|
||||
],
|
||||
"minHeight": 42
|
||||
},
|
||||
{
|
||||
"height": 42,
|
||||
"tdList": [
|
||||
{
|
||||
"colspan": 1,
|
||||
"rowspan": 1,
|
||||
"value": [
|
||||
{
|
||||
"value": "4.",
|
||||
"size": 16
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"colspan": 1,
|
||||
"rowspan": 1,
|
||||
"value": [
|
||||
{
|
||||
"value": "5.",
|
||||
"size": 16
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"colspan": 1,
|
||||
"rowspan": 1,
|
||||
"value": [
|
||||
{
|
||||
"value": "6.",
|
||||
"size": 16
|
||||
}
|
||||
]
|
||||
}
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "扭矩扳手", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "5–200 N·m", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "紧固校核", "size": 16 } ] }
|
||||
],
|
||||
"minHeight": 42
|
||||
},
|
||||
{
|
||||
"height": 42,
|
||||
"tdList": [
|
||||
{
|
||||
"colspan": 1,
|
||||
"rowspan": 1,
|
||||
"value": [
|
||||
{
|
||||
"value": "7.",
|
||||
"size": 16
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"colspan": 1,
|
||||
"rowspan": 1,
|
||||
"value": [
|
||||
{
|
||||
"value": "8.",
|
||||
"size": 16
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"colspan": 1,
|
||||
"rowspan": 1,
|
||||
"value": [
|
||||
{
|
||||
"value": "9.",
|
||||
"size": 16
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"colspan": 1,
|
||||
"rowspan": 1,
|
||||
"value": [
|
||||
{
|
||||
"value": "10.",
|
||||
"size": 16
|
||||
}
|
||||
]
|
||||
}
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "万用表", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "600 V/10 A", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "电气测量", "size": 16 } ] }
|
||||
],
|
||||
"minHeight": 42
|
||||
},
|
||||
{
|
||||
"height": 42,
|
||||
"tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "液压压力表", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "0–40 MPa", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "压力校核", "size": 16 } ] }
|
||||
],
|
||||
"minHeight": 42
|
||||
},
|
||||
{
|
||||
"height": 42,
|
||||
"tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "轴承拉拔器", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "通用型", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "拆装维护", "size": 16 } ] }
|
||||
],
|
||||
"minHeight": 42
|
||||
},
|
||||
{
|
||||
"height": 42,
|
||||
"tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "诊断电脑", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "CAN/OBD 支持", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "读码与标定", "size": 16 } ] }
|
||||
],
|
||||
"minHeight": 42
|
||||
},
|
||||
{
|
||||
"height": 42,
|
||||
"tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "举升设备", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "2–6 t", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "举升与安全", "size": 16 } ] }
|
||||
],
|
||||
"minHeight": 42
|
||||
},
|
||||
{
|
||||
"height": 42,
|
||||
"tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "清洗用品", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "环保型", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "清洁残渍", "size": 16 } ] }
|
||||
],
|
||||
"minHeight": 42
|
||||
}
|
||||
],
|
||||
"width": 520,
|
||||
"height": 126,
|
||||
"colgroup": [
|
||||
{
|
||||
"width": 180
|
||||
},
|
||||
{
|
||||
"width": 80
|
||||
},
|
||||
{
|
||||
"width": 130
|
||||
},
|
||||
{
|
||||
"width": 130
|
||||
}
|
||||
]
|
||||
"height": 252,
|
||||
"colgroup": [ { "width": 180 }, { "width": 160 }, { "width": 180 } ]
|
||||
},
|
||||
|
||||
{
|
||||
"value": "是否同意以上内容:"
|
||||
"value": "",
|
||||
"type": "title",
|
||||
"valueList": [
|
||||
{ "value": "实训信息:", "size": 18, "bold": true }
|
||||
],
|
||||
"level": "first"
|
||||
},
|
||||
{ "value": "工程车型号:", "size": 16 },
|
||||
{
|
||||
"value": "",
|
||||
"type": "control",
|
||||
"control": {
|
||||
"conceptId": "3",
|
||||
"type": "checkbox",
|
||||
"code": "98175",
|
||||
"value": [
|
||||
{
|
||||
"value": "同意否定"
|
||||
}
|
||||
],
|
||||
"conceptId": "E02",
|
||||
"type": "select",
|
||||
"value": [],
|
||||
"placeholder": "工程车型号",
|
||||
"valueSets": [
|
||||
{
|
||||
"value": "同意",
|
||||
"code": "98175"
|
||||
},
|
||||
{
|
||||
"value": "否定",
|
||||
"code": "98176"
|
||||
}
|
||||
{ "value": "装载机", "code": "M01" },
|
||||
{ "value": "挖掘机", "code": "M02" },
|
||||
{ "value": "起重机", "code": "M03" },
|
||||
{ "value": "推土机", "code": "M04" },
|
||||
{ "value": "平地机", "code": "M05" }
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"value": "\n医学公式:"
|
||||
},
|
||||
{
|
||||
"value": "{E_k} = hv - {W_0}",
|
||||
"type": "latex",
|
||||
"width": 102,
|
||||
"height": 25
|
||||
},
|
||||
{
|
||||
"value": "\n签署日期:"
|
||||
},
|
||||
{ "value": "培训日期:", "size": 16 },
|
||||
{
|
||||
"value": "",
|
||||
"type": "control",
|
||||
"control": {
|
||||
"conceptId": "5",
|
||||
"conceptId": "E03",
|
||||
"type": "date",
|
||||
"value": [
|
||||
{
|
||||
"value": "2022-08-10 17:30:01",
|
||||
"type": "text"
|
||||
}
|
||||
],
|
||||
"placeholder": "签署日期"
|
||||
"value": [],
|
||||
"placeholder": "培训日期"
|
||||
}
|
||||
},
|
||||
{
|
||||
"value": "\n患者签名:"
|
||||
},
|
||||
{ "value": "指导教师:", "size": 16 },
|
||||
{
|
||||
"value": "",
|
||||
"type": "control",
|
||||
"control": {
|
||||
"conceptId": "4",
|
||||
"conceptId": "E04",
|
||||
"type": "text",
|
||||
"value": [],
|
||||
"placeholder": "",
|
||||
"prefix": "",
|
||||
"postfix": "",
|
||||
"placeholder": "教师姓名",
|
||||
"minWidth": 160,
|
||||
"underline": true
|
||||
}
|
||||
},
|
||||
{ "value": "实训地点:", "size": 16 },
|
||||
{
|
||||
"value": "\n"
|
||||
"value": "",
|
||||
"type": "control",
|
||||
"control": {
|
||||
"conceptId": "E07",
|
||||
"type": "text",
|
||||
"value": [],
|
||||
"placeholder": "车间/工位",
|
||||
"minWidth": 200,
|
||||
"underline": true
|
||||
}
|
||||
},
|
||||
{ "value": "班次与小组:", "size": 16 },
|
||||
{
|
||||
"value": "",
|
||||
"type": "control",
|
||||
"control": {
|
||||
"conceptId": "E08",
|
||||
"type": "select",
|
||||
"value": [],
|
||||
"placeholder": "班次",
|
||||
"valueSets": [
|
||||
{ "value": "早班", "code": "S1" },
|
||||
{ "value": "中班", "code": "S2" },
|
||||
{ "value": "晚班", "code": "S3" }
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"value": "",
|
||||
"type": "tab"
|
||||
"type": "control",
|
||||
"control": {
|
||||
"conceptId": "E09",
|
||||
"type": "text",
|
||||
"value": [],
|
||||
"placeholder": "小组编号",
|
||||
"minWidth": 120,
|
||||
"underline": true
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"value": "",
|
||||
"type": "title",
|
||||
"valueList": [
|
||||
{ "value": "设备信息:", "size": 18, "bold": true }
|
||||
],
|
||||
"level": "first"
|
||||
},
|
||||
{
|
||||
"value": "EOF",
|
||||
"size": 16
|
||||
}
|
||||
"value": "",
|
||||
"type": "list",
|
||||
"valueList": [
|
||||
{ "value": "\n底盘号/发动机号记录\n累计工时与保养里程\n近期维修与更换件\n改装或加装设备说明" }
|
||||
],
|
||||
"listType": "ul"
|
||||
},
|
||||
|
||||
{
|
||||
"value": "",
|
||||
"type": "title",
|
||||
"valueList": [
|
||||
{ "value": "实训任务计划表:", "size": 18, "bold": true }
|
||||
],
|
||||
"level": "first"
|
||||
},
|
||||
{
|
||||
"value": "",
|
||||
"type": "table",
|
||||
"trList": [
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "任务", "size": 16, "bold": true } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "预计工时", "size": 16, "bold": true } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "所需工具", "size": 16, "bold": true } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "发动机机油与滤芯更换", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "1.5 h", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "扭矩扳手/接油盘", "size": 16 } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "液压系统泄漏巡检", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "1.0 h", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "压力表/毛刷", "size": 16 } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "蓄电池与充电系统测试", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "0.8 h", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "万用表/充电器", "size": 16 } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "制动系统摩擦片检查与更换", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "2.0 h", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "举升设备/塞尺", "size": 16 } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "变速箱油更换与滤网清洁", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "1.2 h", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "ATF/接油盘", "size": 16 } ] }
|
||||
], "minHeight": 42 }
|
||||
],
|
||||
"width": 520,
|
||||
"height": 210,
|
||||
"colgroup": [ { "width": 260 }, { "width": 120 }, { "width": 140 } ]
|
||||
},
|
||||
|
||||
{ "value": "", "type": "title", "valueList": [ { "value": "发动机系统检修:", "size": 18, "bold": true } ], "level": "first" },
|
||||
{ "value": "", "type": "list", "valueList": [ { "value": "\n机油与滤芯更换\n冷却系统压力测试\n燃油滤清与喷油器检查\n进排气系统泄漏检测\n缸盖与气门机构检查" } ], "listType": "ul" },
|
||||
|
||||
{ "value": "", "type": "title", "valueList": [ { "value": "燃油系统维护:", "size": 18, "bold": true } ], "level": "first" },
|
||||
{ "value": "", "type": "list", "valueList": [ { "value": "\n油水分离器排水\n燃油管路渗漏处理\n共轨系统压力校核\n喷油器回油量测试" } ], "listType": "ul" },
|
||||
|
||||
{ "value": "", "type": "title", "valueList": [ { "value": "冷却系统维护:", "size": 18, "bold": true } ], "level": "first" },
|
||||
{ "value": "", "type": "list", "valueList": [ { "value": "\n节温器与水泵检查\n散热器清洁与压测\n冷却液冰点与腐蚀性检测" } ], "listType": "ul" },
|
||||
|
||||
{ "value": "", "type": "title", "valueList": [ { "value": "液压系统维护:", "size": 18, "bold": true } ], "level": "first" },
|
||||
{ "value": "", "type": "list", "valueList": [ { "value": "\n溢流阀设定值校核\n液压油污染度检测\n软管接头渗漏处理\n缸体密封件更换\n多路阀动作一致性检查" } ], "listType": "ul" },
|
||||
|
||||
{ "value": "", "type": "title", "valueList": [ { "value": "电气系统诊断:", "size": 18, "bold": true } ], "level": "first" },
|
||||
{ "value": "", "type": "list", "valueList": [ { "value": "\n蓄电池内阻测试\n起动与充电回路排查\n传感器与执行器信号检查\nCAN 总线通讯诊断\n故障码读取与清除" } ], "listType": "ul" },
|
||||
|
||||
{ "value": "", "type": "title", "valueList": [ { "value": "底盘与制动系统:", "size": 18, "bold": true } ], "level": "first" },
|
||||
{ "value": "", "type": "list", "valueList": [ { "value": "\n悬挂与车桥检查\n制动管路渗漏\n制动片厚度与间隙\n驻车制动测试" } ], "listType": "ul" },
|
||||
|
||||
{ "value": "", "type": "title", "valueList": [ { "value": "传动系统与变速箱:", "size": 18, "bold": true } ], "level": "first" },
|
||||
{ "value": "", "type": "list", "valueList": [ { "value": "\n变速箱油位与油质\n滤网清洁\n异常噪音定位\n输出轴与油封检查" } ], "listType": "ul" },
|
||||
|
||||
{ "value": "", "type": "title", "valueList": [ { "value": "转向系统:", "size": 18, "bold": true } ], "level": "first" },
|
||||
{ "value": "", "type": "list", "valueList": [ { "value": "\n助力泵与油路检查\n拉杆球头间隙\n方向盘自由行程\n前束与定位参数校核" } ], "listType": "ul" },
|
||||
|
||||
{ "value": "", "type": "title", "valueList": [ { "value": "常见故障代码表:", "size": 18, "bold": true } ], "level": "first" },
|
||||
{ "value": "", "type": "table", "trList": [
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "代码", "size": 16, "bold": true } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "含义", "size": 16, "bold": true } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "处置", "size": 16, "bold": true } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "E101", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "冷却液温度异常", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "检查冷却系统与温度传感器", "size": 16 } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "E202", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "液压压力低", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "校核溢流阀并检查泵输出", "size": 16 } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "E303", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "充电系统故障", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "检查发电机与调压器", "size": 16 } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "E404", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "传感器信号异常", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "检查线束与接插件", "size": 16 } ] }
|
||||
], "minHeight": 42 }
|
||||
], "width": 520, "height": 210, "colgroup": [ { "width": 120 }, { "width": 220 }, { "width": 180 } ] },
|
||||
|
||||
{ "value": "", "type": "title", "valueList": [ { "value": "扭矩参考表:", "size": 18, "bold": true } ], "level": "first" },
|
||||
{ "value": "", "type": "table", "trList": [
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "零件", "size": 16, "bold": true } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "规格", "size": 16, "bold": true } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "扭矩值", "size": 16, "bold": true } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "轮毂螺栓", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "M20", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "300 N·m", "size": 16 } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "机油放油螺塞", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "M14", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "30 N·m", "size": 16 } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "缸盖螺栓", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "M12", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "95 N·m", "size": 16 } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "曲轴皮带轮", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "M10", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "45 N·m", "size": 16 } ] }
|
||||
], "minHeight": 42 }
|
||||
], "width": 520, "height": 252, "colgroup": [ { "width": 200 }, { "width": 160 }, { "width": 160 } ] },
|
||||
|
||||
{ "value": "", "type": "title", "valueList": [ { "value": "润滑油与液压油规格:", "size": 18, "bold": true } ], "level": "first" },
|
||||
{ "value": "", "type": "table", "trList": [
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "系统", "size": 16, "bold": true } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "规格", "size": 16, "bold": true } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "备注", "size": 16, "bold": true } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "发动机", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "15W-40 CJ-4", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "柴油机适用", "size": 16 } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "液压系统", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "ISO VG 46", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "常温区域", "size": 16 } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "传动系统", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "ATF Dexron III", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "自动变速箱", "size": 16 } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "转向助力", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "ATF 或专用油", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "依说明书", "size": 16 } ] }
|
||||
], "minHeight": 42 }
|
||||
], "width": 520, "height": 252, "colgroup": [ { "width": 180 }, { "width": 220 }, { "width": 120 } ] },
|
||||
|
||||
{ "value": "", "type": "title", "valueList": [ { "value": "保养周期计划表:", "size": 18, "bold": true } ], "level": "first" },
|
||||
{ "value": "", "type": "table", "trList": [
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "项目", "size": 16, "bold": true } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "周期", "size": 16, "bold": true } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "说明", "size": 16, "bold": true } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "机油与滤芯更换", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "500 h", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "按制造商建议", "size": 16 } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "液压油过滤器", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "500–1000 h", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "随工况调整", "size": 16 } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "变速箱油更换", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "1000 h", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "依 ATF 标准", "size": 16 } ] }
|
||||
], "minHeight": 42 }
|
||||
], "width": 520, "height": 210, "colgroup": [ { "width": 220 }, { "width": 120 }, { "width": 180 } ] },
|
||||
|
||||
{ "value": "", "type": "title", "valueList": [ { "value": "故障诊断流程:", "size": 18, "bold": true } ], "level": "first" },
|
||||
{ "value": "", "type": "list", "valueList": [ { "value": "\n初步检查\n读取故障码\n分系统测试\n定位故障\n维修复核\n清除故障码\n试车交付\n记录归档" } ], "listType": "ol" },
|
||||
|
||||
{ "value": "", "type": "hyperlink", "url": "https://example.com/engineering-training", "valueList": [ { "value": "培训资料链接:工程车维保视频教程", "size": 16, "color": "#0000FF", "underline": true } ] },
|
||||
|
||||
{ "value": "", "type": "title", "valueList": [ { "value": "质量复核检验表:", "size": 18, "bold": true } ], "level": "first" },
|
||||
{ "value": "", "type": "table", "trList": [
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "项目", "size": 16, "bold": true } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "结果", "size": 16, "bold": true } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "备注", "size": 16, "bold": true } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "紧固件扭矩复核", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "通过", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "—", "size": 16 } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "泄漏与渗漏检查", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "通过", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "—", "size": 16 } ] }
|
||||
], "minHeight": 42 }
|
||||
], "width": 520, "height": 168, "colgroup": [ { "width": 220 }, { "width": 120 }, { "width": 180 } ] },
|
||||
|
||||
{ "value": "", "type": "title", "valueList": [ { "value": "学员考核记录:", "size": 18, "bold": true } ], "level": "first" },
|
||||
{ "value": "", "type": "table", "trList": [
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "学员", "size": 16, "bold": true } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "项目", "size": 16, "bold": true } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "成绩", "size": 16, "bold": true } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "张三", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "发动机检修", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "A", "size": 16 } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "李四", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "液压系统维护", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "B+", "size": 16 } ] }
|
||||
], "minHeight": 42 },
|
||||
{ "height": 42, "tdList": [
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "王五", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "电气系统诊断", "size": 16 } ] },
|
||||
{ "colspan": 1, "rowspan": 1, "value": [ { "value": "通过", "size": 16 } ] }
|
||||
], "minHeight": 42 }
|
||||
], "width": 520, "height": 210, "colgroup": [ { "width": 160 }, { "width": 240 }, { "width": 120 } ] },
|
||||
|
||||
{ "value": "记录日期:", "size": 16 },
|
||||
{ "value": "", "type": "control", "control": { "conceptId": "E05", "type": "date", "value": [], "placeholder": "记录日期" } },
|
||||
{ "value": "指导教师签名:", "size": 16 },
|
||||
{ "value": "", "type": "control", "control": { "conceptId": "E06", "type": "text", "value": [], "placeholder": "签名", "minWidth": 160, "underline": true } },
|
||||
{ "value": "学员签名:", "size": 16 },
|
||||
{ "value": "", "type": "control", "control": { "conceptId": "E10", "type": "text", "value": [], "placeholder": "签名", "minWidth": 160, "underline": true } },
|
||||
|
||||
{ "value": "P = {F}/{A}", "type": "latex", "width": 120, "height": 24 },
|
||||
{ "value": "", "type": "separator", "width": 554 },
|
||||
{ "value": "EOF", "size": 16 }
|
||||
],
|
||||
"footer": []
|
||||
}
|
||||
}
|
||||
+63
@@ -456,6 +456,69 @@ window.onload = function () {
|
||||
}
|
||||
}
|
||||
|
||||
// 在 iframe 场景下对父窗口暴露:当前页获取与页码跳转
|
||||
// 说明:返回值与入参均为 1 基页码(第 1 页记为 1)
|
||||
winAny.OCDIframeAPI = {
|
||||
getFirstVisiblePageNo: (): number => {
|
||||
try {
|
||||
const container = instance.command.getContainer()
|
||||
const canvases = Array.from(
|
||||
container.querySelectorAll('canvas[data-index]')
|
||||
) as HTMLCanvasElement[]
|
||||
if (!canvases.length) return 1
|
||||
const viewHeight = Math.max(
|
||||
document.documentElement.clientHeight,
|
||||
window.innerHeight || 0
|
||||
)
|
||||
const visible = canvases
|
||||
.map(c => {
|
||||
const rect = c.getBoundingClientRect()
|
||||
const overlapY = Math.min(rect.bottom, viewHeight) - Math.max(rect.top, 0)
|
||||
return { c, rect, overlapY }
|
||||
})
|
||||
.filter(x => x.overlapY > 0)
|
||||
.sort((a, b) => a.rect.top - b.rect.top)
|
||||
let chosen: HTMLCanvasElement | null = visible.length ? visible[0].c : null
|
||||
if (!chosen) {
|
||||
chosen = canvases.sort(
|
||||
(a, b) => a.getBoundingClientRect().top - b.getBoundingClientRect().top
|
||||
)[0] || null
|
||||
}
|
||||
const idx = Number((chosen?.dataset.index ?? '0'))
|
||||
return Number.isFinite(idx) ? idx + 1 : 1
|
||||
} catch {
|
||||
return 1
|
||||
}
|
||||
},
|
||||
gotoPage: (pageNo: number): boolean => {
|
||||
try {
|
||||
if (!Number.isFinite(pageNo) || pageNo <= 0) return false
|
||||
const index = Math.max(0, Math.floor(pageNo - 1))
|
||||
const container = instance.command.getContainer()
|
||||
const target = container.querySelector(
|
||||
`canvas[data-index="${index}"]`
|
||||
) as HTMLCanvasElement | null
|
||||
if (!target) return false
|
||||
// 滚动到该页(居中)
|
||||
target.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'nearest' })
|
||||
// 触发一次居中位置的 mousedown,让编辑器内部更新 pageNo
|
||||
const rect = target.getBoundingClientRect()
|
||||
const clientX = rect.left + rect.width / 2
|
||||
const clientY = rect.top + rect.height / 2
|
||||
const evt = new MouseEvent('mousedown', {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
clientX,
|
||||
clientY
|
||||
})
|
||||
target.dispatchEvent(evt)
|
||||
return true
|
||||
} catch {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const undoDom = document.querySelector<HTMLDivElement>('.menu-item__undo')!
|
||||
undoDom.title = `撤销(${isApple ? '⌘' : 'Ctrl'}+Z)`
|
||||
undoDom.onclick = function () {
|
||||
|
||||
Reference in new issue
Block a user