yylib-quick-mobile
Version:
yylib-quick-mobile
798 lines (719 loc) • 35.9 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _wingBlank = require('antd-mobile/lib/wing-blank');
var _wingBlank2 = _interopRequireDefault(_wingBlank);
var _modal = require('antd-mobile/lib/modal');
var _modal2 = _interopRequireDefault(_modal);
var _pagination = require('antd-mobile/lib/pagination');
var _pagination2 = _interopRequireDefault(_pagination);
var _list = require('antd-mobile/lib/list');
var _list2 = _interopRequireDefault(_list);
var _searchBar = require('antd-mobile/lib/search-bar');
var _searchBar2 = _interopRequireDefault(_searchBar);
var _whiteSpace = require('antd-mobile/lib/white-space');
var _whiteSpace2 = _interopRequireDefault(_whiteSpace);
var _activityIndicator = require('antd-mobile/lib/activity-indicator');
var _activityIndicator2 = _interopRequireDefault(_activityIndicator);
var _navBar = require('antd-mobile/lib/nav-bar');
var _navBar2 = _interopRequireDefault(_navBar);
var _accordion = require('antd-mobile/lib/accordion');
var _accordion2 = _interopRequireDefault(_accordion);
var _toast = require('antd-mobile/lib/toast');
var _toast2 = _interopRequireDefault(_toast);
var _radio = require('antd-mobile/lib/radio');
var _radio2 = _interopRequireDefault(_radio);
var _checkbox = require('antd-mobile/lib/checkbox');
var _checkbox2 = _interopRequireDefault(_checkbox);
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
require('antd-mobile/lib/wing-blank/style/css');
require('antd-mobile/lib/modal/style/css');
require('antd-mobile/lib/pagination/style/css');
require('antd-mobile/lib/list/style/css');
require('antd-mobile/lib/search-bar/style/css');
require('antd-mobile/lib/white-space/style/css');
require('antd-mobile/lib/activity-indicator/style/css');
require('antd-mobile/lib/nav-bar/style/css');
require('antd-mobile/lib/accordion/style/css');
require('antd-mobile/lib/toast/style/css');
require('antd-mobile/lib/radio/style/css');
require('antd-mobile/lib/checkbox/style/css');
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
require('./refer.less');
var _ajax = require('../../utils/ajax');
var _ajax2 = _interopRequireDefault(_ajax);
var _RestUrl = require('../../common/RestUrl');
var _RestUrl2 = _interopRequireDefault(_RestUrl);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var CheckboxItem = _checkbox2.default.CheckboxItem;
var RadioItem = _radio2.default.RadioItem;
var page = void 0;
var referUrl = [];
var treereferUrl = [];
var relyfield = [];
var referTreeListParams = {};
var referParams = void 0;
var data = [];
var pageCount = [];
var referstyle = '';
var listcontent = '';
var YYRefer = function (_React$Component) {
_inherits(YYRefer, _React$Component);
function YYRefer(props) {
_classCallCheck(this, YYRefer);
var _this = _possibleConstructorReturn(this, (YYRefer.__proto__ || Object.getPrototypeOf(YYRefer)).call(this, props));
_this.onMultiChange = function (e, selectedNode) {
var selectedNodes = _this.state.selectedNodes;
if (!selectedNodes.some(function (item) {
return item.id === selectedNode.id;
})) {
console.log('1');
selectedNodes.push(selectedNode);
_this.setState({
selectedNodes: selectedNodes
});
} else {
console.log('2');
var newNodes = [];
selectedNodes.map(function (item) {
if (item.id !== selectedNode.id) {
newNodes.push(item);
}
});
_this.setState({
selectedNodes: newNodes
});
}
};
_this.onSingleChange = function (e, selectedNode) {
if (selectedNode.id === _this.state.selectedId) {
_this.setState({
selectedId: null,
selectedNode: {}
});
} else {
_this.setState({
selectedId: selectedNode.id,
selectedNode: selectedNode
});
};
};
_this.onTreeChange = function (e, selectedNode) {
e.stopPropagation();
e.preventDefault();
if (selectedNode.id === _this.state.selectedTreeId) {
console.log('1');
_this.setState({
selectedTreeId: null,
showList: true
});
} else {
console.log('2');
_this.setState({
selectedTreeId: selectedNode.id,
showList: true
});
}
referTreeListParams.relyCondition = relyfield[_this.props.referName] + '=' + selectedNode.id;
referTreeListParams.condition = _this.props.listCondition;
referTreeListParams.pageSize = 10;
_this.getListData(referUrl[_this.props.referName], referTreeListParams, 1, _this.props.referName);
};
_this.onChangePageNumber = function (value) {
_this.setState({
pageNumber: value
});
var referParams = {};
referParams.condition = _this.props.condition;
if (_this.state.searchText !== '') {
referParams.searchText = _this.state.searchText;
referTreeListParams.searchText = _this.state.searchText;
}
referParams.pageSize = 10;
switch (_this.props.referStyle) {
case 'list':
_this.getListData(referUrl[_this.props.referName], referParams, value, _this.props.referName);
break;
case 'tree-list':
_this.getListData(referUrl[_this.props.referName], referTreeListParams, value, _this.props.referName);
break;
default:
_toast2.default.fail('请填写正确的referStyle', 2);
break;
}
};
_this.showModal = function (key) {
return function (e) {
e.preventDefault();
_this.setState(_defineProperty({}, key, true));
};
};
_this.onClose = function (key) {
return function (e) {
var referParams = {};
referParams.condition = _this.props.condition;
_this.setState({
showList: false
});
switch (_this.props.referStyle) {
case 'list':
_this.getListData(referUrl[_this.props.referName], referParams, 1, _this.props.referName);
break;
case 'tree':
_this.getTreeData(referUrl[_this.props.referName], referParams, _this.props.referName);
break;
case 'tree-list':
_this.getTreeData(treereferUrl[_this.props.referName], referParams, _this.props.referName);
break;
default:
_toast2.default.fail('请填写正确的referStyle', 2);
break;
}
_this.setState({
pageNumber: 1,
searchText: ''
});
_this.props.onClose(key);
};
};
_this.onOk = function (key) {
return function (e) {
var _self = _this;
_this.setState({
pageNumber: 1,
searchText: '',
showList: false
});
var referParams = {};
referParams.condition = _this.props.condition;
switch (_self.props.referStyle) {
case 'list':
_this.getListData(referUrl[_this.props.referName], referParams, 1, _this.props.referName);
break;
case 'tree-list':
_this.getTreeData(treereferUrl[_this.props.referName], referParams, _this.props.referName);
break;
default:
break;
}
if (_this.props.onOk && _.isFunction(_this.props.onOk)) {
if (!_this.props.multiMode) {
_this.props.onOk(_this.state.selectedNode, key);
_this.setState({
selectedId: null
});
} else {
_this.props.onOk(_this.state.selectedNodes, key);
_this.setState({
selectedNodes: []
});
}
}
};
};
_this.onSearchSubmit = function (value) {
_this.setState({
searchText: value
});
var referParams = {};
referParams.searchText = value;
referTreeListParams.searchText = value;
referTreeListParams.pageSize = 10;
referParams.condition = _this.props.condition;
switch (page.props.referStyle) {
case 'list':
_this.getListData(referUrl[_this.props.referName], referParams, 1, _this.props.referName);
break;
case 'tree-list':
_this.getListData(referUrl[_this.props.referName], referTreeListParams, 1, _this.props.referName);
referTreeListParams = {};
break;
default:
_toast2.default.fail('请填写正确的referStyle', 5);
break;
}
};
_this.listContent = function (data, selectedId) {
if (_this.props.multiMode) {
if (data) {
return data.map(function (item) {
return _react2.default.createElement(
CheckboxItem,
{ key: item.id, onChange: function onChange(e) {
return _this.onMultiChange(e, item);
} },
item[_this.props.displayField]
);
});
}
} else {
if (data) {
return data.map(function (item) {
return _react2.default.createElement(
RadioItem,
{ key: item.id, checked: selectedId === item.id,
onChange: function onChange(e) {
return _this.onSingleChange(e, item);
} },
item[_this.props.displayField]
);
});
}
}
};
_this.treeContent = function (treeData, selectedId) {
if (!_this.props.multiMode) {
if (treeData) {
return treeData.map(function (item) {
if (item.children && item.children.length > 0) {
item.isLeaf = false;
return _react2.default.createElement(
_accordion2.default,
{ onChange: _this.onChange, className: 'refer-accordion', key: item.id },
_react2.default.createElement(
_accordion2.default.Panel,
{ className: 'refer-pad', key: item.id, header: _react2.default.createElement(
CheckboxItem,
{ checked: selectedId === item.id, onChange: function onChange(e) {
return _this.onSingleChange(e, item);
}, key: item.id },
item[_this.props.displayField]
) },
_this.treeContent(item.children, selectedId)
)
);
} else {
item.isLeaf = true;
return _react2.default.createElement(
CheckboxItem,
{ checked: selectedId === item.id, className: 'refer-check-box', onChange: function onChange(e) {
return _this.onSingleChange(e, item);
}, key: item.id },
item[_this.props.displayField]
);
}
});
}
} else {
if (treeData) {
return treeData.map(function (item) {
if (item.children && item.children.length > 0) {
return _react2.default.createElement(
_accordion2.default,
{ onChange: _this.onChange, className: 'refer-accordion', key: item.id },
_react2.default.createElement(
_accordion2.default.Panel,
{ className: 'refer-pad', key: item.id, header: _react2.default.createElement(
CheckboxItem,
{ onChange: function onChange(e) {
return _this.onMultiChange(e, item);
}, key: item.id },
item[_this.props.displayField]
) },
_this.treeContent(item.children, selectedId)
)
);
} else {
return _react2.default.createElement(
CheckboxItem,
{ className: 'refer-check-box', onChange: function onChange(e) {
return _this.onMultiChange(e, item);
}, key: item.id },
item[_this.props.displayField]
);
}
});
}
}
};
_this.treeListContent = function (treeData, selectedId) {
if (treeData) {
return treeData.map(function (item) {
if (item.children && item.children.length > 0) {
return _react2.default.createElement(
_accordion2.default,
{ onChange: _this.onChange, className: 'refer-accordion', key: item.id },
_react2.default.createElement(
_accordion2.default.Panel,
{ className: 'refer-pad', key: item.id, header: _react2.default.createElement(
CheckboxItem,
{ onChange: function onChange(e) {
return _this.onTreeChange(e, item);
}, key: item.id },
item[_this.props.displayField]
) },
_this.treeListContent(item.children, selectedId)
)
);
} else {
return _react2.default.createElement(
CheckboxItem,
{ className: 'refer-check-box', onChange: function onChange(e) {
return _this.onTreeChange(e, item);
}, key: item.id },
item[_this.props.displayField]
);
}
});
}
};
_this.state = {
data: [],
value: '',
selectedId: null,
pageNumber: 1,
selectedNode: {},
selectedNodes: [],
animating: false,
pageCount: '',
searchText: '',
showList: false };
return _this;
}
_createClass(YYRefer, [{
key: 'componentWillMount',
value: function componentWillMount() {
page = this;
var name = this.props.referName;
var open = this.props.open;
page.setState(_defineProperty({}, name, open));
var referCode = page.props.referCode;
var referStyle = page.props.referStyle;
_ajax2.default.getJSON(_RestUrl2.default.REF_SERVER_URL + _RestUrl2.default.GET_REFINFO_BYCODE, { refCode: referCode }, function (result) {
if (result.success) {
if (result.data !== null) {
referUrl[name] = result.data.dataurl;
treereferUrl[name] = result.data.treerelyurl;
relyfield[name] = result.data.relyfield;
referParams = {};
page.setState({
referName: result.data.refName,
referUrl: referUrl
});
referParams.condition = page.props.condition;
referParams.pageSize = 10;
switch (referStyle) {
case 'list':
page.getListData(referUrl[name], referParams, 1, name);
break;
case 'tree':
page.getTreeData(referUrl[name], referParams, name);
break;
case 'tree-list':
page.getTreeData(treereferUrl[name], referParams, name);
break;
default:
_toast2.default.fail('请填写正确的referStyle', 2);
break;
}
} else {
_toast2.default.fail(result.msg, 2);
}
} else {
_toast2.default.fail("请检查参照编码!", 3);
}
}, function (err) {
_toast2.default.fail("服务器通讯异常!", 3);
});
}
}, {
key: 'componentWillReceiveProps',
value: function componentWillReceiveProps(nextprops) {
if (nextprops.open !== this.props.open) {
console.log(nextprops);
var nextopen = nextprops.open;
}
}
}, {
key: 'getListData',
value: function getListData(referUrl, referParams, pageNumber, contentname) {
var self = this;
self.setState({
animating: true
});
_ajax2.default.getJSON(referUrl, _.assign({}, referParams, { pageNumber: pageNumber }), function (result) {
if (result.code === 'success') {
data[contentname + 'list'] = result.data.content;
pageCount[contentname] = result.data.pageCount;
self.setState({
pageNumber: pageNumber,
pageCount: result.data.pageCount,
animating: false
});
} else {
self.setState({
animating: false
});
}
}, function (err) {
self.setState({
animating: false
});
_toast2.default.fail("服务器通讯异常!", 1);
});
}
}, {
key: 'getTreeData',
value: function getTreeData(referUrl, referParams, contentname) {
var _self = this;
_self.setState({
animating: true
});
_ajax2.default.getText(referUrl, referParams, function (result) {
result = JSON.parse(result);
data[contentname] = result;
_self.setState({
animating: false
});
}, function (err) {
_self.setState({
animating: false
});
_toast2.default.fail("服务器通讯异常!", 1);
});
}
}, {
key: 'render',
value: function render() {
var _this2 = this;
var self = this;
var _state = this.state,
value = _state.value,
selectedId = _state.selectedId,
animating = _state.animating,
pageNumber = _state.pageNumber,
showList = _state.showList;
var _props = this.props,
referlabel = _props.referlabel,
referCode = _props.referCode,
multiMode = _props.multiMode,
displayField = _props.displayField,
disabled = _props.disabled,
referStyle = _props.referStyle,
referName = _props.referName,
open = _props.open,
modalHeight = _props.modalHeight;
var modalStyle = void 0;
if (referStyle === 'list') {
modalStyle = _react2.default.createElement(
_modal2.default,
{
popup: true,
visible: disabled ? '' : open,
maskClosable: false,
animationType: 'slide-up'
},
_react2.default.createElement(
'div',
{ style: modalHeight == 'part' ? { height: '93vh', width: '100vw' } : { height: '100vh', width: '100vw' } },
_react2.default.createElement(
_navBar2.default,
{ leftContent: '\u8FD4\u56DE',
key: 'nav',
mode: 'light',
onLeftClick: this.onClose(referName),
rightContent: [_react2.default.createElement(
'a',
{ key: 'nav', onClick: this.onOk(referName) },
'\u786E\u5B9A'
)]
},
referlabel
),
_react2.default.createElement(_activityIndicator2.default, {
toast: true,
text: '\u52A0\u8F7D\u4E2D...',
animating: animating
}),
_react2.default.createElement(_whiteSpace2.default, null),
_react2.default.createElement(_searchBar2.default, { placeholder: '\u641C\u7D22', onSubmit: this.onSearchSubmit }),
_react2.default.createElement(
_list2.default,
{ className: 'list-content' },
self.listContent(data[referName + 'list'], selectedId)
),
_react2.default.createElement(_pagination2.default, { total: pageCount[referName],
onChange: this.onChangePageNumber,
className: 'custom-pagination-with-icon',
current: pageCount[referName] > 0 ? pageNumber : -1,
locale: {
prevText: _react2.default.createElement(
'span',
{ className: 'arrow-align' },
'\u4E0A\u4E00\u9875'
),
nextText: _react2.default.createElement(
'span',
{ className: 'arrow-align' },
'\u4E0B\u4E00\u9875'
)
}
})
)
);
} else if (referStyle === 'tree') {
modalStyle = _react2.default.createElement(
_modal2.default,
{
popup: true,
visible: disabled ? '' : open,
maskClosable: false,
animationType: 'slide-up' },
_react2.default.createElement(
'div',
{ style: modalHeight == 'part' ? { height: '93vh', width: '100vw' } : { height: '100vh', width: '100vw' } },
_react2.default.createElement(
_navBar2.default,
{ leftContent: '\u8FD4\u56DE',
key: 'nav',
mode: 'light',
onLeftClick: this.onClose(referName),
rightContent: [_react2.default.createElement(
'a',
{ key: 'nav', onClick: this.onOk(referName) },
'\u786E\u5B9A'
)]
},
referlabel
),
_react2.default.createElement(_activityIndicator2.default, {
toast: true,
text: '\u52A0\u8F7D\u4E2D...',
animating: animating
}),
_react2.default.createElement(_whiteSpace2.default, null),
_react2.default.createElement(_searchBar2.default, { placeholder: '\u641C\u7D22', onSubmit: this.onSearchSubmit }),
_react2.default.createElement(
'div',
{ className: 'refer-tree-content' },
this.treeContent(data[referName], selectedId)
)
)
);
} else if (referStyle === 'tree-list') {
modalStyle = _react2.default.createElement(
_modal2.default,
{
popup: true,
visible: disabled ? '' : open,
maskClosable: false,
animationType: 'slide-up' },
_react2.default.createElement(
'div',
{ style: modalHeight == 'part' ? { height: '93vh', width: '100vw' } : { height: '100vh', width: '100vw' } },
_react2.default.createElement(
_navBar2.default,
{ leftContent: '\u8FD4\u56DE',
key: 'nav',
mode: 'light',
onLeftClick: this.onClose(referName)
},
referlabel
),
_react2.default.createElement(_activityIndicator2.default, {
toast: true,
text: '\u52A0\u8F7D\u4E2D...',
animating: animating
}),
_react2.default.createElement(_whiteSpace2.default, null),
_react2.default.createElement(_searchBar2.default, { placeholder: '\u641C\u7D22', onSubmit: this.onSearchSubmit }),
_react2.default.createElement(
'div',
{ className: 'refer-tree-content' },
this.treeListContent(data[referName], selectedId)
),
_react2.default.createElement(
_modal2.default,
{
popup: true,
visible: showList,
maskClosable: false,
animationType: 'slide-up'
},
_react2.default.createElement(
'div',
{ style: modalHeight == 'part' ? { height: '93vh', width: '100vw' } : { height: '100vh', width: '100vw' } },
_react2.default.createElement(
_navBar2.default,
{ leftContent: '\u8FD4\u56DE',
key: 'nav',
mode: 'light',
onLeftClick: function onLeftClick() {
_this2.setState({ selectedTreeId: null, showList: false });
},
rightContent: [_react2.default.createElement(
'a',
{ key: 'nav', onClick: this.onOk(referName) },
'\u786E\u5B9A'
)]
},
referlabel
),
_react2.default.createElement(_activityIndicator2.default, {
toast: true,
text: '\u52A0\u8F7D\u4E2D...',
animating: animating
}),
_react2.default.createElement(_whiteSpace2.default, null),
_react2.default.createElement(_searchBar2.default, { placeholder: '\u641C\u7D22', onSubmit: this.onSearchSubmit }),
_react2.default.createElement(
_list2.default,
{ className: 'list-content' },
self.listContent(data[referName + 'list'], selectedId)
),
_react2.default.createElement(_pagination2.default, { total: pageCount[referName],
onChange: this.onChangePageNumber,
className: 'custom-pagination-with-icon',
current: pageCount[referName] > 0 ? pageNumber : -1,
locale: {
prevText: _react2.default.createElement(
'span',
{ className: 'arrow-align' },
'\u4E0A\u4E00\u9875'
),
nextText: _react2.default.createElement(
'span',
{ className: 'arrow-align' },
'\u4E0B\u4E00\u9875'
)
}
})
)
)
)
);
} else {
_toast2.default.fail('请传入正确的referStyle', 2);
}
return _react2.default.createElement(
_wingBlank2.default,
null,
_react2.default.createElement(_whiteSpace2.default, null),
modalStyle
);
}
}]);
return YYRefer;
}(_react2.default.Component);
exports.default = YYRefer;
YYRefer.defaultProps = {
referlabel: '参照',
referCode: '00026',
modalHeight: 'all',
displayField: 'name',
referParams: {},
multiMode: true,
disabled: false,
open: false,
onOk: {},
referName: 'key',
referStyle: 'list',
condition: {},
listCondition: {}
};