|
|
|
|
@ -30,6 +30,7 @@ import {
|
|
|
|
|
listStyleCSSMapping,
|
|
|
|
|
listTypeElementMapping
|
|
|
|
|
} from '../dataset/constant/List'
|
|
|
|
|
import { START_LINE_BREAK_REG } from '../dataset/constant/Regular'
|
|
|
|
|
import {
|
|
|
|
|
titleNodeNameMapping,
|
|
|
|
|
titleOrderNumberMapping,
|
|
|
|
|
@ -71,7 +72,7 @@ export function formatElementList(
|
|
|
|
|
if (
|
|
|
|
|
isHandleFirstElement &&
|
|
|
|
|
((startElement?.type && startElement.type !== ElementType.TEXT) ||
|
|
|
|
|
(startElement?.value !== ZERO && startElement?.value !== '\n'))
|
|
|
|
|
!START_LINE_BREAK_REG.test(startElement?.value))
|
|
|
|
|
) {
|
|
|
|
|
elementList.unshift({
|
|
|
|
|
value: ZERO
|
|
|
|
|
@ -431,10 +432,11 @@ export function zipElementList(payload: IElement[]): IElement[] {
|
|
|
|
|
let e = 0
|
|
|
|
|
while (e < elementList.length) {
|
|
|
|
|
let element = elementList[e]
|
|
|
|
|
// 上下文首字符(占位符)
|
|
|
|
|
// 上下文首字符(占位符)-列表首字符要保留避免是复选框
|
|
|
|
|
if (
|
|
|
|
|
e === 0 &&
|
|
|
|
|
element.value === ZERO &&
|
|
|
|
|
!element.listId &&
|
|
|
|
|
(!element.type || element.type === ElementType.TEXT)
|
|
|
|
|
) {
|
|
|
|
|
e++
|
|
|
|
|
@ -444,6 +446,7 @@ export function zipElementList(payload: IElement[]): IElement[] {
|
|
|
|
|
if (element.titleId && element.level) {
|
|
|
|
|
// 标题处理
|
|
|
|
|
const titleId = element.titleId
|
|
|
|
|
if (titleId) {
|
|
|
|
|
const level = element.level
|
|
|
|
|
const titleElement: IElement = {
|
|
|
|
|
type: ElementType.TITLE,
|
|
|
|
|
@ -463,9 +466,11 @@ export function zipElementList(payload: IElement[]): IElement[] {
|
|
|
|
|
}
|
|
|
|
|
titleElement.valueList = zipElementList(valueList)
|
|
|
|
|
element = titleElement
|
|
|
|
|
}
|
|
|
|
|
} else if (element.listId && element.listType) {
|
|
|
|
|
// 列表处理
|
|
|
|
|
const listId = element.listId
|
|
|
|
|
if (listId) {
|
|
|
|
|
const listType = element.listType
|
|
|
|
|
const listStyle = element.listStyle
|
|
|
|
|
const listElement: IElement = {
|
|
|
|
|
@ -489,6 +494,7 @@ export function zipElementList(payload: IElement[]): IElement[] {
|
|
|
|
|
}
|
|
|
|
|
listElement.valueList = zipElementList(valueList)
|
|
|
|
|
element = listElement
|
|
|
|
|
}
|
|
|
|
|
} else if (element.type === ElementType.TABLE) {
|
|
|
|
|
// 分页表格先进行合并
|
|
|
|
|
if (element.pagingId) {
|
|
|
|
|
@ -532,6 +538,7 @@ export function zipElementList(payload: IElement[]): IElement[] {
|
|
|
|
|
} else if (element.type === ElementType.HYPERLINK) {
|
|
|
|
|
// 超链接处理
|
|
|
|
|
const hyperlinkId = element.hyperlinkId
|
|
|
|
|
if (hyperlinkId) {
|
|
|
|
|
const hyperlinkElement: IElement = {
|
|
|
|
|
type: ElementType.HYPERLINK,
|
|
|
|
|
value: '',
|
|
|
|
|
@ -551,8 +558,10 @@ export function zipElementList(payload: IElement[]): IElement[] {
|
|
|
|
|
}
|
|
|
|
|
hyperlinkElement.valueList = zipElementList(valueList)
|
|
|
|
|
element = hyperlinkElement
|
|
|
|
|
}
|
|
|
|
|
} else if (element.type === ElementType.DATE) {
|
|
|
|
|
const dateId = element.dateId
|
|
|
|
|
if (dateId) {
|
|
|
|
|
const dateElement: IElement = {
|
|
|
|
|
type: ElementType.DATE,
|
|
|
|
|
value: '',
|
|
|
|
|
@ -572,9 +581,11 @@ export function zipElementList(payload: IElement[]): IElement[] {
|
|
|
|
|
}
|
|
|
|
|
dateElement.valueList = zipElementList(valueList)
|
|
|
|
|
element = dateElement
|
|
|
|
|
}
|
|
|
|
|
} else if (element.controlId) {
|
|
|
|
|
// 控件处理
|
|
|
|
|
const controlId = element.controlId
|
|
|
|
|
if (controlId) {
|
|
|
|
|
const control = element.control!
|
|
|
|
|
const controlElement: IElement = {
|
|
|
|
|
type: ElementType.CONTROL,
|
|
|
|
|
@ -598,6 +609,7 @@ export function zipElementList(payload: IElement[]): IElement[] {
|
|
|
|
|
controlElement.control!.value = zipElementList(valueList)
|
|
|
|
|
element = controlElement
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 组合元素
|
|
|
|
|
const pickElement = pickElementAttr(element)
|
|
|
|
|
if (
|
|
|
|
|
@ -768,6 +780,11 @@ export function splitListElement(
|
|
|
|
|
const listElementListMap: Map<number, IElement[]> = new Map()
|
|
|
|
|
for (let e = 0; e < elementList.length; e++) {
|
|
|
|
|
const element = elementList[e]
|
|
|
|
|
// 移除列表首行换行字符-如果是复选框直接忽略
|
|
|
|
|
if (e === 0) {
|
|
|
|
|
if (element.checkbox) continue
|
|
|
|
|
element.value = element.value.replace(START_LINE_BREAK_REG, '')
|
|
|
|
|
}
|
|
|
|
|
if (element.listWrap) {
|
|
|
|
|
const listElementList = listElementListMap.get(curListIndex) || []
|
|
|
|
|
listElementList.push(element)
|
|
|
|
|
|