add 插入签审信息
This commit is contained in:
@@ -34,11 +34,16 @@
|
||||
<a-button @click="equationOne">目次</a-button>
|
||||
</a-button-group>
|
||||
|
||||
<a-button-group>
|
||||
<a-button-group style="margin-bottom: 10px">
|
||||
<a-button @click="addNewForeword">前言(新制定标准)</a-button>
|
||||
<a-button @click="addReviseForeword">前言(修订标准)</a-button>
|
||||
</a-button-group>
|
||||
|
||||
<a-button-group v-if="!!form.processId">
|
||||
<a-button @click="addPublicationChapter">添加发布章</a-button>
|
||||
<a-button @click="insertSignatureInfo">插入签审信息</a-button>
|
||||
</a-button-group>
|
||||
|
||||
<!-- 企标基础信息读取 -->
|
||||
<a-modal v-model="initModalVisible" title="企标文件初始化" @ok="handleInitModalConfirm">
|
||||
<a-form-model id="components-form-demo-validate-other" :model="form" v-bind="formItemLayout"
|
||||
@@ -76,6 +81,7 @@
|
||||
import { BORDER_DISABLE } from '@/config'
|
||||
import moment from 'moment'
|
||||
import { imageSvg } from '@/pages/page1/common/image'
|
||||
import _axios from '../../../plugins/axios2'
|
||||
|
||||
const debounce = function (fn, delay) {
|
||||
let timer = null
|
||||
@@ -246,14 +252,8 @@ export default {
|
||||
oTable8.SetTableBorderInsideV('single', 0, 0, 255, 255, 255)
|
||||
oTable8.SetTableBorderInsideH('single', 0, 0, 255, 255, 255)
|
||||
|
||||
const oParagraph8Left = oTable8
|
||||
.GetCell(0, 0)
|
||||
.GetContent()
|
||||
.GetElement(0)
|
||||
const oParagraph8Right = oTable8
|
||||
.GetCell(0, 1)
|
||||
.GetContent()
|
||||
.GetElement(0)
|
||||
const oParagraph8Left = oTable8.GetCell(0, 0).GetContent().GetElement(0)
|
||||
const oParagraph8Right = oTable8.GetCell(0, 1).GetContent().GetElement(0)
|
||||
// const oNextParagraph10 = Api.CreateParagraph();
|
||||
// var oStroke10 = Api.CreateStroke(0, Api.CreateSolidFill(Api.CreateRGBColor(255, 0, 13)));
|
||||
// var oDrawing10 = Api.CreateShape("rect", 4110900, 102400, null, oStroke10);
|
||||
@@ -274,6 +274,7 @@ export default {
|
||||
oParagraph8Right.SetFontFamily('Times New Roman')
|
||||
// oParagraph8Right.AddElement(1,oParagraph1)
|
||||
oParagraph8Right.SetJc('right')
|
||||
oParagraph8Right.SetSpacingLine(240, 'auto')
|
||||
oDocument.InsertContent([oTable8])
|
||||
|
||||
const oParagraph2 = Api.CreateParagraph()
|
||||
@@ -284,6 +285,7 @@ export default {
|
||||
oParagraph2.SetJc('center')
|
||||
oParagraph2.SetBold(false)
|
||||
oParagraph2.SetPosition(6)
|
||||
oParagraph2.SetSpacingLine(240, 'auto')
|
||||
oDocument.InsertContent([oParagraph2])
|
||||
|
||||
// const oParagraph4 = Api.CreateParagraph();
|
||||
@@ -310,6 +312,7 @@ export default {
|
||||
oParagraph4.SetFontSize(28)
|
||||
oParagraph4.SetPosition(0)
|
||||
oParagraph4.SetBold(false)
|
||||
oParagraph4.SetSpacingLine(240, 'auto')
|
||||
oDocument.InsertContent([oParagraph4])
|
||||
|
||||
const oParagraphOne = Api.CreateParagraph()
|
||||
@@ -326,6 +329,7 @@ export default {
|
||||
oParagraphOne.SetSpacingBefore(0)
|
||||
oParagraphOne.SetSpacingAfter(0)
|
||||
oParagraphOne.SetBold(false)
|
||||
oParagraphOne.SetSpacingLine(240, 'auto')
|
||||
oDocument.InsertContent([oParagraphOne])
|
||||
|
||||
const oParagraphLine1 = Api.CreateParagraph()
|
||||
@@ -360,6 +364,7 @@ export default {
|
||||
oParagraph5.SetColor(0, 0, 7, false)
|
||||
oParagraph5.SetFontFamily('黑体')
|
||||
oParagraph5.SetBold(false)
|
||||
oParagraph5.SetSpacingLine(240, 'auto')
|
||||
var oDocContent = oDrawing.GetDocContent()
|
||||
oDocContent.AddElement(0, oParagraph5)
|
||||
|
||||
@@ -377,13 +382,14 @@ export default {
|
||||
oParagraph6.SetColor(0, 0, 7, false)
|
||||
oParagraph6.SetFontFamily('宋体')
|
||||
oParagraph6.SetBold(true)
|
||||
oParagraph6.SetSpacingLine(240, 'auto')
|
||||
oDocContent.AddElement(1, oParagraph6)
|
||||
// oDocument.InsertContent([oParagraph6]);
|
||||
const oNextParagraph2 = Api.CreateParagraph()
|
||||
oNextParagraph2.SetSpacingBefore(1208)
|
||||
oNextParagraph2.SetSpacingAfter(2460)
|
||||
oNextParagraph2.SetSpacingAfter(1508)
|
||||
var oStroke = Api.CreateStroke(0, Api.CreateSolidFill(Api.CreateRGBColor(255, 0, 13)))
|
||||
var oDrawing = Api.CreateShape('rect', 6110900, 1562400, null, oStroke)
|
||||
var oDrawing = Api.CreateShape('rect', 6110900, 2233900, null, oStroke)
|
||||
oDrawing.SetLockValue('noSelect', true)
|
||||
oNextParagraph2.AddDrawing(oDrawing)
|
||||
oDocument.InsertContent([oNextParagraph2])
|
||||
@@ -440,7 +446,9 @@ export default {
|
||||
issueCN.SetFontSize(28)
|
||||
oParagraph7Left.AddElement(issueCN)
|
||||
oParagraph7Left.SetSpacingAfter(10)
|
||||
oParagraph7Left.SetSpacingAfter(10)
|
||||
oParagraph7Left.SetJc('left')
|
||||
oParagraph7Left.SetSpacingLine(240, 'auto')
|
||||
|
||||
const impCN = Api.CreateRun()
|
||||
impCN.SetFontFamily('黑体')
|
||||
@@ -449,6 +457,7 @@ export default {
|
||||
oParagraph7Right.AddElement(impCN)
|
||||
oParagraph7Right.SetJc('right')
|
||||
oParagraph7Right.SetSpacingAfter(10)
|
||||
oParagraph7Right.SetSpacingLine(240, 'auto')
|
||||
oDocument.InsertContent([oTable7])
|
||||
|
||||
const oParagraphLine2 = Api.CreateParagraph()
|
||||
@@ -467,13 +476,18 @@ export default {
|
||||
oParagraph10.SetJc('center')
|
||||
oParagraph10.SetBold(false)
|
||||
oParagraph10.SetPosition(0)
|
||||
oParagraph10.SetSpacingLine(240, 'auto')
|
||||
oDocument.InsertContent([oParagraph10])
|
||||
oParagraph10.Search('发布')[0].SetSpacing(3)
|
||||
oParagraph10.Search('发')[0].SetFontSize(14)
|
||||
oParagraph10.Search('发')[0].SetPosition(1)
|
||||
oParagraph10.Search('布')[0].SetFontSize(14)
|
||||
oParagraph10.Search('布')[0].SetPosition(1)
|
||||
oDocument.CreateSection(oParagraph10)
|
||||
// 开新页
|
||||
oParagraph10.AddPageBreak()
|
||||
const oParagraph11 = Api.CreateParagraph()
|
||||
oDocument.InsertContent([oParagraph11])
|
||||
oDocument.CreateSection(oParagraph11)
|
||||
let oSection1 = oDocument.GetSections()[0]
|
||||
oSection1.SetTitlePage(true)
|
||||
oSection1.SetHeaderDistance(0)
|
||||
@@ -533,10 +547,10 @@ export default {
|
||||
}
|
||||
})
|
||||
let timer = setTimeout(() => {
|
||||
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 () {
|
||||
|
||||
Reference in New Issue
Block a user