UNPKG

ming-demo3

Version:
580 lines (499 loc) 19.8 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 _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); 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 _basic = require("../basic"); var _baseui = require("@mdf/baseui"); var _Container = _interopRequireDefault(require("./Container")); var _SvgIcon = _interopRequireDefault(require("@mdf/metaui-web/lib/components/common/SvgIcon")); var _util = require("@mdf/cube/lib/helpers/util"); var _batchMsg = _interopRequireDefault(require("./batchMsg")); var Workbench = function (_Component) { (0, _inherits2["default"])(Workbench, _Component); function Workbench(props) { var _this; (0, _classCallCheck2["default"])(this, Workbench); _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Workbench).call(this, props)); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "initData", function (viewModel, billNo) { viewModel.on('afterSave', function (saveData, callback) { _this.afterSingleSave(saveData, callback); }); _this.getAddData({ "billnum": billNo }); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onMouseEnter", function (e, index) { _this.setState({ "focusRowIndex": index }); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "saveAll", function () { var _this$state = _this.state, billNo = _this$state.billNo, viewModel = _this$state.viewModel, addData = _this$state.addData, dimensionKeys = _this$state.dimensionKeys; _this.setCacheData(dimensionKeys, viewModel, _this.nowKeyIndex); _this.nowKeyIndex = 0; viewModel.clear(); viewModel.biz["do"]('render', viewModel, { data: Object.assign({}, addData, dimensionKeys[_this.nowKeyIndex].cacheData), dirty: true }); viewModel.setCache("isHideAlert", true); _this.setState({ showModal: true, viewModel: viewModel }); _this.loopSave(); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "loopSave", function () { var _this$state2 = _this.state, billNo = _this$state2.billNo, viewModel = _this$state2.viewModel, dimensionKeys = _this$state2.dimensionKeys; var saveAction = viewModel.biz.action()['save']; var params = viewModel.getParams(); saveAction(billNo, viewModel, params, function (data, callback) { callback(); }, function (afterActData) { _this.afterSave(afterActData); if (!_this.isEnd) { var obj = dimensionKeys[_this.nowKeyIndex]; _this.onDimensionClick(null, obj.key, true, _this.nowKeyIndex, false); } }); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "afterSingleSave", function (afterActData) { var _this$state3 = _this.state, dimensionKeys = _this$state3.dimensionKeys, groupCode = _this$state3.groupCode, viewModel = _this$state3.viewModel; if (afterActData.err && _this.isTest == false) { dimensionKeys[_this.nowKeyIndex].isComplete = false; dimensionKeys[_this.nowKeyIndex].errInfo = afterActData.err; _this.setCacheData(dimensionKeys, viewModel, _this.nowKeyIndex); } else { dimensionKeys[_this.nowKeyIndex].isComplete = true; dimensionKeys.splice(_this.nowKeyIndex, 1); if (dimensionKeys.length > 0) { if (_this.nowKeyIndex >= dimensionKeys.length) { _this.nowKeyIndex = dimensionKeys.length - 1; } var obj2 = dimensionKeys[_this.nowKeyIndex]; _this.onDimensionClick(null, obj2.key, false, _this.nowKeyIndex, false); } else { _this.goBack(groupCode, viewModel, true); } } _this.setState({ dimensionKeys: dimensionKeys, viewModel: viewModel }); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "afterSave", function (afterActData) { var _this$state4 = _this.state, dimensionKeys = _this$state4.dimensionKeys, viewModel = _this$state4.viewModel; if (afterActData.err) { dimensionKeys[_this.nowKeyIndex].isComplete = false; dimensionKeys[_this.nowKeyIndex].errInfo = afterActData.err; _this.setCacheData(dimensionKeys, viewModel, _this.nowKeyIndex); } else if (dimensionKeys.length > 0) { dimensionKeys[_this.nowKeyIndex].isComplete = true; } if (_this.nowKeyIndex < dimensionKeys.length - 1) { _this.nowKeyIndex += 1; } else if (_this.nowKeyIndex == dimensionKeys.length - 1) { _this.isEnd = true; } _this.setState({ dimensionKeys: dimensionKeys }); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onModalOk", function (para) { if (_this.isEnd == true) { var _this$state5 = _this.state, dimensionKeys = _this$state5.dimensionKeys, groupCode = _this$state5.groupCode, viewModel = _this$state5.viewModel, addData = _this$state5.addData; var newKeys = []; dimensionKeys.map(function (obj) { if (!obj.isComplete) newKeys.push(obj); }); if (newKeys.length > 0 && _this.isTest == false) { viewModel.clear(); viewModel.biz["do"]('render', viewModel, { data: Object.assign({}, addData, newKeys[0].cacheData), dirty: true }); viewModel.validate(true); _this.nowKeyIndex = 0; _this.isEnd = false; _this.setState({ showModal: false, dimensionKeys: newKeys }); } else { _this.goBack(groupCode, viewModel, true); } viewModel.setCache("isHideAlert", false); } }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDelDimension", function (e, index) { var _this$state6 = _this.state, dimensionKeys = _this$state6.dimensionKeys, groupCode = _this$state6.groupCode, viewModel = _this$state6.viewModel; dimensionKeys.splice(index, 1); e.preventDefault(); e.stopPropagation(); if (dimensionKeys.length > 0) { index = index == 0 ? 0 : index - 1; var obj = dimensionKeys[index]; _this.state.dimensionKeys = dimensionKeys; _this.onDimensionClick(null, obj.key, false, index, false); _this.setState({ dimensionKeys: dimensionKeys }); } else { _this.goBack(groupCode, viewModel, false); } }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getDimensionControl", function () { var _this$state7 = _this.state, dimensionKeys = _this$state7.dimensionKeys, focusRowIndex = _this$state7.focusRowIndex, navActive = _this$state7.navActive; var controls = []; dimensionKeys.forEach(function (obj, index) { if (!obj.isComplete) controls.push(_react["default"].createElement("li", { onMouseEnter: function onMouseEnter(e) { return _this.onMouseEnter(e, index); }, onMouseLeave: function onMouseLeave(e) { return _this.onMouseEnter(e, -1); }, onClick: function onClick(e) { return _this.onDimensionClick(e, obj.key, false, index, true); }, className: navActive == index ? "active" : "" }, _react["default"].createElement("span", { className: "name" }, obj.name), focusRowIndex == index ? _react["default"].createElement("span", { onClick: function onClick(e) { return _this.onDelDimension(e, index); }, className: "action" }, _react["default"].createElement(_baseui.Icon, { type: "close" })) : null)); }); return _react["default"].createElement("ul", { className: "dimension-list" }, controls); }); var _viewModel = _this.props.viewModel; var _dimensionKeys = [], _groupCode = '', _billNo = '', groupTaskKey; if (_viewModel) { _viewModel.setCache("isInWorkBench", true); var keys = _viewModel.getParams().dimensionKeys; keys && keys.map(function (obj, index) { var cacheData = null; if (index == 0) { cacheData = _viewModel.getParams().targetData; } _dimensionKeys.push({ 'key': obj.key, 'name': obj.name, isComplete: false, cacheData: cacheData, errInfo: null }); }); _groupCode = _viewModel.getParams().dimensionGroupCode; _billNo = _viewModel.getParams().billNo; groupTaskKey = _viewModel.getParams().groupTaskKey; } else { _this.consoleLog('生单工作台传入参数中没有viewModel! ', true); } _this.state = { "viewModel": _viewModel, "dimensionKeys": _dimensionKeys, "focusRowIndex": -1, "groupCode": _groupCode, "billNo": _billNo, "addData": {}, "showModal": false, "navActive": 0, groupTaskKey: groupTaskKey }; _this.isEnd = false; _this.initData(_viewModel, _billNo); _this.nowKeyIndex = 0; _this.isTest = false; return _this; } (0, _createClass2["default"])(Workbench, [{ key: "getAddData", value: function () { var _getAddData = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(params) { var config, json; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: config = { url: '/bill/add', method: 'POST', options: { token: true }, params: params }; _context.next = 3; return (0, _util.proxy)(config); case 3: json = _context.sent; if (!(json.code !== 200)) { _context.next = 7; break; } cb.utils.alert('调用add失败:' + json.message, 'error'); return _context.abrupt("return"); case 7: this.setState({ "addData": json.data }); case 8: case "end": return _context.stop(); } } }, _callee, this); })); function getAddData(_x) { return _getAddData.apply(this, arguments); } return getAddData; }() }, { key: "setCacheData", value: function setCacheData(dimensionKeys, viewModel, index) { var data = viewModel.collectData(true); data.dimensionKey = dimensionKeys[index].key; dimensionKeys[index].cacheData = data; } }, { key: "onDimensionClick", value: function () { var _onDimensionClick = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(e, key, bLoopSave, dIndex, bSetCache) { var _this$state8, groupCode, viewModel, addData, dimensionKeys, groupTaskKey, vouchData, config, json, data; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _this$state8 = this.state, groupCode = _this$state8.groupCode, viewModel = _this$state8.viewModel, addData = _this$state8.addData, dimensionKeys = _this$state8.dimensionKeys, groupTaskKey = _this$state8.groupTaskKey; this.setState({ "navActive": dIndex }); vouchData = null; if (dimensionKeys[this.nowKeyIndex] && bSetCache) { this.setCacheData(dimensionKeys, viewModel, this.nowKeyIndex); } if (!dimensionKeys[dIndex].cacheData) { _context2.next = 8; break; } vouchData = dimensionKeys[dIndex].cacheData; _context2.next = 17; break; case 8: config = { url: 'makeBill/getDimensionData', method: 'POST', options: { token: true }, params: { "groupCode": groupCode, "dimensionKey": key, groupTaskKey: groupTaskKey } }; _context2.next = 11; return (0, _util.proxy)(config); case 11: json = _context2.sent; if (!(json.code !== 200)) { _context2.next = 15; break; } cb.utils.alert('获取dimension失败:' + json.message, 'error'); return _context2.abrupt("return"); case 15: vouchData = json.data; vouchData.dimensionKey = key; case 17: viewModel.clear(); data = Object.assign({}, addData, vouchData); viewModel.biz["do"]('render', viewModel, { data: data, dirty: true }); viewModel.validate(true); this.nowKeyIndex = dIndex; if (bLoopSave) this.loopSave(); case 23: case "end": return _context2.stop(); } } }, _callee2, this); })); function onDimensionClick(_x2, _x3, _x4, _x5, _x6) { return _onDimensionClick.apply(this, arguments); } return onDimensionClick; }() }, { key: "consoleLog", value: function consoleLog(str, bError) { console.log(str); } }, { key: "goBack", value: function () { var _goBack = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(groupCode, viewModel, bOK) { var groupTaskKey, config, json; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: groupTaskKey = this.state.groupTaskKey; config = { url: 'makeBill/clearDimensionCache', method: 'POST', options: { token: true }, params: { "groupCode": groupCode, groupTaskKey: groupTaskKey } }; _context3.next = 4; return (0, _util.proxy)(config); case 4: json = _context3.sent; if (json.code !== 200) this.consoleLog('clearDimensionCache失败: json.message = ' + json.message);else this.consoleLog('clearDimensionCache成功:groupCode = ' + groupCode); if (bOK) { cb.utils.alert('生单操作完毕。', 'success'); } viewModel.communication({ type: 'return' }); case 8: case "end": return _context3.stop(); } } }, _callee3, this); })); function goBack(_x7, _x8, _x9) { return _goBack.apply(this, arguments); } return goBack; }() }, { key: "componentWillUnmount", value: function componentWillUnmount() { this.props.viewModel && this.props.viewModel.setCache("isInWorkBench", false); } }, { key: "render", value: function render() { var self = this; var _this$props = this.props, viewModel = _this$props.viewModel, meta = _this$props.meta, width = _this$props.width, height = _this$props.height, index = _this$props.index; var groupCode = this.state.groupCode; var dimensionControl = this.getDimensionControl(); return _react["default"].createElement(_basic.Row, { className: "workbench-container", colCount: 4 }, _react["default"].createElement("div", { className: "list-top-toolbar" }, _react["default"].createElement(_basic.Row, null, _react["default"].createElement("div", { style: { "float": "left" } }, _react["default"].createElement(_basic.Row, { className: "btn-toolbar-bottom", flex: 'start' }, _react["default"].createElement(_baseui.Button, { onClick: function onClick(e) { return self.goBack(groupCode, viewModel, false); } }, _react["default"].createElement(_SvgIcon["default"], { className: "icon-rollback", type: 'rollback' }), "\u8FD4\u56DE"))), _react["default"].createElement("div", { style: { "float": "right" } }, _react["default"].createElement(_basic.Row, { className: "btn-toolbar-bottom", flex: 'end' }, _react["default"].createElement(_baseui.Button, { onClick: this.saveAll }, _react["default"].createElement(_SvgIcon["default"], { className: "icon-baocun1", type: 'baocun1' }), "\u4FDD\u5B58\u5168\u90E8"))))), _react["default"].createElement("div", { className: "workbench-main" }, _react["default"].createElement("div", { className: "workbench-left" }, dimensionControl), _react["default"].createElement("div", { className: "workbench-right" }, _react["default"].createElement(_Container["default"], { className: "height-100", meta: meta, viewModel: viewModel, width: width ? width - 300 : 1024, height: height, index: index }))), _react["default"].createElement(_batchMsg["default"], { type: 1, msgArr: this.state.dimensionKeys, visible: this.state.showModal, handleOk: this.onModalOk, bCanClose: this.isEnd, codeField: "code" })); } }]); return Workbench; }(_react.Component); exports["default"] = Workbench; //# sourceMappingURL=Workbench.js.map