挖空数据回显错误

Viewed 4

你好,遇到个问题,wps回填挖空数据的值时,回填还没完成,但是你们调了个接口https://kmon.kdocs.cn/api/relay/store/57QKSwAPhwr/log,然后数据回显就不对了; 但是有时候回填数据,你们没有调用这个接口,这时候数据就是对的了; 是偶现的 e883e2630cbfc0eda52799a072c6620.png
6b7c5a5816d95106f180929878c8daf.png

3 Answers

bookmarks.ReplaceBookmark 占位符的位置,就一行:[$项目名称][$项目编号][$招采方式] 错误回填截图: image.png
以下是数据:
[
{
"code": "project.name",
"name": "项目名称",
"value": "【2024-12-17】摩尔庄园-第一批次-宇宙建设-001",
"location": "[{"name":"项目名称_f1849f67_5653_49d0_91ca_dadb0930eec9","begin":0,"end":7}]"
},
{
"code": "project.code",
"name": "项目编号",
"value": "ZBYQ2024121700040001",
"location": "[{"name":"项目编号_4f103941_539b_4b36_a022_b80d4e468dd9","begin":7,"end":14}]"
},
{
"code": "project.tender.method",
"name": "招采方式",
"value": "邀请招标",
"location": "[{"name":"招采方式_9c671736_0358_409d_9528_da9b886b526e","begin":14,"end":21}]"
}
]

这是对应的部分前端代码: paramList.value.forEach((item) => { if (!item.location) { item.location = []
} else {
item.location = JSON.parse(item.location)
}
})
if (!isFromList.value) {
await replaceBook()
}
const replace = async () => {
replaceLoading.value = true
const bookmarks = await app.ActiveDocument.Bookmarks
await unprotect()
try {
for (const item of paramList.value) {
if (item.location?.length) {
for (const book of item.location) {
await _replaceBook(book, item)
}
}
}
await protect()
replaceLoading.value = false
// await saveFile(true)
} finally {
replaceLoading.value = false
}
}
const _replaceBook = async (book, item) => {
const bookmarks = await app.ActiveDocument.Bookmarks
const isExist = await app.ActiveDocument.Bookmarks.Exists(book.name)
if (isExist && !['', null].includes(item.value)) {
const isReplaceSuccess = await bookmarks.ReplaceBookmark([
{
name: book.name,
type: 'text',
value: item.value
}
])
}
}

您好,kmon调用时是在上报异常信息,此时回填已经有问题;可以提供一下回填的方法和内容,我们排查一下

您好,多个书签在同一位置时,顺序替换时存在bug,我们已经内部反馈处理中。 目前建议将书签位置分开处理,如:书签中间添加空格; 如果一定需要无空格的书签形式,可以暂时通过与书签位置倒序的方式插入,避免这一问题,如: 书签占位符为[$项目名称][$项目编号][$招采方式]
替换内容为
instance.Application.ActiveDocument.Bookmarks.ReplaceBookmark([{
"type": "text",
"name": "书签3:招采方式",
"value": "邀请招标",
},{
"type": "text",
"name": "书签2:项目编号",
"value": "ZBYQ2024121700040001",
},{
"type": "text",
"name": "书签1:项目名称",
"value": "【2024-12-17】摩尔庄园-第一批次-宇宙建设-001",
}])