fix: get controls within the table #628

pr675
Hufe921 2 years ago
parent b08dba0e96
commit 2af0847f55

@ -821,20 +821,34 @@ export class Control {
}
public getList(): IElement[] {
const data = [
this.draw.getHeader().getElementList(),
this.draw.getOriginalMainElementList(),
this.draw.getFooter().getElementList()
]
const controlElementList: IElement[] = []
for (const elementList of data) {
function getControlElementList(elementList: IElement[]) {
for (let e = 0; e < elementList.length; e++) {
const element = elementList[e]
if (element.type === ElementType.TABLE) {
const trList = element.trList!
for (let r = 0; r < trList.length; r++) {
const tr = trList[r]
for (let d = 0; d < tr.tdList.length; d++) {
const td = tr.tdList[d]
const tdElement = td.value
getControlElementList(tdElement)
}
}
}
if (element.controlId) {
controlElementList.push(element)
}
}
}
const data = [
this.draw.getHeader().getElementList(),
this.draw.getOriginalMainElementList(),
this.draw.getFooter().getElementList()
]
for (const elementList of data) {
getControlElementList(elementList)
}
return zipElementList(controlElementList)
}

@ -327,13 +327,10 @@ export class DateControl implements IControlInstance {
this.datePicker = new DatePicker(this.draw, {
onSubmit: this._setDate.bind(this)
})
const range = this.getValueRange()
const value = range
? elementList
.slice(range[0] + 1, range[1] + 1)
.map(el => el.value)
.join('')
: ''
const value =
this.getValue()
.map(el => el.value)
.join('') || ''
const dateFormat = this.element.control?.dateFormat
this.datePicker.render({
value,

Loading…
Cancel
Save