oak-frontend-base/es/components/relation/actionAuth/index.js

60 lines
1.6 KiB
JavaScript

export default OakComponent({
entity: 'actionAuth',
projection: {
id: 1,
relation: {
id: 1,
name: 1,
},
deActions: 1,
},
properties: {
pathId: '',
relations: [],
actions: [],
},
getTotal: 1000,
isList: true,
filters: [
{
filter() {
const { pathId } = this.props;
return {
pathId,
};
}
}
],
formData({ data, legalActions }) {
const { relations, actions } = this.props;
let rowData = [];
for (const relation of relations) {
let row = data.find((ele) => ele?.relation?.name === relation.name);
if (relation.name === 'user') {
row = data.find((ele) => !ele.relationId);
}
let dataRow = {};
if (row) {
for (const ele of actions) {
if (row.deActions?.includes(ele)) {
dataRow[ele] = true;
}
else {
dataRow[ele] = false;
}
}
}
else {
for (const ele of actions) {
dataRow[ele] = false;
}
}
rowData.push(Object.assign(row || {}, dataRow, { relationId: relation.id, relationName: relation.name }));
}
return {
rowData: [...rowData],
actionAuthList: data,
};
},
});