93 lines
3.6 KiB
JavaScript
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,
|
|
});
|
|
},
|
|
},
|
|
});
|