oak-general-business/lib/pages/articleMenu/list/index.js

291 lines
10 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
exports.default = OakComponent({
entity: 'articleMenu',
projection: {
id: 1,
name: 1,
isArticle: 1,
isLeaf: 1,
parent: {
id: 1,
name: 1,
isArticle: 1,
isLeaf: 1,
},
entity: 1,
entityId: 1,
article$articleMenu: {
$entity: 'article',
data: {
id: 1,
name: 1,
content: 1,
articleMenuId: 1,
}
},
extraFile$entity: {
$entity: 'extraFile',
data: {
id: 1,
tag1: 1,
origin: 1,
bucket: 1,
objectId: 1,
filename: 1,
extra1: 1,
extension: 1,
type: 1,
entity: 1,
entityId: 1,
},
filter: {
tag1: {
$in: ['logo', 'introduce'],
},
},
},
},
sorters: [
{
sorter: {
$attr: {
$$createAt$$: 1,
},
$direction: 'asc',
},
},
],
isList: true,
pagination: {
currentPage: 1,
pageSize: 20,
more: true,
},
formData: function (_a) {
var _this = this;
var articleMenu = _a.data;
var articles = articleMenu.flatMap(function (menu) {
return menu['article$articleMenu'];
});
var newArticleMenus = articleMenu === null || articleMenu === void 0 ? void 0 : articleMenu.map(function (ele) {
var _a;
return tslib_1.__assign(tslib_1.__assign({}, ele), { logo: _this.features.extraFile.getUrl((_a = ele === null || ele === void 0 ? void 0 : ele.extraFile$entity) === null || _a === void 0 ? void 0 : _a.find(function (ele) { return ele.tag1 === 'logo'; })) });
});
var newArticles = articles === null || articles === void 0 ? void 0 : articles.map(function (ele) { return ({
id: ele === null || ele === void 0 ? void 0 : ele.id,
name: ele === null || ele === void 0 ? void 0 : ele.name,
parent: ele === null || ele === void 0 ? void 0 : ele.articleMenuId,
parentId: ele === null || ele === void 0 ? void 0 : ele.articleMenuId,
isArticle: true,
type: 'article',
}); });
var arr = tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(newArticleMenus), false), tslib_1.__read(newArticles), false);
var rootNodes = arr === null || arr === void 0 ? void 0 : arr.filter(function (node) { return !node.parent; });
var treeData = rootNodes === null || rootNodes === void 0 ? void 0 : rootNodes.map(function (rootNode) {
var _a;
return {
label: rootNode.name,
key: (_a = rootNode.id) === null || _a === void 0 ? void 0 : _a.toString(),
isArticle: rootNode.isArticle,
logo: rootNode === null || rootNode === void 0 ? void 0 : rootNode.logo,
children: _this.buildTreeData(arr, rootNode.id),
};
});
return {
treeData: treeData,
};
},
filters: [],
lifetimes: {
// async ready() {
// const { data: articles } = await this.features.cache.refresh(
// 'article',
// {
// data: {
// id: 1,
// name: 1,
// content: 1,
// articleMenuId: 1,
// },
// }
// );
// const { data: articleMenus } = await this.features.cache.refresh(
// 'articleMenu',
// {
// data: {
// id: 1,
// name: 1,
// isArticle: 1,
// isLeaf: 1,
// parent: {
// id: 1,
// name: 1,
// isArticle: 1,
// isLeaf: 1,
// },
// extraFile$entity: {
// $entity: 'extraFile',
// data: {
// id: 1,
// tag1: 1,
// origin: 1,
// bucket: 1,
// objectId: 1,
// filename: 1,
// extra1: 1,
// extension: 1,
// type: 1,
// entity: 1,
// entityId: 1,
// },
// filter: {
// tag1: {
// $in: ['logo'],
// },
// },
// },
// },
// sorter: [
// {
// $attr: {
// $$createAt$$: 1,
// },
// $direction: 'asc',
// },
// ],
// }
// );
// const newArticleMenus = articleMenus?.map((ele) => {
// return {
// ...ele,
// logo: this.features.extraFile.getUrl(
// ele?.extraFile$entity?.find(
// (ele) => ele.tag1 === 'logo'
// )
// ),
// };
// });
// const newArticles = articles?.map((ele) => ({
// id: ele?.id,
// name: ele?.name,
// parent: ele?.articleMenuId,
// parentId: ele?.articleMenuId,
// isArticle: true,
// type: 'article',
// }));
// const arr: any[] = [...newArticleMenus, ...newArticles];
// const rootNodes = arr?.filter((node) => !node.parent);
// const treeData = rootNodes?.map((rootNode) => {
// return {
// label: rootNode.name,
// key: rootNode.id?.toString(),
// isArticle: rootNode.isArticle,
// logo: rootNode?.logo,
// children: this.buildTreeData(arr, rootNode.id),
// };
// });
// this.setState({
// treeData,
// })
// },
},
data: {
selectArticleMenuId: '',
selectArticleId: '',
treeData: [],
},
properties: {
entity: '',
entityId: '',
},
actions: ['create', 'update', 'remove'],
methods: {
buildTreeData: function (nodes, parentId) {
var e_1, _a;
var children = [];
try {
for (var nodes_1 = tslib_1.__values(nodes), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) {
var node = nodes_1_1.value;
if (node.parentId === parentId) {
var treeNode = {
label: node.name,
key: node.id.toString(),
isArticle: node.isArticle,
isLeaf: node.isLeaf,
logo: node.logo,
type: node.type,
};
var nestedChildren = this.buildTreeData(nodes, node.id);
if (nestedChildren.length > 0) {
treeNode.children = nestedChildren;
}
children.push(treeNode);
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (nodes_1_1 && !nodes_1_1.done && (_a = nodes_1.return)) _a.call(nodes_1);
}
finally { if (e_1) throw e_1.error; }
}
return children;
},
gotoUpsertById: function (id) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
this.setState({
selectArticleMenuId: id,
selectArticleId: '',
});
return [2 /*return*/];
});
});
},
gotoArticleUpsert: function (articleId) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
this.setState({
selectArticleId: articleId,
selectArticleMenuId: '',
});
return [2 /*return*/];
});
});
},
gotoEdit: function (id) {
if (id) {
this.navigateTo({
url: '/articleMenu/upsert',
oakId: id,
});
}
else {
var _a = this.props, entity = _a.entity, entityId = _a.entityId;
this.navigateTo({
url: '/articleMenu/upsert',
entity: entity,
entityId: entityId,
});
}
},
onRemoveArticleMenu: function (id) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
this.removeItem(id);
return [4 /*yield*/, this.execute()];
case 1:
_a.sent();
return [2 /*return*/];
}
});
});
},
},
});