ming-demo1
Version:
mdf metaui web
867 lines (740 loc) • 28.5 kB
JavaScript
"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