oak-general-business/lib/components/userRelation/upsert/byUserEntityGrant/index.js

203 lines
7.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var assert_1 = require("oak-domain/lib/utils/assert");
exports.default = OakComponent({
entity: 'userEntityGrant',
projection: {
id: 1,
entity: 1,
entityId: 1,
relationId: 1,
type: 1,
number: 1,
remark: 1,
granterId: 1,
granteeId: 1,
qrCodeType: 1,
},
isList: false,
formData: function (_a) {
var userEntityGrant = _a.data;
return ({
userEntityGrant: userEntityGrant,
});
},
properties: {
entity: '',
entityId: '',
relations: [],
type: 'grant',
redirectToAfterConfirm: {},
qrCodeType: '',
},
data: {
period: 15,
userEntityGrantId: '',
unit: 'minute',
maxes: {
minute: 3 * 24 * 60,
hour: 3 * 24,
day: 3,
},
defaultPeriods: {
minute: 15,
hour: 1,
day: 1,
},
unitArr: [
{
label: '分钟',
value: 'minute',
},
{
label: '小时',
value: 'hour',
},
],
unitIndex: 0,
},
lifetimes: {
ready: function () {
this.setInit();
},
},
methods: {
onShareAppMessage: function (e) {
var _a;
var app = this.features.application.getApplication();
var _b = app, config = _b.config, system = _b.system;
var systemConfig = system.config;
var userEntityGrantId = this.state.userEntityGrantId;
var imageUrl = (systemConfig && ((_a = systemConfig === null || systemConfig === void 0 ? void 0 : systemConfig.App) === null || _a === void 0 ? void 0 : _a.mpShareImageUrl)) || '';
return {
title: '',
path: "/pages/userEntityGrant/confirm/index?oakId=".concat(userEntityGrantId),
imageUrl: imageUrl,
};
},
setInit: function () {
var userId = this.features.token.getUserId();
var _a = this.props, entity = _a.entity, entityId = _a.entityId, type = _a.type, redirectToAfterConfirm = _a.redirectToAfterConfirm, qrCodeType = _a.qrCodeType;
this.update({
confirmed: 0,
entity: entity,
entityId: entityId,
type: type || 'grant',
number: 1,
granterId: userId,
redirectTo: redirectToAfterConfirm,
qrCodeType: qrCodeType,
});
this.setState({
userEntityGrantId: '',
});
if (process.env.OAK_PLATFORM === 'wechatMp') {
wx.hideShareMenu();
}
},
setRelation: function (value) {
this.update({
relationId: value,
});
},
setRelationMp: function (e) {
var currentKey = e.detail.currentKey;
this.setRelation(currentKey);
},
setNumber: function (value) {
this.update({
number: value,
});
},
setNumberMp: function (e) {
var currentKey = e.detail.currentKey;
this.setNumber(parseInt(currentKey, 10));
},
setPeriod: function (p) {
this.setState({ period: p });
},
setPeriodMp: function (e) {
var count = e.detail.count;
this.setPeriod(count);
},
setUnit: function (u) {
var defaultPeriods = this.state.defaultPeriods;
this.setState({ unit: u });
this.setPeriod(defaultPeriods[u]);
},
setUnitMp: function (e) {
var unitArr = this.state.unitArr;
var value = e.detail.value;
var unitObj = unitArr[value];
this.setState({
unitIndex: value,
});
this.setUnit(unitObj.value);
},
onBack: function () {
this.navigateBack();
},
confirm: function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a, period, unit, userEntityGrant, time, expiresAt, id;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0:
_a = this.state, period = _a.period, unit = _a.unit, userEntityGrant = _a.userEntityGrant;
if (!(userEntityGrant === null || userEntityGrant === void 0 ? void 0 : userEntityGrant.relationId)) {
this.setMessage({
type: 'error',
content: '请选择角色权限',
});
return [2 /*return*/];
}
time = 0;
switch (unit) {
case 'hour': {
time = period * 60 * 60 * 1000;
break;
}
case 'day': {
time = period * 24 * 60 * 60 * 1000;
break;
}
default: {
if (unit === 'minute') {
time = period * 60 * 1000;
}
else {
this.setMessage({
type: 'error',
content: '请选择过期时长单位',
});
return [2 /*return*/];
}
break;
}
}
expiresAt = Date.now() + time;
this.update({
expiresAt: expiresAt,
});
(0, assert_1.assert)(!this.props.oakId);
id = this.getId();
return [4 /*yield*/, this.execute()];
case 1:
_b.sent();
// set了这个值就在页面显示二维码
this.setState({
userEntityGrantId: id,
});
// 小程序显示可分享菜单
if (process.env.OAK_PLATFORM === 'wechatMp') {
wx.showShareMenu({});
}
return [2 /*return*/];
}
});
});
},
},
});