UNPKG

ming-demo1

Version:
867 lines (740 loc) 28.5 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireWildcard(require("react")); var _baseui = require("@mdf/baseui"); var _basic = require("../basic"); var _sumareasetting = _interopRequireDefault(require("../basic/sumareasetting")); var _publishmenu = _interopRequireDefault(require("../basic/publishmenu")); var _Print = _interopRequireDefault(require("./Print")); var _Draftbutton = _interopRequireDefault(require("./Draftbutton")); var _Templatebutton = _interopRequireDefault(require("./Templatebutton")); var _env = _interopRequireDefault(require("../../helpers/env")); var _SvgIcon = _interopRequireDefault(require("@mdf/metaui-web/lib/components/common/SvgIcon")); var _summarySetting = _interopRequireDefault(require("../summary-setting")); var _PrintTemplate = _interopRequireDefault(require("./PrintTemplate")); var _extend = require("@mdf/cube/lib/extend"); var SubMenu = _baseui.Menu.SubMenu; var MenuItem = _baseui.Menu.Item; var Toolbar = function (_React$Component) { (0, _inherits2["default"])(Toolbar, _React$Component); function Toolbar(props) { var _this; (0, _classCallCheck2["default"])(this, Toolbar); _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Toolbar).call(this, props)); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "openNotification", function (asyncParams) { var message = asyncParams.message || _react["default"].createElement("div", { className: "Toolbar_Notification_Msg" }); var description = asyncParams.description || _this.getNotificationDesc(asyncParams); _baseui.notification.open({ key: asyncParams.asyncKey, message: message, description: description, placement: "bottomRight", duration: 0, className: "Toolbar_Notification" }); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onMouseDown", function (e) { e.stopPropagation(); _this.moving = true; window.onmousemove = function (e) { _this.moving && _this.onMove(e); }; }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onMouseUp", function () { _this.moving = false; _this.lastX = null; _this.lastY = null; window.onmousemove = null; }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onMove", function (e) { if (_this.lastX && _this.lastY) { var dx = e.clientX - _this.lastX; var dy = e.clientY - _this.lastY; _this.setState({ translateY: _this.state.translateY + dy }); } _this.lastX = e.clientX; _this.lastY = e.clientY; }); var controls = props.controls, showCount = props.showCount; _this.state = Object.assign({ controlKeyvisible: null, controlKey: '', hide: false, translateX: 0, translateY: 0 }, _this.buildState(controls, showCount)); _this.isNewStyle = _this.checkNewStyle(controls); var keyMap = {}; _this.recursive(_this.state.controls, function (key, value) { keyMap[key] = value; }); _this.keyMap = keyMap; var visibleMap = {}; _this.cEcsuiteItemName = "btnEcsuite"; _this.state.controls.forEach(function (item) { var ctrlType = item.cControlType; ctrlType = ctrlType && ctrlType.trim().toLocaleLowerCase(); if (ctrlType !== "spliter" && item.cItemName != _this.cEcsuiteItemName) { visibleMap[item.cItemName] = true; } }); _this.visibleMap = visibleMap; _this.setNotificationEvent(); _this.moving = false; _this.lastX = null; _this.lastY = null; window.onmouseup = function (e) { return _this.onMouseUp(e); }; return _this; } (0, _createClass2["default"])(Toolbar, [{ key: "checkNewStyle", value: function checkNewStyle(controls) { var tmp = false; if (controls && controls.length > 0) { controls.forEach(function (control, index) { var ctrlType = control.cControlType && control.cControlType.trim().toLocaleLowerCase(); if (ctrlType == "spliter") tmp = true; }); } return tmp; } }, { key: "componentDidUpdate", value: function componentDidUpdate(prevProps, prevState) { var _this2 = this; var _istrue = false; if (prevState.controls.length && prevState.controls.length === this.state.controls.length) { prevState.controls.forEach(function (v, index) { if (_this2.state.controls[index].cItemName !== v.cItemName) _istrue = _istrue || true; }); } if (prevState.controls.length !== this.state.controls.length || _istrue) { var visibleMap = {}; var _this$state = this.state, controlKeyvisible = _this$state.controlKeyvisible, controlKey = _this$state.controlKey, controls = _this$state.controls; controls.forEach(function (item) { var ctrlType = item.cControlType; ctrlType = ctrlType && ctrlType.trim().toLocaleLowerCase(); if (ctrlType !== "spliter" && item.cItemName != _this2.cEcsuiteItemName) { visibleMap[item.cItemName] = true; } }); this.visibleMap = visibleMap; this.handleVisibleChange(controlKey, controlKeyvisible); } } }, { key: "buildState", value: function buildState(controls, showCount) { controls = controls || []; showCount = showCount != null ? showCount : controls.length; return { controls: controls, showCount: showCount }; } }, { key: "recursive", value: function recursive(data, callback) { var _this3 = this; data.forEach(function (item) { callback.call(_this3, item.cItemName, item); if (item.children) _this3.recursive(item.children, callback); }); } }, { key: "componentDidMount", value: function componentDidMount() { var _this4 = this; this.menuControls.map(function (control) { var controlModel = _this4.props.model.get(control.cItemName); if (controlModel) controlModel.addListener(_this4); }); } }, { key: "componentWillReceiveProps", value: function componentWillReceiveProps(nextProps) { var controls = nextProps.controls, showCount = nextProps.showCount; this.setState(this.buildState(controls, showCount)); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { var _this5 = this; this.menuControls.map(function (control) { var controlModel = _this5.props.model.get(control.cItemName); if (controlModel) controlModel.removeListener(_this5); }); } }, { key: "handleVisibleChange", value: function handleVisibleChange(controlKey, visible) { var _this6 = this; if (this.visibleMap.hasOwnProperty(controlKey)) this.visibleMap[controlKey] = visible; var hideCount = 0; var controls = this.state.controls; controls.forEach(function (item) { var cItemName = item.cItemName; if (_this6.visibleMap[cItemName]) return; hideCount++; }); var hide = hideCount === controls.length; this.setState({ hide: hide, controlKey: controlKey, controlKeyvisible: visible }); if (this.props.onVisibleChange) this.props.onVisibleChange(!hide); } }, { key: "setNotificationEvent", value: function setNotificationEvent() { this.props.model.on('openNotification', this.openNotification); } }, { key: "handleNotificationClick", value: function handleNotificationClick(asyncParams) { _baseui.notification.close(asyncParams.asyncKey); this.props.model.communication({ type: 'modal', payload: { key: 'BatchMsg', data: { type: 2, res: asyncParams.res } } }); } }, { key: "getNotificationDesc", value: function getNotificationDesc(asyncParams) { var _this7 = this; var tmpTime = asyncParams.curTime; if (tmpTime.lastIndexOf(":") != tmpTime.indexOf(":")) { tmpTime = tmpTime.substring(0, tmpTime.lastIndexOf(":")); } var res = asyncParams.res; var arr = []; arr.push(_react["default"].createElement("div", { className: "Toolbar_Notification_Img" })); arr.push(_react["default"].createElement("div", { className: "Toolbar_Notification_Desc1" }, "\u5BFC\u5165\u8BF7\u6C42\u5DF2\u7ECF\u6267\u884C\u5B8C\u6BD5\uFF01")); arr.push(_react["default"].createElement("div", { className: "Toolbar_Notification_Desc2" }, "\u60A8\u4E8E", tmpTime, "\u53D1\u8D77\u7684\u3010", asyncParams.busName, "\u3011")); arr.push(_react["default"].createElement("div", { className: "Toolbar_Notification_Desc3" }, "\u5171\u5BFC\u5165", _react["default"].createElement("span", { className: "Toolbar_Notification_Count" }, res.count), "\u6761\uFF0C\u6210\u529F", _react["default"].createElement("span", { className: "Toolbar_Notification_SucessCount" }, res.sucessCount), "\u6761\uFF0C\u5931\u8D25", _react["default"].createElement("span", { className: "Toolbar_Notification_FailCount" }, res.failCount), "\u6761")); if (res.failCount > 0) { arr.push(_react["default"].createElement("a", { onClick: function onClick() { return _this7.handleNotificationClick(asyncParams); }, className: "Toolbar_Notification_Log" }, "\u67E5\u770B\u9519\u8BEF\u65E5\u5FD7", ">")); } return _react["default"].createElement("div", { className: "Toolbar_Notification_Desc" }, " ", arr); } }, { key: "renderIcon", value: function renderIcon(control) { var icon = ''; if (control.cShowCaption) icon = '#icon-' + control.cShowCaption; return _react["default"].createElement("svg", { key: "icon", className: "icon", "aria-hidden": "true" }, _react["default"].createElement("use", { href: icon })); } }, { key: "parseShowButtons", value: function parseShowButtons() { var _this8 = this; var self = this; var delay = this.props.delay; var showCount = this.state.showCount; var showButtons = []; var realButtonCount = 0; var bSpliter = false; var buttonArr = []; var ToolbarMap = {}; var toolbars = _extend.extendComp.toolbar || {}; for (var attr in toolbars) { ToolbarMap[attr.trim().toLocaleLowerCase()] = toolbars[attr]; } this.state.controls.map(function (control, index) { bSpliter = false; if (realButtonCount === showCount) return; if (control.cItemName == self.cEcsuiteItemName) return; var ctrlType = control.cControlType && control.cControlType.trim().toLocaleLowerCase(); var caption = control.cShowCaption; var controlKey = control.cItemName ? control.cItemName : ""; if (controlKey === 'btnPreview' && _env["default"].INTERACTIVE_MODE !== 'touch') ctrlType = 'printbutton'; if (controlKey.toLocaleLowerCase() === 'btnsumSetting'.toLocaleLowerCase()) ctrlType = 'sumsettingbutton'; if (controlKey.toLocaleLowerCase() === 'btnMenupublish'.toLocaleLowerCase()) ctrlType = 'menupublishbutton'; var controlModel = _this8.props.model.get(controlKey); var button; var id = "".concat(_this8.props.model.getParams().billNo, "|").concat(controlKey); switch (ctrlType) { case 'dropdownbuttongroup': button = _react["default"].createElement(_basic.DropdownButtonGroup, (0, _extends2["default"])({ onVisibleChange: function onVisibleChange(visible) { return _this8.handleVisibleChange(controlKey, visible); }, value: caption, model: controlModel }, control)); realButtonCount++; break; case 'dropdownbutton': button = _react["default"].createElement(_basic.DropdownButton, (0, _extends2["default"])({ onVisibleChange: function onVisibleChange(visible) { return _this8.handleVisibleChange(controlKey, visible); }, value: caption, model: controlModel }, control, { classname: _this8.isNewStyle == true ? "Toolbar_Common_Btn" : "" })); realButtonCount++; break; case 'dropdown': button = _react["default"].createElement(_basic.Dropdown, (0, _extends2["default"])({ onVisibleChange: function onVisibleChange(visible) { return _this8.handleVisibleChange(controlKey, visible); }, value: caption, model: controlModel }, control, { className: _this8.isNewStyle == true ? "" : "no-border-radius m-l-10" })); realButtonCount++; break; case 'printtemplate': button = _react["default"].createElement(_PrintTemplate["default"], (0, _extends2["default"])({ onVisibleChange: function onVisibleChange(visible) { return _this8.handleVisibleChange(controlKey, visible); }, value: caption, model: controlModel }, control)); realButtonCount++; break; case 'printbutton': button = _react["default"].createElement(_Print["default"], (0, _extends2["default"])({ onVisibleChange: function onVisibleChange(visible) { return _this8.handleVisibleChange(controlKey, visible); }, value: caption, model: controlModel }, control)); realButtonCount++; break; case 'sumsettingbutton': button = _react["default"].createElement(_sumareasetting["default"], { viewModel: _this8.props.model, name: control.cShowCaption, className: _this8.isNewStyle == true ? "" : "m-l-10" }); realButtonCount++; break; case 'menupublishbutton': button = _react["default"].createElement(_publishmenu["default"], { viewModel: _this8.props.model, name: control.cShowCaption, className: _this8.isNewStyle == true ? "" : "m-l-10" }); realButtonCount++; break; case 'summarysetting': button = _react["default"].createElement(_summarySetting["default"], { viewModel: _this8.props.model, meta: control }); realButtonCount++; break; case 'button': button = _react["default"].createElement(_basic.Button, (0, _extends2["default"])({ onVisibleChange: function onVisibleChange(visible) { return _this8.handleVisibleChange(controlKey, visible); }, value: caption, model: controlModel, delay: delay }, control, { className: _this8.isNewStyle == true ? "" : "no-border-radius m-l-10", id: id })); realButtonCount++; break; case 'draftbutton': button = _react["default"].createElement(_Draftbutton["default"], (0, _extends2["default"])({ onVisibleChange: function onVisibleChange(visible) { return _this8.handleVisibleChange(controlKey, visible); }, value: caption, model: controlModel }, control, { controls: _this8.state.controls })); realButtonCount++; break; case 'datatempbutton': button = _react["default"].createElement(_Templatebutton["default"], (0, _extends2["default"])({ onVisibleChange: function onVisibleChange(visible) { return _this8.handleVisibleChange(controlKey, visible); }, value: caption, model: controlModel }, control, { controls: _this8.state.controls })); realButtonCount++; break; case 'primarybutton': button = _react["default"].createElement(_basic.Button, (0, _extends2["default"])({ onVisibleChange: function onVisibleChange(visible) { return _this8.handleVisibleChange(controlKey, visible); }, value: caption, model: controlModel, delay: delay }, control, { className: _this8.isNewStyle == true ? "" : "no-border-radius m-l-10", type: "primary", id: id })); realButtonCount++; break; case 'input': button = _react["default"].createElement(_basic.Input, (0, _extends2["default"])({ model: controlModel }, control)); realButtonCount++; break; case 'checkbox': button = _react["default"].createElement(_basic.CheckBox, (0, _extends2["default"])({ model: controlModel }, control)); realButtonCount++; break; case 'spliter': bSpliter = true; button = _this8.getSpliter(true); break; case 'icon': button = _this8.renderIcon(control); break; case 'pagetitle': button = _react["default"].createElement("p", { style: { "float": "left" } }, _this8.props.model.getParams().caption); break; case 'pageicon': var basicComp = _extend.extendComp.basic; if (basicComp && basicComp.PageIcon) button = _react["default"].createElement(basicComp.PageIcon, { control: control }); break; case 'pagecode': if (_this8.props.model.getParams().pageCode) { var pc = _this8.props.model.get("pageCode"); var field = JSON.parse(pc.get("cParameter")).codeField; var pageCode = ''; var pageMode = _this8.props.model.getParams().mode; if (field) { if (_this8.props.model.get(field) && _this8.props.model.get(field).getValue() && pageMode == _env["default"].VOUCHER_STATE_BROWSE) { pageCode = ': ' + _this8.props.model.get(field).getValue(); } } button = _react["default"].createElement("p", { style: { "float": "left" } }, pageCode); } break; case 'tag': button = _react["default"].createElement(_baseui.Tag, { key: "tag", color: "blue" }, _react["default"].createElement(_basic.Span, { model: controlModel, value: caption })); break; default: var ComName = ToolbarMap[ctrlType]; if (ComName) { button = _react["default"].createElement(ComName, (0, _extends2["default"])({ model: controlModel }, control)); realButtonCount++; } break; } if (button) { _this8.breakIndex = index; buttonArr.push({ button: button, bSpliter: bSpliter, visible: bSpliter || _this8.visibleMap[controlKey] }); } }); showButtons = this.trimButtons(buttonArr); return showButtons; } }, { key: "getSpliter", value: function getSpliter(visible) { var button; if (cb.extendConfig && cb.extendConfig.theme == 'ncc') { button = _react["default"].createElement("span", { style: { padding: 3, "float": 'left', display: visible ? '' : 'none' } }); } else { button = _react["default"].createElement("span", { style: { padding: 4, "float": 'left', display: visible ? '' : 'none' } }); } return button; } }, { key: "trimButtons", value: function trimButtons(buttonArr) { var _this9 = this; var preHasVisibleButton = false; var lastVisibleSpliterIndex = -1; for (var i = 0; i < buttonArr.length; i++) { var ele = buttonArr[i]; if (ele.bSpliter == true) { if (preHasVisibleButton == true) { preHasVisibleButton = false; lastVisibleSpliterIndex = i; } else { ele.visible = false; } } else { if (ele.visible == true) preHasVisibleButton = true; } } if (preHasVisibleButton == false && lastVisibleSpliterIndex >= 0) { buttonArr[lastVisibleSpliterIndex].visible = false; } buttonArr.forEach(function (ele) { if (ele.bSpliter == true && ele.visible == false) { ele.button = _this9.getSpliter(false); } }); var visibleButtonNum = 0; var returnArr = []; var buttonGroup = []; buttonArr.forEach(function (ele) { if (ele.bSpliter == true) { if (buttonGroup.length > 0) { var _strClass = ""; if (_this9.isNewStyle) { _strClass = "Toolbar_Group" + (visibleButtonNum == 1 ? "_Length1" : ""); } returnArr.push(_react["default"].createElement("div", { className: _strClass }, buttonGroup)); buttonGroup = []; visibleButtonNum = 0; } returnArr.push(ele.button); } else { if (ele.visible == true) { visibleButtonNum = visibleButtonNum + 1; } buttonGroup.push(ele.button); } }); var strClass = ""; if (this.isNewStyle) { strClass = "Toolbar_Group" + (visibleButtonNum == 1 ? "_Length1" : ""); } if (buttonGroup.length > 0) { returnArr.push(_react["default"].createElement("div", { className: strClass }, buttonGroup)); } return returnArr; } }, { key: "parseMenuButtons", value: function parseMenuButtons() { var _this10 = this; var self = this; var breakIndex = this.breakIndex, menuButtons = []; this.menuControls = []; this.state.controls.map(function (control, index) { if (index <= breakIndex) return; var ctrlType = control.cControlType.trim().toLocaleLowerCase(); if (ctrlType == 'pagecode') return; if (control.cItemName == self.cEcsuiteItemName) return; var caption = control.cShowCaption; var key = control.cItemName; var disabled = control.disabled; var menuItemCom = control.icon ? _react["default"].createElement("span", null, _react["default"].createElement(_baseui.Icon, { type: control.icon }), _react["default"].createElement("span", null, caption)) : caption; var menuButton = _react["default"].createElement(MenuItem, { key: key, disabled: disabled }, menuItemCom); menuButtons.push(menuButton); _this10.menuControls.push(control); }); return menuButtons; } }, { key: "handleMenuClick", value: function handleMenuClick(e) { var controlModel = this.props.model.get(e.key); if (controlModel) controlModel.fireEvent('click'); } }, { key: "setDisabled", value: function setDisabled(value, key) { var item = this.keyMap[key]; if (item) item.disabled = value; this.setState({ controls: this.state.controls }); } }, { key: "getEcsuite", value: function getEcsuite() { var _this11 = this; var self = this; var ecsuiteList = _.filter(this.state.controls, function (o) { return o.cItemName == self.cEcsuiteItemName; }); if (ecsuiteList && ecsuiteList.length > 0) { var control = ecsuiteList[0]; var controlKey = control.cItemName; var controlModel = this.props.model.get(controlKey); var Toolbar_Ecsuite_ID = "key_" + cb.utils.getNewGuid().replace(/-/g, ""); var button = _react["default"].createElement(_basic.DropdownButton, (0, _extends2["default"])({ value: control.cShowCaption, model: controlModel }, control, { icon: "faqixiezuo", classname: "Toolbar_Ecsuite_Btn", isEcsuite: true, Toolbar_Ecsuite_ID: Toolbar_Ecsuite_ID })); return _react["default"].createElement("div", { className: "Toolbar_Ecsuite", id: Toolbar_Ecsuite_ID, onMouseDown: function onMouseDown(e) { return _this11.onMouseDown(e); }, style: { transform: "translateY(".concat(this.state.translateY, "px)") } }, button); } else { return undefined; } } }, { key: "render", value: function render() { var _this12 = this; var control = []; var showButtons = this.parseShowButtons(); control.push(_react["default"].createElement(_basic.Col, { key: "show", span: 'auto' }, showButtons)); var menuButtons = this.parseMenuButtons(); if (menuButtons.length) { var menu = _react["default"].createElement(_baseui.Menu, { onClick: function onClick(e) { return _this12.handleMenuClick(e); }, mode: "horizontal", className: "no-border moreButton" }, _react["default"].createElement(SubMenu, { title: _react["default"].createElement("span", null, "\u6279\u91CF\u64CD\u4F5C", _react["default"].createElement(_baseui.Icon, { type: "tagall" })) }, menuButtons)); control.push(_react["default"].createElement(_basic.Col, { key: "menu", span: 'auto', className: "btn-submenu" }, menu)); } var className = 'btn-toolbar-bottom'; if (this.props.config) { var config = null; try { config = JSON.parse(this.props.config); } catch (e) { config = {}; } if (config.classname) className += ' ' + config.classname; } if (this.state.hide) className = 'hide'; var ecsuite = this.getEcsuite(); return _react["default"].createElement(_basic.Row, { className: className, flex: this.props.align === 'right' ? 'end' : 'start' }, control, ecsuite); } }]); return Toolbar; }(_react["default"].Component); exports["default"] = Toolbar; //# sourceMappingURL=Toolbar.js.map