Initial commit

This commit is contained in:
赵霄
2023-08-21 17:23:35 +08:00
commit 4e01fc208a
78 changed files with 25177 additions and 0 deletions
@@ -0,0 +1,223 @@
<template>
<div class="note">
<a-button-group style="margin-bottom: 10px;">
<a-button @click="handleInsertNoteOne('CN')"></a-button>
<a-button @click="handleInsertMultNotTwo('CN')">注X</a-button>
<a-button @click="handleInsertMultNoteThe('CN')">首注</a-button>
</a-button-group>
<!-- <a-button-group>-->
<!-- <a-button @click="handleInsertNote('EN')">插入单个注(English)</a-button>-->
<!-- <a-button @click="handleInsertMultNote('EN')">插入多个注(English)</a-button>-->
<!-- </a-button-group>-->
</div>
</template>
<script>
export default {
methods: {
// 插入单个注释
handleInsertNote(lang) {
window.Asc.scope.lang = lang
this.ctx.callCommand(() => {
try {
const oDocument = Api.GetDocument();
const newParagraph = Api.CreateParagraph();
const oTableCell = newParagraph.GetParentTableCell();
const elementsCount = oTableCell.GetContent().GetElementsCount();
let noteNumLevel = null;
for (let i = 0; i < elementsCount; i++) {
if (noteNumLevel) { break; }
const ele = oTableCell.GetContent().GetElement(i);
if (ele && ele.GetClassType() === 'paragraph' && ele.GetNumbering()) {
const contentControls = ele.GetAllContentControls();
for (let j = 0; j < contentControls.length; j++) {
if (contentControls[j] && contentControls[j].GetAlias() === 'smtc.note') {
noteNumLevel = ele.GetNumbering();
break;
}
}
}
}
if (noteNumLevel) {
const sFormatString = Asc.scope.lang === 'CN' ? '注%1:' : 'Note%1:'
noteNumLevel.SetCustomType('decimal', sFormatString, 'left')
} else {
const oNumbering = oDocument.CreateNumbering('numbered')
noteNumLevel = oNumbering.GetLevel(0)
const sFormatString = Asc.scope.lang === 'CN' ? '注:' : 'Note:'
noteNumLevel.SetCustomType('decimal', sFormatString, 'left')
noteNumLevel.SetSuff('space')
}
const oParagraphNote = Api.CreateParagraph();
const oInlineLvlSdtNote = Api.CreateInlineLvlSdt();
oInlineLvlSdtNote.SetAlias("smtc.note");
oParagraphNote.AddInlineLvlSdt(oInlineLvlSdtNote);
oParagraphNote.AddText('XXX');
oParagraphNote.SetNumbering(noteNumLevel);
oParagraphNote.SetContextualSpacing(true);
oParagraphNote.SetFontSize(18);
if (Asc.scope.lang === 'CN') {
oParagraphNote.SetFontFamily('Arial');
} else {
oParagraphNote.SetFontFamily('SimSun');
}
oParagraphNote.SetSpacingAfter(60);
oTableCell.AddElement(oTableCell.GetContent().GetElementsCount() - 1, oParagraphNote);
} catch (error) {
console.error(error)
}
}, false)
},
// 插入多个注释
handleInsertMultNote(lang) {
window.Asc.scope.lang = lang
this.ctx.callCommand(() => {
try {
const oDocument = Api.GetDocument()
let oNumbering = oDocument.CreateNumbering('numbered')
const oNumLvl = oNumbering.GetLevel(0)
const sFormatString = Asc.scope.lang === 'CN' ? '注%1:' : 'Note%1:'
oNumLvl.SetCustomType('decimal', sFormatString, 'left')
oNumLvl.SetSuff('space')
for (let nLvl = 1; nLvl < 4; nLvl++) {
const oParagraphNote = Api.CreateParagraph()
const oInlineLvlSdt = Api.CreateInlineLvlSdt();
oInlineLvlSdt.SetAlias("smtc.note");
oParagraphNote.AddInlineLvlSdt(oInlineLvlSdt);
if (Asc.scope.lang === 'CN') {
oParagraphNote.AddText('XXXXXX')
} else {
oParagraphNote.AddText('XXXXXX.')
}
oParagraphNote.SetNumbering(oNumLvl)
oParagraphNote.SetContextualSpacing(true)
oParagraphNote.SetFontSize(18);
if (Asc.scope.lang === 'CN') {
oParagraphNote.SetFontFamily('Arial');
} else {
oParagraphNote.SetFontFamily('SimSun');
}
oParagraphNote.SetSpacingAfter(60);
oDocument.InsertContent([oParagraphNote]);
}
} catch (error) {
console.error(error)
}
}, false)
},
handleInsertNoteOne(){
window.Asc.scope.guid = window.Asc.plugin.info.guid
window.Asc.scope.suffType = ''
this.ctx.callCommand(() => {
try {
const oDocument = Api.GetDocument()
let oNumbering = oDocument.CreateNumbering('numbered')
const oNumLvl = oNumbering.GetLevel(0)
oNumLvl.SetCustomType('decimalZero', "注:", "left")
oNumLvl.SetSuff("space");
var oParaPr = oNumLvl.GetParaPr();
oParaPr.SetSpacingLine(280, "auto");
oParaPr.SetJc("both");
oParaPr.SetIndFirstLine(0);
const oParagraph = Api.CreateParagraph()
oParagraph.SetNumbering(oNumLvl)
oParagraph.SetContextualSpacing(true)
oParagraph.SetFontFamily('宋体')
oParagraph.SetFontSize(21)
oParagraph.SetHighlight(255, 255, 0);
oDocument.InsertContent([oParagraph])
} catch (error) {
console.error(error)
}
}, false)
},
handleInsertMultNotTwo(){
window.Asc.scope.guid = window.Asc.plugin.info.guid
window.Asc.scope.suffType = ''
this.ctx.callCommand(() => {
try {
const oDocument = Api.GetDocument()
const allElement = oDocument.GetElementsCount()
let numbering = null
let currentNumbering = null
for (let index = 0; index < allElement; index++) {
const element = oDocument.GetElement(index)
if ("paragraph" === element.GetClassType()) {
const getNumbering = element.GetNumbering()
const text = element.GetSpacingBefore()
if (getNumbering !== null) {
if (text == 50) {
currentNumbering = getNumbering
}
}
}
}
if (!numbering) {
if (currentNumbering) {
numbering = currentNumbering.GetNumbering().GetLevel(0)
} else {
let oNumbering = oDocument.CreateNumbering('numbered')
numbering = oNumbering.GetLevel(0)
const sFormatString = '注 %1';
numbering.SetCustomType("decimal", sFormatString, "left");
}
}
const oParagraph = Api.CreateParagraph()
// oParagraph.SetSpacingLine(400, "auto");
var oParaPr = numbering.GetParaPr();
oParaPr.SetSpacingLine(280, "auto");
oParaPr.SetJc("both");
oParaPr.SetIndFirstLine(0);
oParagraph.SetNumbering(numbering)
oParagraph.SetFontFamily('宋体')
oParagraph.SetSpacingBefore(50)
oParagraph.SetSpacingAfter(50)
oParagraph.SetFontSize(21)
oParagraph.SetBold(false);
oParagraph.SetJc("left");
oParagraph.SetHighlight(255, 255, 0);
oDocument.InsertContent([oParagraph])
// oNumbering = oParagraph.GetNumbering().GetNumbering()
} catch (error) {
console.error(error)
}
}, false)
},
handleInsertMultNoteThe(){
window.Asc.scope.guid = window.Asc.plugin.info.guid
window.Asc.scope.suffType = ''
this.ctx.callCommand(() => {
try {
const oDocument = Api.GetDocument()
let oNumbering = oDocument.CreateNumbering('numbered')
const oNumLvl = oNumbering.GetLevel(0)
oNumLvl.SetCustomType('decimal', "注 %1", "left")
oNumLvl.SetSuff("space");
var oParaPr = oNumLvl.GetParaPr();
oParaPr.SetSpacingLine(280, "auto");
oParaPr.SetJc("both");
oParaPr.SetIndFirstLine(0);
const oParagraph = Api.CreateParagraph()
oParagraph.SetNumbering(oNumLvl)
oParagraph.SetFontFamily('宋体')
oParagraph.SetSpacingBefore(50)
oParagraph.SetSpacingAfter(50)
oParagraph.SetBold(false);
oParagraph.SetFontSize(21)
oParagraph.SetHighlight(255, 255, 0);
oDocument.InsertContent([oParagraph])
} catch (error) {
console.error(error)
}
}, false)
},
}
}
</script>
<style>
</style>