ze-react-component-library
Version:
ZeroETP React Component Library
186 lines (148 loc) • 7.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _hooks = require("@umijs/hooks");
var _zeroetpApiSdk = require("zeroetp-api-sdk");
var _request = require("../request");
var _proForm = require("@ant-design/pro-form");
var _pivotData = _interopRequireDefault(require("../util/pivotData"));
var _underscore = _interopRequireDefault(require("underscore"));
var _moment = _interopRequireDefault(require("moment"));
var _util = require("../util");
var _proProvider = require("@ant-design/pro-provider");
var _ObjectFormRenderItem = _interopRequireDefault(require("../components/ObjectFormRenderItem"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var __assign = void 0 && (void 0).__assign || function () {
__assign = Object.assign || function (t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) {
if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
}
return t;
};
return __assign.apply(this, arguments);
};
var __rest = void 0 && (void 0).__rest || function (s, e) {
var t = {};
for (var p in s) {
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
}
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
}
return t;
};
var ZEGrid = /*#__PURE__*/(0, _react.lazy)(function () {
return Promise.resolve().then(function () {
return _interopRequireWildcard(require("../ZEGrid"));
});
}); // Helper Functions
var helperFunctions = {
_: _underscore.default,
moment: _moment.default,
pivotData: _pivotData.default,
formatWithProperty: _util.formatWithProperty
};
var CustomRender = function CustomRender(_a) {
var _b;
var _c = _a.renderArgs,
renderArgs = _c === void 0 ? [] : _c;
var _ = renderArgs[0],
props = renderArgs[1],
dom = renderArgs[2];
var logicform = props === null || props === void 0 ? void 0 : props.fieldProps.logicform;
var propName = (_b = props === null || props === void 0 ? void 0 : props.fieldProps) === null || _b === void 0 ? void 0 : _b.propName;
var data = (0, _hooks.useRequest)(function () {
return logicform ? (0, _request.requestLogicform)(logicform) : Promise.resolve();
}).data;
if (!data) {
return dom;
}
return /*#__PURE__*/_react.default.createElement(_ObjectFormRenderItem.default, {
schema: data.schema,
props: props,
showTotal: true,
queryProperty: propName ? (0, _zeroetpApiSdk.findPropByName)(data.schema, propName) : (0, _zeroetpApiSdk.getNameProperty)(data.schema)
});
};
var getValueTypes = function getValueTypes() {
return {
select: {
renderFormItem: function renderFormItem(text, props, dom) {
return /*#__PURE__*/_react.default.createElement(CustomRender, {
renderArgs: [text, props, dom]
});
}
}
};
};
var ZEReport = function ZEReport(_a) {
var initialLogicform = _a.initialLogicform,
dataToGrid = _a.dataToGrid,
_logicforms = _a.logicforms,
_filtersFunc = _a.filters,
title = _a.title,
gridProps = __rest(_a, ["initialLogicform", "dataToGrid", "logicforms", "filters", "title"]);
var initialFilterValues = {};
var filters = _filtersFunc ? _filtersFunc(helperFunctions, initialLogicform) : [];
filters.forEach(function (f) {
if (f.initialValue && f.dataIndex) {
initialFilterValues[f.dataIndex] = f.initialValue;
}
});
var values = (0, _react.useContext)(_proProvider.ProProvider);
var _b = (0, _react.useState)(initialFilterValues),
filterValues = _b[0],
setFilterValues = _b[1];
var _c = (0, _hooks.useRequest)(function () {
var logicforms;
if (_logicforms instanceof Array) {
logicforms = _logicforms;
} else {
logicforms = _logicforms(filterValues, helperFunctions, initialLogicform);
}
return Promise.all(logicforms.map(function (d) {
return (0, _request.requestLogicform)(d);
}));
}, {
refreshDeps: [_logicforms, filterValues, initialLogicform],
initialData: [],
formatResult: function formatResult(res) {
return res;
}
}),
data = _c.data,
loading = _c.loading;
return /*#__PURE__*/_react.default.createElement(_react.Suspense, {
fallback: /*#__PURE__*/_react.default.createElement("strong", null, "\u52A0\u8F7D\u4E2D...")
}, /*#__PURE__*/_react.default.createElement(_proProvider.ProProvider.Provider, {
value: __assign(__assign({}, values), {
valueTypeMap: getValueTypes()
})
}, /*#__PURE__*/_react.default.createElement(ZEGrid, __assign({}, gridProps, {
data: dataToGrid(data, filterValues, helperFunctions),
loading: loading,
exportFileName: gridProps.exportFileName || title,
controls: /*#__PURE__*/_react.default.createElement(_proForm.BetaSchemaForm, {
layoutType: "QueryFilter",
columns: filters,
labelAlign: "left",
size: "small",
submitter: false,
onValuesChange: function onValuesChange(values) {
console.log(values);
setFilterValues(__assign(__assign({}, filterValues), values));
}
})
}))));
};
var _default = ZEReport;
exports.default = _default;