203 lines
7.1 KiB
JavaScript
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*/];
|
|
}
|
|
});
|
|
});
|
|
},
|
|
},
|
|
});
|