UNPKG

fastlion-amis

Version:

一种MIS页面生成工具

288 lines (287 loc) 13.7 kB
"use strict"; 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, drawerData: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.frozen(), undefined), // Aug lionChildViewOpen: false, lionChildViewData: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.frozen(), undefined), lionChildViewSiblings: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.frozen(), []), 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(), {}) // 保存所有表单项的autoFill对象,只是为了给inputTable判断新增数据所用 }) .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) { 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) { var callback = dialogCallbacks.get(self.drawerData); self.drawerOpen = false; if (callback) { dialogCallbacks.delete(self.drawerData); setTimeout(function () { return callback(result); }, 200); } }, // Aug 打开子页面 openLionChildView: function (ctx, env, 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.lionChildView.data) { self.lionChildViewData = (0, tpl_builtin_1.dataMapping)(self.action.lionChildView.data, data); var clonedAction = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, self.action), { lionChildView: (0, tslib_1.__assign)({}, self.action.lionChildView) }); delete clonedAction.lionChildView.data; self.action = clonedAction; } else { self.lionChildViewData = data; } var modalContainer = self.action.lionChildView.modalContainer; // 隐藏原层级元素 var con = modalContainer && document.querySelector(modalContainer); var envCon = (function () { if (env && env.getModalContainer) { if (typeof env.getModalContainer === 'function') { return env.getModalContainer(); } return env.getModalContainer; } return undefined; })(); var node = con || envCon || undefined; var children = Array.from(node.children); self.lionChildViewSiblings = children; children.forEach(function (child) { child.style.display = 'none'; }); // 打开新页面 self.lionChildViewOpen = true; if (callback) { dialogCallbacks.set(self.lionChildViewData, callback); } }, // Aug 关闭子页面 closeLionChildView: function (result) { var callback = dialogCallbacks.get(self.lionChildViewData); self.lionChildViewOpen = false; // 显示原层级元素 setTimeout(function () { self.lionChildViewSiblings.forEach(function (item) { item.style.display = 'block'; }); }, 300); if (callback) { dialogCallbacks.delete(self.lionChildViewData); 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 { (0, index_1.LionExport)(self.action, (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, ctx), self.data.__super), data), env, normalSelectAll); } } else { env.alert(res.msg); } }); }, openAmazonLoginPage: function (ctx, env) { (0, LoginAmazon_1.LionLoginAmazon)(self.action, ctx, env); } }; }); // export type SIRendererStore = typeof iRendererStore.SnapshotType; //# sourceMappingURL=./store/iRenderer.js.map