diff --git a/src/pages/page1/saicComponents/Init.vue b/src/pages/page1/saicComponents/Init.vue index b97716e..ec9f04f 100644 --- a/src/pages/page1/saicComponents/Init.vue +++ b/src/pages/page1/saicComponents/Init.vue @@ -34,11 +34,16 @@ 目次 - + 前言(新制定标准) 前言(修订标准) + + 添加发布章 + 插入签审信息 + + { - clearTimeout(timer) - timer = null // 初始化前言,只有前言标题的版本 this.initForeword() + clearTimeout(timer) + timer = null }, 500) }, @@ -1947,7 +1961,6 @@ export default { const AllContentControls = oDocument.GetAllContentControls() let flag = false for (let i = 0; i < AllContentControls.length; i++) { - console.log(AllContentControls[i].GetAlias()) // 避免重复创建参考文献 if (AllContentControls[i].GetAlias() === 'sinotruk.references') { flag = true @@ -2001,6 +2014,258 @@ export default { console.log(e) } }) + }, + + /** + * 添加发布章 + */ + addPublicationChapter () { + this.ctx.callCommand(() => { + try { + const oDocument = Api.GetDocument() + const GetAllDrawingObjects = oDocument.GetAllShapes() + // 获取在封面预留的添加发布章的区域 + let oDocContentOne + for (let i = 0; i < GetAllDrawingObjects.length; i++) { + if (GetAllDrawingObjects[i].GetLockValue('noSelect')) { + oDocContentOne = GetAllDrawingObjects[i].GetDocContent() + break + } + } + oDocContentOne.RemoveAllElements() + const paragraph = Api.CreateParagraph() + paragraph.AddText('受 控') + paragraph.SetFontSize(48) + paragraph.SetColor(255, 0, 13, false) + paragraph.SetJc('center') + paragraph.SetBold(true) + paragraph.SetSpacingAfter(100) + // 创建图形 + const rectParagraph = Api.CreateParagraph() + const stroke = Api.CreateStroke(24000, Api.CreateSolidFill(Api.CreateRGBColor(255, 0, 13))) + const oDrawing = Api.CreateShape('rect', 1518483, 708475, null, stroke) + rectParagraph.AddDrawing(oDrawing) + rectParagraph.SetJc('center') + const rectDocContent = oDrawing.GetContent() + const rectTextParagh = rectDocContent.GetElement(0) + rectTextParagh.AddText('正 本') + rectTextParagh.SetFontSize(68) + rectTextParagh.SetColor(255, 0, 13, false) + rectTextParagh.SetBold(true) + rectTextParagh.SetSpacingBefore(0) + rectTextParagh.SetSpacingAfter(0) + oDocContentOne.AddElement(paragraph) + oDocContentOne.Push(paragraph) + oDocContentOne.AddElement(rectParagraph) + oDocContentOne.Push(rectParagraph) + } catch (e) { + console.log(e) + } + }) + }, + + /** + * 插入签审信息 + */ + async insertSignatureInfo () { + Asc.scope.signatureInfo = await this.getSignatureInfo() + Asc.scope.standCode = this.form.standCode + Asc.scope.standCNName = this.form.standName + Asc.scope.downloadUrl = window._CONFIG.downloadUrl + this.ctx.callCommand(() => { + try { + const oDocument = Api.GetDocument() + // 签审信息只创建一次 + const AllContentControls = oDocument.GetAllContentControls() + let flag = false + for (let i = 0; i < AllContentControls.length; i++) { + if (AllContentControls[i].GetAlias() === 'sinotruk.signatureInfo') { + flag = true + break + } + } + if (flag) { + return + } + const count = oDocument.GetElementsCount() + let coverEndParagraph, paragraphIndex + for (let i = 0; i < count; i++) { + const element = oDocument.GetElement(i) + if ('paragraph' === element.GetClassType() && element.GetText().indexOf('中国重型汽车集团有限公司') !== -1 && element.GetText().indexOf('发布') !== -1) { + paragraphIndex = i + 1 + coverEndParagraph = element + } + } + if (!coverEndParagraph) { + return + } + const emptyParagraph = Api.CreateParagraph() + oDocument.AddElement(paragraphIndex, emptyParagraph) + + // 最上面的黑体标题 + const oRunSubTitle = Api.CreateRun() + const oParagraphSubTitle = Api.CreateParagraph() + oRunSubTitle.AddText('中国重型汽车集团有限公司企业标准') + const oInlineLvlSdtSubTitle = Api.CreateInlineLvlSdt() + oInlineLvlSdtSubTitle.SetAlias('sinotruk.signatureInfo') + oInlineLvlSdtSubTitle.AddElement(oRunSubTitle, 0) + oParagraphSubTitle.AddInlineLvlSdt(oInlineLvlSdtSubTitle) + // oParagraphSubTitle.AddText(Asc.scope.standCNName); + oParagraphSubTitle.SetFontSize(32) + oParagraphSubTitle.SetSpacingBefore(300) + oParagraphSubTitle.SetSpacingAfter(300) + oParagraphSubTitle.SetFontFamily('黑体') + oParagraphSubTitle.SetColor(0, 0, 0) + oParagraphSubTitle.SetJc('center') + oParagraphSubTitle.SetBold(false) + emptyParagraph.InsertParagraph(oParagraphSubTitle, 'after') + + // 责任签署的大标题 + const oParagraphLargeTitle = Api.CreateParagraph() + oParagraphLargeTitle.AddText('责任签署') + oParagraphLargeTitle.SetFontSize(96) + oParagraphLargeTitle.SetSpacing(6) + oParagraphLargeTitle.SetSpacingAfter(300) + oParagraphLargeTitle.SetFontFamily('宋体') + oParagraphLargeTitle.SetColor(0, 0, 0) + oParagraphLargeTitle.SetJc('center') + oParagraphSubTitle.InsertParagraph(oParagraphLargeTitle, 'after') + + // 计划编号 + const oParagraphPlanNum = Api.CreateParagraph() + oParagraphPlanNum.AddText('计划编号:') + oParagraphPlanNum.SetFontFamily('宋体') + oParagraphPlanNum.SetFontSize(21) + oParagraphPlanNum.SetJc('left') + oParagraphPlanNum.SetSpacingAfter(0) + oParagraphPlanNum.SetSpacingBefore(0) + oParagraphPlanNum.SetColor(0, 0, 0) + oParagraphPlanNum.SetSpacingLine(1.5 * 240, 'auto') + oParagraphLargeTitle.InsertParagraph(oParagraphPlanNum, 'after') + + // 标准名称 + const oParagraphStandardName = Api.CreateParagraph() + oParagraphStandardName.AddText('标准名称:' + Asc.scope.standCode + ' ' + Asc.scope.standCNName) + oParagraphStandardName.SetFontFamily('宋体') + oParagraphStandardName.SetFontSize(21) + oParagraphStandardName.SetJc('left') + oParagraphStandardName.SetSpacingAfter(0) + oParagraphStandardName.SetSpacingBefore(0) + oParagraphStandardName.SetColor(0, 0, 0) + oParagraphStandardName.SetSpacingLine(1.5 * 240, 'auto') + oParagraphPlanNum.InsertParagraph(oParagraphStandardName, 'after') + + // 横线 + const oParagraphLine = Api.CreateParagraph() + const oFill = Api.CreateSolidFill(Api.CreateRGBColor(0, 0, 0)) + const oStroke = Api.CreateStroke(0, Api.CreateNoFill()) + const oDrawing = Api.CreateShape('rect', 6110900, 9000, oFill, oStroke) + oDrawing.SetWrappingStyle('inline') + oParagraphLine.AddDrawing(oDrawing) + oDrawing.SetDistances(0, 541, 0, 0) + oParagraphStandardName.InsertParagraph(oParagraphLine, 'after') + + // 签章信息部分 + const oParagraphBox = Api.CreateParagraph() + oParagraphBox.SetSpacingBefore(400) + const oStrokeBox = Api.CreateStroke(0, Api.CreateSolidFill(Api.CreateRGBColor(255, 0, 13))) + const oDrawingBox = Api.CreateShape('rect', 6110900, 6120900, null, oStrokeBox) + oDrawingBox.SetVerticalTextAlign('top') + oParagraphBox.AddDrawing(oDrawingBox) + oParagraphLine.InsertParagraph(oParagraphBox, 'after') + + const signatureInfo = Asc.scope.signatureInfo + if (signatureInfo) { + // 内部的信息及手写章等内容 + const oDocContent = oDrawingBox.GetDocContent() + const labelList = Object.keys(signatureInfo) + for (const key of labelList) { + const oParagraphLineOne = Api.CreateParagraph() + const oRunLabel = Api.CreateRun() + oRunLabel.AddText(key) + oRunLabel.SetPosition(48) + if (key.length === 4) { + oRunLabel.SetSpacing(80) + } else { + oRunLabel.SetSpacing(20) + } + oParagraphLineOne.AddElement(oRunLabel) + const oRunSymbol = Api.CreateRun() + oRunSymbol.AddText(':') + oRunSymbol.SetPosition(48) + oParagraphLineOne.AddElement(oRunSymbol) + const userList = signatureInfo[key] || [] + for (let i = 0; i < userList.length; i++) { + const user = userList[i] + // 姓名工号 + const oRunUserName = Api.CreateRun() + oRunUserName.AddText(user.userName + ' ') + oRunUserName.SetPosition(48) + // 手写章图片 + const oRunImage = Api.CreateRun() + const url = `${Asc.scope.downloadUrl}/laws-sinotruk/sys/common/downloadWithoutToken/${user.avatarFileId}` + const oDrawingImg = Api.CreateImage(url, 53 * 36000, 18.4 * 36000) + oRunImage.AddDrawing(oDrawingImg) + // 签署日期 + const oRunTime = Api.CreateRun() + oRunTime.AddText(' 签署日期:' + user.signTime) + oRunTime.SetPosition(48) + if (i === 0) { + oParagraphLineOne.AddElement(oRunUserName) + oParagraphLineOne.AddElement(oRunImage) + oParagraphLineOne.AddElement(oRunTime) + oParagraphLineOne.GetElement(0) + oDocContent.AddElement(oParagraphLineOne) + oDocContent.Push(oParagraphLineOne) + } else { + const oParagraphLine = Api.CreateParagraph() + oParagraphLine.AddElement(oRunUserName) + oParagraphLine.AddElement(oRunImage) + oParagraphLine.AddElement(oRunTime) + oParagraphLine.SetIndLeft(1388) + oDocContent.AddElement(oParagraphLine) + oDocContent.Push(oParagraphLine) + } + } + + } + } + + // 中国重型汽车集团有限公司 + const oParagraphPageEnd = Api.CreateParagraph() + oParagraphPageEnd.AddText('中国重型汽车集团有限公司') + oParagraphPageEnd.SetFontSize(48) + oParagraphPageEnd.SetSpacingBefore(300) + oParagraphPageEnd.SetSpacingAfter(0) + oParagraphPageEnd.SetFontFamily('宋体') + oParagraphPageEnd.SetColor(0, 0, 0) + oParagraphPageEnd.SetJc('center') + oParagraphPageEnd.SetBold(false) + oParagraphPageEnd.SetSpacing(1.8) + oParagraphBox.InsertParagraph(oParagraphPageEnd, 'after') + } catch (e) { + console.log(e) + } + }) + }, + getSignatureInfo () { + return new Promise(resolve => { + let result = false + const params = { + processInstanceId: this.form.processId + } + _axios({ + url: '/laws-sinotruk/process/es/revision/getSignInfo', + method: 'get', + params: params + }).then(res => { + if (res.success) { + result = res.result + } + }).finally(() => { + resolve(result) + }) + }) } }, created () { diff --git a/vue.config.js b/vue.config.js index 3a5f248..ff303bb 100644 --- a/vue.config.js +++ b/vue.config.js @@ -43,7 +43,7 @@ module.exports = { headers: { 'Access-Control-Allow-Origin': '*' }, proxy: { '/laws-sinotruk': { - target: 'http://139.9.235.66:8184', + target: 'http://10.0.1.19:8184', ws: false, changeOrigin: true, pathRewrite: {