add order fields
This commit is contained in:
@@ -643,6 +643,11 @@ export default {
|
|||||||
required: false,
|
required: false,
|
||||||
default: '-80px'
|
default: '-80px'
|
||||||
},
|
},
|
||||||
|
orderAsOnPage: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
requireSigningReason: {
|
requireSigningReason: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
required: false,
|
required: false,
|
||||||
@@ -962,6 +967,38 @@ export default {
|
|||||||
return acc
|
return acc
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
|
if (this.orderAsOnPage) {
|
||||||
|
const fieldAreasIndex = {}
|
||||||
|
const attachmentUuids = Object.keys(this.attachmentConditionsIndex)
|
||||||
|
|
||||||
|
const sortArea = (aArea, bArea) => {
|
||||||
|
if (aArea.attachment_uuid === bArea.attachment_uuid) {
|
||||||
|
if (aArea.page === bArea.page) {
|
||||||
|
if (Math.abs(aArea.y - bArea.y) < 0.01) {
|
||||||
|
if (aArea.x === bArea.x) {
|
||||||
|
return 0
|
||||||
|
} else {
|
||||||
|
return aArea.x - bArea.x
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return aArea.y - bArea.y
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return aArea.page - bArea.page
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return attachmentUuids.indexOf(aArea.attachment_uuid) - attachmentUuids.indexOf(bArea.attachment_uuid)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sortedFields.sort((aField, bField) => {
|
||||||
|
const aArea = (fieldAreasIndex[aField.uuid] ||= [...(aField.areas || [])].sort(sortArea)[0])
|
||||||
|
const bArea = (fieldAreasIndex[bField.uuid] ||= [...(bField.areas || [])].sort(sortArea)[0])
|
||||||
|
|
||||||
|
return sortArea(aArea, bArea)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
if (verificationFields.length) {
|
if (verificationFields.length) {
|
||||||
sortedFields.push(verificationFields.pop())
|
sortedFields.push(verificationFields.pop())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user