fix: get controls within the table #628
This commit is contained in:
@@ -821,19 +821,33 @@ export class Control {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public getList(): IElement[] {
|
public getList(): IElement[] {
|
||||||
|
const controlElementList: IElement[] = []
|
||||||
|
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 = [
|
const data = [
|
||||||
this.draw.getHeader().getElementList(),
|
this.draw.getHeader().getElementList(),
|
||||||
this.draw.getOriginalMainElementList(),
|
this.draw.getOriginalMainElementList(),
|
||||||
this.draw.getFooter().getElementList()
|
this.draw.getFooter().getElementList()
|
||||||
]
|
]
|
||||||
const controlElementList: IElement[] = []
|
|
||||||
for (const elementList of data) {
|
for (const elementList of data) {
|
||||||
for (let e = 0; e < elementList.length; e++) {
|
getControlElementList(elementList)
|
||||||
const element = elementList[e]
|
|
||||||
if (element.controlId) {
|
|
||||||
controlElementList.push(element)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return zipElementList(controlElementList)
|
return zipElementList(controlElementList)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -327,13 +327,10 @@ export class DateControl implements IControlInstance {
|
|||||||
this.datePicker = new DatePicker(this.draw, {
|
this.datePicker = new DatePicker(this.draw, {
|
||||||
onSubmit: this._setDate.bind(this)
|
onSubmit: this._setDate.bind(this)
|
||||||
})
|
})
|
||||||
const range = this.getValueRange()
|
const value =
|
||||||
const value = range
|
this.getValue()
|
||||||
? elementList
|
|
||||||
.slice(range[0] + 1, range[1] + 1)
|
|
||||||
.map(el => el.value)
|
.map(el => el.value)
|
||||||
.join('')
|
.join('') || ''
|
||||||
: ''
|
|
||||||
const dateFormat = this.element.control?.dateFormat
|
const dateFormat = this.element.control?.dateFormat
|
||||||
this.datePicker.render({
|
this.datePicker.render({
|
||||||
value,
|
value,
|
||||||
|
|||||||
Reference in New Issue
Block a user