ming-demo3
Version:
mdf metaui web
580 lines (499 loc) • 19.8 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 _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