ming-demo3
Version:
mdf metaui web
412 lines (352 loc) • 12.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 _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 _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _react = _interopRequireWildcard(require("react"));
var _baseui = require("@mdf/baseui");
var _SvgIcon = _interopRequireDefault(require("@mdf/metaui-web/lib/components/common/SvgIcon"));
var _util = require("@mdf/cube/lib/helpers/util");
var Templatebutton = function (_React$Component) {
(0, _inherits2["default"])(Templatebutton, _React$Component);
function Templatebutton(props) {
var _this;
(0, _classCallCheck2["default"])(this, Templatebutton);
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Templatebutton).call(this, props));
_this.viewModel = props.model.getParent();
var status = _this.viewModel.getParams().mode;
var billNo = _this.viewModel.getParams().billNo;
_this.state = {
status: status,
billNo: billNo,
showtemp: false,
visible: true,
tempList: [],
selectedId: null,
type: 0,
isShow: false
};
return _this;
}
(0, _createClass2["default"])(Templatebutton, [{
key: "componentDidMount",
value: function componentDidMount() {
if (this.props.model) this.props.model.addListener(this);
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
if (this.props.model) this.props.model.removeListener(this);
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate() {
if (this.props.model) this.props.model.addListener(this);
}
}, {
key: "setListenerState",
value: function setListenerState(params) {
this.setState(params);
if (this.props.onVisibleChange) {
var visible = params.visible;
if (visible == null) visible = true;
this.props.onVisibleChange(visible);
}
}
}, {
key: "setVisible",
value: function setVisible(value, propertyName) {
if (propertyName === this.props.cItemName) {
this.setState({
visible: value
});
if (this.props.onVisibleChange) this.props.onVisibleChange(value);
}
}
}, {
key: "getListdata",
value: function () {
var _getListdata = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee() {
var _this$state, billNo, type, parameter, config, json;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_this$state = this.state, billNo = _this$state.billNo, type = _this$state.type;
if (this.viewModel.allActions && this.viewModel.allActions.length > 0) {
this.viewModel.allActions.forEach(function (item) {
if (item.cAction == "loaddatatemp") {
var param = JSON.parse(item.cParameter);
type = param.type;
}
});
}
parameter = {
"billno": billNo,
"type": type
};
config = {
url: 'billtempdata/list?action=templist',
method: 'POST',
params: parameter
};
_context.next = 6;
return (0, _util.proxy)(config);
case 6:
json = _context.sent;
if (json.code !== 200) {
cb.utils.alert('获取数据模版列表失败' + json.message, 'error');
}
;
json.data && this.setState({
tempList: json.data,
type: type,
isShow: !this.state.isShow
});
case 10:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
function getListdata() {
return _getListdata.apply(this, arguments);
}
return getListdata;
}()
}, {
key: "getTemplateList",
value: function getTemplateList() {
var _this2 = this;
var _this$state2 = this.state,
tempList = _this$state2.tempList,
selectedId = _this$state2.selectedId;
var listContent = [];
var listItem = null;
var self = this;
if (tempList && tempList.length > 0) {
tempList.forEach(function (ele, index) {
if (ele.id == selectedId) {
listItem = _react["default"].createElement(_baseui.Row, {
onClick: function onClick() {
return self.enterTemp(ele.id);
},
key: ele.id,
className: "selectedtemp_item"
}, ele.name);
listContent.push(listItem);
} else {
listItem = _react["default"].createElement(_baseui.Row, {
onClick: function onClick() {
return self.enterTemp(ele.id);
},
key: ele.id,
className: "temp_item"
}, ele.name);
listContent.push(listItem);
}
});
} else {
listContent.push(_react["default"].createElement(_baseui.Row, {
className: "temp_item"
}, "\u6682\u65E0\u6A21\u7248\u6570\u636E\uFF5E"));
}
return _react["default"].createElement("div", {
className: "temp_content"
}, _react["default"].createElement("div", {
className: "temp_scroll"
}, listContent), _react["default"].createElement("div", {
onClick: function onClick() {
return _this2.getTempManager();
},
className: "temp_manager"
}, _react["default"].createElement(_SvgIcon["default"], {
type: "plus"
}), "\u6A21\u7248\u7BA1\u7406"));
}
}, {
key: "copy",
value: function () {
var _copy = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(data, enterData) {
var config, json, copydata, copyItem;
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
config = {
url: 'bill/copy',
method: 'POST',
params: {
"billnum": data
}
};
_context2.next = 3;
return (0, _util.proxy)(config);
case 3:
json = _context2.sent;
if (!(json.code != 200)) {
_context2.next = 6;
break;
}
return _context2.abrupt("return");
case 6:
copydata = json.data;
copyItem = this.billCopy(enterData, copydata);
this.viewModel.biz["do"]('render', this.viewModel, {
data: copyItem,
dirty: true
});
case 9:
case "end":
return _context2.stop();
}
}
}, _callee2, this);
}));
function copy(_x, _x2) {
return _copy.apply(this, arguments);
}
return copy;
}()
}, {
key: "enterTemp",
value: function () {
var _enterTemp = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(id) {
var config, json, enterData, data, copyParams;
return _regenerator["default"].wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
config = {
url: 'billtempdata/detail?id=' + id,
method: 'GET'
};
_context3.next = 3;
return (0, _util.proxy)(config);
case 3:
json = _context3.sent;
if (!(json.code !== 200)) {
_context3.next = 6;
break;
}
return _context3.abrupt("return");
case 6:
enterData = {};
if (json.data && json.data.templateSnapshots[0]) {
data = json.data.templateSnapshots[0].context;
enterData = JSON.parse(data);
}
this.viewModel.setCache('creatorId', {
creatorId: json.data.creatorId,
masterId: json.data.id,
subListId: json.data.templateSnapshots[0].id,
selfName: json.data.name
});
copyParams = this.viewModel.getParams();
this.copy(copyParams.billNo, enterData);
this.setState({
selectedId: id,
isShow: !this.state.isShow
});
case 12:
case "end":
return _context3.stop();
}
}
}, _callee3, this);
}));
function enterTemp(_x3) {
return _enterTemp.apply(this, arguments);
}
return enterTemp;
}()
}, {
key: "billCopy",
value: function billCopy(source, target) {
var _this3 = this;
for (var key in target) {
if (Array.isArray(target[key])) {
var emptyRow = target[key][0];
if (Array.isArray(source[key])) {
source[key].forEach(function (item) {
if (!emptyRow) return;
_this3.billCopy(item, emptyRow);
});
}
} else {
source[key] = target[key];
}
}
return source;
}
}, {
key: "getTempManager",
value: function getTempManager() {
this.setState({
showtemp: true,
isShow: false
});
}
}, {
key: "closeMange",
value: function closeMange() {
this.setState({
showtemp: !this.state.showtemp
});
}
}, {
key: "handleHoverChange",
value: function handleHoverChange() {
this.getListdata();
}
}, {
key: "render",
value: function render() {
var _this4 = this;
var _this$state3 = this.state,
status = _this$state3.status,
showtemp = _this$state3.showtemp,
type = _this$state3.type;
var content = this.getTemplateList();
var template = _react["default"].createElement(_baseui.Button, {
className: "temp_header"
}, _react["default"].createElement(_SvgIcon["default"], {
type: "shujumoban"
}), "\u6A21\u7248");
var showTemplate = showtemp ? _react["default"].createElement(TempManager, {
model: this.viewModel,
close: function close() {
return _this4.closeMange();
},
type: this.state.type
}) : null;
var showPopover = _react["default"].createElement(_baseui.Popover, {
placement: "bottomRight",
content: content,
trigger: "hover",
onVisibleChange: function onVisibleChange() {
return _this4.handleHoverChange();
},
visible: this.state.isShow
}, template);
if (!this.state.visible) {
return null;
} else {
return _react["default"].createElement("div", null, showPopover, showTemplate);
}
}
}]);
return Templatebutton;
}(_react["default"].Component);
exports["default"] = Templatebutton;
//# sourceMappingURL=Templatebutton.js.map