fastlion-amis
Version:
一种MIS页面生成工具
243 lines (242 loc) • 11.4 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.iRendererStore = void 0;
var tslib_1 = require("tslib");
var mobx_state_tree_1 = require("mobx-state-tree");
var helper_1 = require("../utils/helper");
var tpl_builtin_1 = require("../utils/tpl-builtin");
var SimpleMap_1 = require("../utils/SimpleMap");
var node_1 = require("./node");
var index_1 = require("../renderers/Lion/Table/LionTable/components/LionExport/index");
var LoginAmazon_1 = require("../renderers/Lion/components/Actions/LoginAmazon");
exports.iRendererStore = node_1.StoreNode.named('iRendererStore')
.props({
hasRemoteData: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.boolean, false),
data: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.frozen(), {}),
initedAt: 0,
updatedAt: 0,
pristine: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.frozen(), {}),
action: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.frozen(), undefined),
dialogOpen: false,
dialogData: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.frozen(), undefined),
drawerOpen: false,
drawerHidden: false,
drawerData: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.frozen(), undefined),
updateType: '',
// Jay
hiddenIputTable: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.frozen(), {}),
inputTableData: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.frozen(), {}),
disabledFormItem: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.frozen(), {}),
autoFillObj: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.frozen(), {}),
replace: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.frozen(), {}), // 保存当前表单项的上下对象
})
.views(function (self) { return ({
getValueByName: function (name, canAccessSuper) {
if (canAccessSuper === void 0) { canAccessSuper = true; }
return (0, helper_1.getVariable)(self.data, name, canAccessSuper);
},
getPristineValueByName: function (name) {
return (0, helper_1.getVariable)(self.pristine, name, false);
}
}); })
.actions(function (self) {
var dialogCallbacks = new SimpleMap_1.SimpleMap();
return {
initData: function (data, skipSetPristine) {
if (data === void 0) { data = {}; }
if (skipSetPristine === void 0) { skipSetPristine = false; }
self.initedAt = Date.now();
!skipSetPristine && (self.pristine = data);
self.data = data;
},
reset: function () {
self.data = self.pristine;
},
updateData: function (data, tag, replace) {
if (data === void 0) { data = {}; }
var prev = self.data;
var newData;
if (tag) {
var proto = (0, helper_1.createObject)(self.data.__super || null, tag);
newData = (0, helper_1.createObject)(proto, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, (replace ? {} : self.data)), data));
}
else {
newData = (0, helper_1.extendObject)(self.data, data, !replace);
}
Object.defineProperty(newData, '__prev', {
value: (0, tslib_1.__assign)({}, prev),
enumerable: false,
configurable: false,
writable: false
});
self.data = newData;
},
// Jay
// input-table组件增删改时的处理函数
// name是input-table的name属性值,即作为表单项的name
changeInputTableValue: function (value, name) {
var _a;
self.inputTableData = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, self.inputTableData), (_a = {}, _a[name] = value, _a));
},
updateHiddenInputTable: function (value) {
self.hiddenIputTable = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, self.hiddenIputTable), value);
},
// Jay
// 禁用某些表单选项,例如checkboxex,radio
abandonFormItem: function (value, name) {
var _a;
self.disabledFormItem = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, self.disabledFormItem), (_a = {}, _a[name] = value, _a));
},
// Jay
// 保存所有表单项中的autoFill对象
setAutoFillObj: function (obj) {
self.autoFillObj = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, self.autoFillObj), obj);
},
setUpdateType: function (type) {
if (type === void 0) { type = ''; }
self.updateType = type;
},
changeValue: function (name, value, changePristine, force, otherModifier) {
if (!name) {
return;
}
var origin = (0, helper_1.getVariable)(self.data, name, false);
if (value === origin && !force) {
return;
}
var prev = self.data;
var data = (0, helper_1.cloneObject)(self.data);
if (prev.__prev) {
// 基于之前的 __prev 改
var prevData = (0, helper_1.cloneObject)(prev.__prev);
(0, helper_1.setVariable)(prevData, name, origin);
Object.defineProperty(data, '__prev', {
value: prevData,
enumerable: false,
configurable: false,
writable: false
});
}
else {
Object.defineProperty(data, '__prev', {
value: (0, tslib_1.__assign)({}, prev),
enumerable: false,
configurable: false,
writable: false
});
}
if (value === undefined) {
(0, helper_1.deleteVariable)(data, name);
}
else {
(0, helper_1.setVariable)(data, name, value);
}
otherModifier === null || otherModifier === void 0 ? void 0 : otherModifier(data);
if (changePristine) {
var pristine = (0, helper_1.cloneObject)(self.pristine);
(0, helper_1.setVariable)(pristine, name, value);
otherModifier === null || otherModifier === void 0 ? void 0 : otherModifier(pristine);
self.pristine = pristine;
}
if (!data.__pristine) {
Object.defineProperty(data, '__pristine', {
value: self.pristine,
enumerable: false,
configurable: false,
writable: false
});
}
self.data = data;
},
setCurrentAction: function (action) {
self.action = action;
},
openDialog: function (ctx, additonal, callback) {
var proto = ctx.__super ? ctx.__super : self.data;
if (additonal) {
proto = (0, helper_1.createObject)(proto, additonal);
}
var data = (0, helper_1.createObject)(proto, (0, tslib_1.__assign)({}, ctx));
if (self.action.dialog && self.action.dialog.data) {
self.dialogData = (0, tpl_builtin_1.dataMapping)(self.action.dialog.data, data);
var clonedAction = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, self.action), { dialog: (0, tslib_1.__assign)({}, self.action.dialog) });
delete clonedAction.dialog.data;
self.action = clonedAction;
}
else {
self.dialogData = data;
}
self.dialogOpen = true;
callback && dialogCallbacks.set(self.dialogData, callback);
},
closeDialog: function (result) {
var callback = dialogCallbacks.get(self.dialogData);
self.dialogOpen = false;
if (callback) {
dialogCallbacks.delete(self.dialogData);
setTimeout(function () { return callback(result); }, 200);
}
},
openDrawer: function (ctx, additonal, callback) {
if (self.drawerOpen) {
self.drawerHidden = false;
return;
}
var proto = ctx.__super ? ctx.__super : self.data;
if (additonal) {
proto = (0, helper_1.createObject)(proto, additonal);
}
var data = (0, helper_1.createObject)(proto, (0, tslib_1.__assign)({}, ctx));
if (self.action.drawer.data) {
self.drawerData = (0, tpl_builtin_1.dataMapping)(self.action.drawer.data, data);
var clonedAction = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, self.action), { dialog: (0, tslib_1.__assign)({}, self.action.dialog) });
delete clonedAction.dialog.data;
self.action = clonedAction;
}
else {
self.drawerData = data;
}
self.drawerOpen = true;
if (callback) {
dialogCallbacks.set(self.drawerData, callback);
}
},
closeDrawer: function (result, saveStateOnClose) {
if (saveStateOnClose) {
self.drawerHidden = true;
return;
}
var callback = dialogCallbacks.get(self.drawerData);
self.drawerOpen = false;
if (callback) {
dialogCallbacks.delete(self.drawerData);
setTimeout(function () { return callback(result); }, 200);
}
},
openLionExport: function (ctx, env, normalSelectAll, callback) {
env.fetcher(self.action.api, (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, ctx), self.data), self.data.__super)).then(function (res) {
if (res.status === 0 && res.data !== null) {
var data = res.data;
if (data.exportType === 2) {
(0, index_1.rowExport)(self.action, (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, ctx), self.data.__super), data), { ids: ctx.tempIds }), env).then(function (res2) { return callback && callback(res2); });
}
else {
var obj = (0, helper_1.createObject)(self.data, ctx);
(0, index_1.LionExport)(self.action, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, ctx), data), obj, env, normalSelectAll);
}
}
else {
env.alert(res.msg);
}
});
},
openAmazonLoginPage: function (ctx, env) {
(0, LoginAmazon_1.LionLoginAmazon)(self.action, ctx, env);
},
replaceDialog: function (data) {
self.replace = data;
}
};
});
// export type SIRendererStore = typeof iRendererStore.SnapshotType;
//# sourceMappingURL=./store/iRenderer.js.map
;