UNPKG

@antdp/antdp-ui

Version:

基于antd封装的组件

127 lines (126 loc) 4.49 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _valueUtil = require("rc-field-form/lib/utils/valueUtil"); var Store = /*#__PURE__*/(0, _createClass2["default"])(function Store() { var _this = this; (0, _classCallCheck2["default"])(this, Store); // 保存状态 (0, _defineProperty2["default"])(this, "store", {}); //保存组件 (0, _defineProperty2["default"])(this, "componentLists", []); // 初始化 (0, _defineProperty2["default"])(this, "init", function (entery) { var _ref = entery.props || {}, initialValue = _ref.initialValue; // 初始值 if (initialValue !== undefined) { // 获取保存路径 var pathName = entery.getNamePath(); if (pathName) { _this.store = (0, _valueUtil.setValue)(_this.store, pathName, initialValue); } } }); // 挂载之后 组件保存 (0, _defineProperty2["default"])(this, "register", function (entery) { _this.componentLists.push(entery); var _ref2 = entery.props || {}, initialValue = _ref2.initialValue; if (initialValue !== undefined) { entery.refresh(); } return function () { // 组件卸载进行组件删除 _this.componentLists = _this.componentLists.filter(function (item) { return item !== entery; }); // 保存的值进行删除 var pathName = entery.getNamePath(); if (pathName) { _this.store = (0, _valueUtil.setValue)(_this.store, pathName, undefined); } }; }); // 获取值 (0, _defineProperty2["default"])(this, "getStoreState", function (pathName) { if (pathName) { // 如果有路径,则根据路径获取值 return (0, _valueUtil.getValue)(_this.store, pathName); } return _this.store; }); (0, _defineProperty2["default"])(this, "getComponents", function () { return _this.componentLists; }); (0, _defineProperty2["default"])(this, "getStore", function () { return { getComponents: _this.getComponents, getStoreState: _this.getStoreState, getItemStore: _this.getItemStore, setInitialValues: _this.setInitialValues, updateValue: _this.updateValue }; }); // 子项内的方法 (0, _defineProperty2["default"])(this, "getItemStore", function () { return { init: _this.init, register: _this.register, getStoreState: _this.getStoreState, updateValue: _this.updateValue, getValue: _this.getValue }; }); (0, _defineProperty2["default"])(this, "setInitialValues", function (initialValues, init) { if (init) { _this.store = Object.assign({}, _this.store, initialValues); } }); // 更新值 (0, _defineProperty2["default"])(this, "updateValue", function (pathName, value) { var path = Array.isArray(pathName) ? pathName : [pathName]; _this.store = (0, _valueUtil.setValue)(_this.store, path, value); // 通知对应的组件进行强制更新 _this.notifyObservers(path); }); // 获取值 (0, _defineProperty2["default"])(this, "getValue", function (pathName) { var path = Array.isArray(pathName) ? pathName : [pathName]; return (0, _valueUtil.getValue)(_this.store, path); }); // 通知更新组件 (0, _defineProperty2["default"])(this, "notifyObservers", function (pathName) { _this.componentLists.forEach(function (_ref3) { var refresh = _ref3.refresh, getNamePath = _ref3.getNamePath; var currentPath = getNamePath(); // 判断路径相同的进行值更新 if (currentPath.join('') === pathName.join('')) { refresh(); } }); }); }); /** 状态管理 */ var useStore = function useStore(form) { var formRef = _react["default"].useRef(); if (!formRef.current) { if (form) { formRef.current = form; } else { var formStore = new Store(); formRef.current = formStore.getStore(); } } return [formRef.current]; }; var _default = exports["default"] = useStore; module.exports = exports.default;