oak-general-business/lib/pages/userRelation/manage/index.js

93 lines
3.6 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var string_1 = require("oak-domain/lib/utils/string");
exports.default = OakComponent({
entity: 'user',
projection: function (_a) {
var props = _a.props;
return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var entity, entityStr;
var _b, _c, _d;
return tslib_1.__generator(this, function (_e) {
entity = props.entity;
entityStr = (0, string_1.firstLetterUpperCase)(entity);
return [2 /*return*/, (_b = {
id: 1
},
_b["user".concat(entityStr, "$user")] = {
$entity: "user".concat(entityStr),
data: (_c = {
id: 1,
userId: 1
},
_c["".concat(entity, "Id")] = 1,
_c.relation = 1,
_c),
filter: (_d = {},
_d["".concat(entity, "Id")] = props.entityId,
_d),
},
_b)];
});
});
},
filters: [
// 由调用者注入oakFilter
],
isList: true,
formData: function (_a) {
var users = _a.data, props = _a.props, features = _a.features;
return tslib_1.__awaiter(this, void 0, void 0, function () {
var entity, relations, entityStr, relationMap, relationArr, userRelations;
return tslib_1.__generator(this, function (_b) {
entity = props.entity, relations = props.relations;
entityStr = (0, string_1.firstLetterUpperCase)(entity);
relationMap = new Map();
relationArr = [];
userRelations = [];
//构建map对象
relations === null || relations === void 0 ? void 0 : relations.forEach(function (ele) {
relationMap.set(ele, []);
});
users === null || users === void 0 ? void 0 : users.forEach(function (ele) {
userRelations.push.apply(userRelations, tslib_1.__spreadArray([], tslib_1.__read(ele["user".concat(entityStr, "$user")]), false));
});
userRelations.forEach(function (ele) {
var userIds = relationMap.get(ele.relation);
userIds.push(ele.userId);
});
relationMap.forEach(function (value, key) {
relationArr.push([key, value]);
});
return [2 /*return*/, {
relationArr: relationArr,
relationMap: relationMap,
}];
});
});
},
properties: {
entity: String,
entityId: String,
relations: Array,
},
data: {
show: false,
},
lifetimes: {},
methods: {
handleClick: function (e) {
var _a = this.props, entity = _a.entity, entityId = _a.entityId;
var _b = e.currentTarget.dataset, ids = _b.ids, relation = _b.relation;
this.navigateTo({
url: '/userRelation/list',
entity: entity,
userIds: ids,
relation: relation,
entityId: entityId,
});
},
},
});