knk
Version:
react components based on react
235 lines (232 loc) • 8.68 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
var _api = require("../../../common/api");
var _tool = require("../../../common/tool");
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _antd = require("antd");
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
/**
* 选择顾问
*/
var Option = _antd.Select.Option;
function buildGroupChildData(child) {
if (!child || !Array.isArray(child)) return [];
return child.map(function (item) {
return {
title: item.name,
value: item.groupId,
key: item.groupId,
children: buildGroupChildData(item.child)
};
});
}
// 封装组件
var AjaxManagerSelect = /*#__PURE__*/function (_Component) {
(0, _inherits2.default)(AjaxManagerSelect, _Component);
var _super = (0, _createSuper2.default)(AjaxManagerSelect);
function AjaxManagerSelect(props) {
var _this;
(0, _classCallCheck2.default)(this, AjaxManagerSelect);
_this = _super.call(this, props);
_this.state = {
loading: false,
managerGroupData: [],
managerData: []
};
_this.handleChangeGroup = _this.handleChangeGroup.bind((0, _assertThisInitialized2.default)(_this));
_this.handleChangeManager = _this.handleChangeManager.bind((0, _assertThisInitialized2.default)(_this));
// 是否已加载
_this.open = true;
return _this;
}
(0, _createClass2.default)(AjaxManagerSelect, [{
key: "componentDidMount",
value: function componentDidMount() {
var value = this.props.value;
this.handleGetGroupList();
if (value[0]) {
this.handleGetManagerList(value[0]);
}
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate(prevProps) {
var value = prevProps.value;
// 查询是否有变更组
var newValue = this.props.value || [];
if (value && newValue[0] !== value[0]) {
this.handleGetManagerList(newValue[0]);
}
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
this.open = false;
}
}, {
key: "render",
value: function render() {
var _this$state = this.state,
managerGroupData = _this$state.managerGroupData,
managerData = _this$state.managerData,
loading = _this$state.loading;
var value = this.props.value;
return /*#__PURE__*/_react.default.createElement(_antd.Spin, {
spinning: loading,
className: "app-manager-select"
}, /*#__PURE__*/_react.default.createElement(_antd.Row, null, /*#__PURE__*/_react.default.createElement(_antd.Col, {
span: 12,
className: "p-r"
}, /*#__PURE__*/_react.default.createElement(_antd.TreeSelect, {
showSearch: true,
value: value ? value[0] : '',
dropdownStyle: {
maxHeight: 400,
overflow: 'auto'
},
treeData: managerGroupData,
placeholder: "\u9009\u62E9\u7528\u6237\u7EC4",
onChange: this.handleChangeGroup,
treeNodeFilterProp: "title",
notFoundContent: "\u672A\u627E\u5230\u6570\u636E",
allowClear: true
})), /*#__PURE__*/_react.default.createElement(_antd.Col, {
span: 12
}, /*#__PURE__*/_react.default.createElement(_antd.Select, {
showSearch: true,
optionFilterProp: "children",
value: value ? value[1] : '',
onChange: this.handleChangeManager,
placeholder: "\u9009\u62E9\u7528\u6237",
notFoundContent: "\u672A\u627E\u5230\u7528\u6237",
allowClear: true
}, /*#__PURE__*/_react.default.createElement(Option, {
value: ""
}, "\u9009\u62E9\u7528\u6237"), managerData.map(function (item) {
return /*#__PURE__*/_react.default.createElement(Option, {
key: item.value,
value: item.value
}, item.label);
})))));
}
}, {
key: "handleGetGroupList",
value: function handleGetGroupList() {
var _this2 = this;
var groupId = this.props.groupId;
this.setState({
loading: true
});
(0, _api.fetch)('common-organize-list', {
data: groupId || 179
}, 'get', {
timeout: 60 * 1000
}).then(function (data) {
var managerGroupData = data.data.map(function (group) {
return {
title: group.name,
value: group.groupId,
key: group.groupId,
children: buildGroupChildData(group.child)
};
});
managerGroupData.unshift({
title: '选择用户组',
value: '',
key: 'all'
});
// 判断如果卸载,则不再设置数据
if (!_this2.open) return;
_this2.setState({
loading: false,
managerGroupData: managerGroupData
});
}).catch(function (err) {
if (!_this2.open) return;
_this2.setState({
loading: false
});
_tool.log.error(err);
_antd.message.error('获取用户组失败');
});
}
}, {
key: "handleGetManagerList",
value: function handleGetManagerList(groupId) {
var _this3 = this;
if (!groupId) {
this.setState({
loading: false,
managerData: []
});
return;
}
this.setState({
loading: true,
managerData: []
});
(0, _api.fetch)('common-manager-list', {
group_id: groupId
}, 'get', {
timeout: 60 * 1000
}).then(function (data) {
var managerData = data.data.map(function (item) {
return {
label: item.name,
value: item.managerId,
key: item.managerId
};
});
// 判断如果卸载,则不再设置数据
if (!_this3.open) return;
_this3.setState({
loading: false,
managerData: managerData
});
}).catch(function (err) {
if (!_this3.open) return;
_this3.setState({
loading: false
});
_tool.log.error(err);
_antd.message.error('获取顾问列表失败');
});
}
}, {
key: "handleChangeManager",
value: function handleChangeManager(managerId) {
var _this$props = this.props,
onChange = _this$props.onChange,
value = _this$props.value;
onChange(value.map(function (id, index) {
if (index === 1) return managerId;
return id;
}));
}
}, {
key: "handleChangeGroup",
value: function handleChangeGroup(groupId) {
var onChange = this.props.onChange;
onChange([groupId, '']);
}
}]);
return AjaxManagerSelect;
}(_react.Component);
AjaxManagerSelect.propTypes = {
groupId: _propTypes.default.string,
value: _propTypes.default.array,
onChange: _propTypes.default.func
};
var _default = exports.default = AjaxManagerSelect;