feat: 添加部署脚本并简化iframe加载逻辑

refactor(demo): 移除文件上传功能,仅支持URL拼接加载
refactor(main): 根据URL参数动态设置编辑模式
chore: 在package.json中添加部署相关脚本
This commit is contained in:
hanshiyang committed 2025-11-19 16:08:27 +08:00
1 parent 41313ac835
commit 1c14e28469
3 files changed
+57 -75

No files matched your search

+41 -34
View File
@@ -1,4 +1,4 @@
import { commentList, data, options } from './mock'
import { commentList, options } from './mock'
import './style.css'
import prism from 'prismjs'
import Editor, {
@@ -36,29 +36,9 @@ window.onload = function () {
const instance = new Editor(
container,
{
header: [
{
value: '教材在线编辑器',
size: 32,
rowFlex: RowFlex.CENTER
},
{
value: '\n测试数据',
size: 18,
rowFlex: RowFlex.CENTER
},
{
value: '\n',
type: ElementType.SEPARATOR
}
],
main: <IElement[]>data,
// footer: [
// {
// value: 'canvas-editor',
// size: 12
// }
// ]
header: [],
main: [],
footer: []
},
options
)
@@ -1609,22 +1589,49 @@ window.onload = function () {
}
]
const modeElement = document.querySelector<HTMLDivElement>('.editor-mode')!
modeElement.onclick = function () {
// 模式选择循环
modeIndex === modeList.length - 1 ? (modeIndex = 0) : modeIndex++
// 设置模式
const { name, mode } = modeList[modeIndex]
modeElement.innerText = name
instance.command.executeMode(mode)
// 设置菜单栏权限视觉反馈
const isReadonly = mode === EditorMode.READONLY
const menuTextDom = document.querySelector<HTMLDivElement>('.menu-item-text')!
const modeParam = params.get('mode')?.toLowerCase()
const isEditMode = modeParam === 'edit'
if (!isEditMode) {
// 默认只读模式:隐藏模式切换与导出/打开/保存
modeElement.style.display = 'none'
menuTextDom.style.display = 'none'
instance.command.executeMode(EditorMode.READONLY)
// 设置菜单栏权限视觉反馈(只读允许搜索与打印)
const enableMenuList = ['search', 'print']
document.querySelectorAll<HTMLDivElement>('.menu-item>div').forEach(dom => {
const menu = dom.dataset.menu
isReadonly && (!menu || !enableMenuList.includes(menu))
!menu || !enableMenuList.includes(menu)
? dom.classList.add('disable')
: dom.classList.remove('disable')
})
} else {
// URL 指定编辑模式:显示模式切换与导出/打开/保存,并默认切为编辑模式
modeElement.style.display = ''
menuTextDom.style.display = ''
modeElement.innerText = '编辑模式'
instance.command.executeMode(EditorMode.EDIT)
// 仅在编辑模式下允许模式切换
modeElement.onclick = function () {
// 模式选择循环
modeIndex === modeList.length - 1 ? (modeIndex = 0) : modeIndex++
// 设置模式
const { name, mode } = modeList[modeIndex]
modeElement.innerText = name
instance.command.executeMode(mode)
// 设置菜单栏权限视觉反馈
const isReadonly = mode === EditorMode.READONLY
const enableMenuList = ['search', 'print']
document
.querySelectorAll<HTMLDivElement>('.menu-item>div')
.forEach(dom => {
const menu = dom.dataset.menu
isReadonly && (!menu || !enableMenuList.includes(menu))
? dom.classList.add('disable')
: dom.classList.remove('disable')
})
}
}
// 模拟批注