@bchr/bchr-front-lib 0.3.113 → 0.3.114
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1,559 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _treeview = _interopRequireDefault(require("@progress/kendo-treeview-react-wrapper/dist/npm/treeview"));
|
|
11
|
+
|
|
12
|
+
var _antd = require("antd");
|
|
13
|
+
|
|
14
|
+
var _kendoReactGrid = require("@progress/kendo-react-grid");
|
|
15
|
+
|
|
16
|
+
var _bchrFrontLib = require("@bchr/bchr-front-lib");
|
|
17
|
+
|
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
19
|
+
|
|
20
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
21
|
+
|
|
22
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
23
|
+
|
|
24
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
25
|
+
|
|
26
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
27
|
+
|
|
28
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
29
|
+
|
|
30
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
31
|
+
|
|
32
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
33
|
+
|
|
34
|
+
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); } }
|
|
35
|
+
|
|
36
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
37
|
+
|
|
38
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
39
|
+
|
|
40
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
41
|
+
|
|
42
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
43
|
+
|
|
44
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
45
|
+
|
|
46
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
47
|
+
|
|
48
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
|
|
49
|
+
|
|
50
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
51
|
+
|
|
52
|
+
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; }
|
|
53
|
+
|
|
54
|
+
var Search = _antd.Input.Search;
|
|
55
|
+
|
|
56
|
+
var LeftOrgTreeRightPersonGridForSelectPsnModal = /*#__PURE__*/function (_React$Component) {
|
|
57
|
+
_inherits(LeftOrgTreeRightPersonGridForSelectPsnModal, _React$Component);
|
|
58
|
+
|
|
59
|
+
var _super = _createSuper(LeftOrgTreeRightPersonGridForSelectPsnModal);
|
|
60
|
+
|
|
61
|
+
function LeftOrgTreeRightPersonGridForSelectPsnModal(_props) {
|
|
62
|
+
var _this2;
|
|
63
|
+
|
|
64
|
+
_classCallCheck(this, LeftOrgTreeRightPersonGridForSelectPsnModal);
|
|
65
|
+
|
|
66
|
+
_this2 = _super.call(this, _props);
|
|
67
|
+
|
|
68
|
+
_defineProperty(_assertThisInitialized(_this2), "buildQueryOrgTreeNodeURL", function (e) {
|
|
69
|
+
var parent_org_node_pk = 0;
|
|
70
|
+
|
|
71
|
+
if (_this2.orgTreeRef.current && _this2.orgTreeRef.current.widgetInstance) {
|
|
72
|
+
parent_org_node_pk = e.pk;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return _this2.http().getRequestPath("queryOrgDataByCurrentUserAuthOfLazyLoad?&parent_org_pk=".concat(parent_org_node_pk, "&org_expanded_level=").concat(_this2.props.org_expanded_level, "&is_implicit_auth=").concat(_this2.props.is_implicit_auth));
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
_defineProperty(_assertThisInitialized(_this2), "treeNodeTemplate", function (props) {
|
|
79
|
+
if (props.item.org_type == 1) {
|
|
80
|
+
return "<div class=\"tree-node-box\" key={props.item.pk}>\n <span class=\"iconfont icon-bchr-corporate-repor\"></span><span>".concat(props.item.name, "</span>\n </div>");
|
|
81
|
+
} else if (props.item.org_type == 2) {
|
|
82
|
+
return "<div class=\"tree-node-box\" key={props.item.pk}>\n <span class=\"iconfont icon-bchr-virtual-dept\"></span><span>".concat(props.item.name, "</span>\n </div>");
|
|
83
|
+
} else if (props.item.org_type == 3) {
|
|
84
|
+
return "<div class=\"tree-node-box\" key={props.item.pk}>\n <span class=\"iconfont icon-bchr-post-manage\"></span><span>".concat(props.item.name, "</span>\n </div>");
|
|
85
|
+
} else {
|
|
86
|
+
return "<div class=\"tree-node-box\" key={props.item.pk}>\n <span class=\"iconfont icon-bchr-person1\"></span><span>".concat(props.item.name, "</span>\n </div>");
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
_defineProperty(_assertThisInitialized(_this2), "onPersonSearch", function (e) {
|
|
91
|
+
var that = _assertThisInitialized(_this2);
|
|
92
|
+
|
|
93
|
+
Promise.all([function () {
|
|
94
|
+
var currentState = that.state;
|
|
95
|
+
var personNameKeyWords = currentState.personNameKeyWords;
|
|
96
|
+
|
|
97
|
+
if (!e && e.trim() == personNameKeyWords) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
that.setState(_objectSpread(_objectSpread({}, currentState), {}, {
|
|
102
|
+
personNameKeyWords: e ? e.trim() : null
|
|
103
|
+
}));
|
|
104
|
+
}()]).then(_this2.queryPsnList);
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
_defineProperty(_assertThisInitialized(_this2), "onSelect", function (event) {
|
|
108
|
+
debugger;
|
|
109
|
+
|
|
110
|
+
var that = _assertThisInitialized(_this2);
|
|
111
|
+
|
|
112
|
+
if (!event) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
Promise.all([function () {
|
|
117
|
+
var selectedOrgNode;
|
|
118
|
+
|
|
119
|
+
if (event.node) {
|
|
120
|
+
selectedOrgNode = that.orgTreeRef.current.widgetInstance.dataItem(event.node);
|
|
121
|
+
} else {
|
|
122
|
+
selectedOrgNode = event;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
var currentState = that.state;
|
|
126
|
+
var gridOperator = {
|
|
127
|
+
skip: 0,
|
|
128
|
+
take: currentState.gridOperator.take
|
|
129
|
+
};
|
|
130
|
+
that.setState(_objectSpread(_objectSpread({}, currentState), {}, {
|
|
131
|
+
selectedOrg: selectedOrgNode,
|
|
132
|
+
gridOperator: gridOperator,
|
|
133
|
+
selectedPsnList: [],
|
|
134
|
+
isAllPsnSelected: false
|
|
135
|
+
}));
|
|
136
|
+
}()]).then(_this2.queryPsnList);
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
_defineProperty(_assertThisInitialized(_this2), "onGridHeaderSelectionChange", function () {
|
|
140
|
+
var currentState = _this2.state;
|
|
141
|
+
var pagerData = currentState.pagerData;
|
|
142
|
+
var isAllPsnSelected = !currentState.isAllPsnSelected;
|
|
143
|
+
|
|
144
|
+
if (pagerData.data && pagerData.data.length > 0) {
|
|
145
|
+
pagerData.data.forEach(function (dataItem) {
|
|
146
|
+
dataItem.selected = isAllPsnSelected;
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
_this2.setState(_objectSpread(_objectSpread({}, currentState), {}, {
|
|
151
|
+
pagerData: pagerData,
|
|
152
|
+
isAllPsnSelected: isAllPsnSelected,
|
|
153
|
+
selectedPsnList: []
|
|
154
|
+
}));
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
_defineProperty(_assertThisInitialized(_this2), "onGridRowSelectionChange", function (e) {
|
|
158
|
+
var selectedRowData = e.dataItem;
|
|
159
|
+
selectedRowData.selected = !selectedRowData.selected;
|
|
160
|
+
var currentState = _this2.state;
|
|
161
|
+
var selectedPsnList = [];
|
|
162
|
+
var psnList = currentState.pagerData.data;
|
|
163
|
+
var isAllPsnSelected = true;
|
|
164
|
+
|
|
165
|
+
if (psnList && psnList.length > 0) {
|
|
166
|
+
psnList.forEach(function (dataItem) {
|
|
167
|
+
if (dataItem.selected) {
|
|
168
|
+
selectedPsnList.push(dataItem);
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
if (selectedPsnList.length != currentState.pagerData.total) {
|
|
174
|
+
isAllPsnSelected = false;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
_this2.setState(_objectSpread(_objectSpread({}, currentState), {}, {
|
|
178
|
+
selectedPsnList: selectedPsnList,
|
|
179
|
+
isAllPsnSelected: isAllPsnSelected
|
|
180
|
+
}));
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
_this2.orgTreeRef = /*#__PURE__*/_react["default"].createRef();
|
|
184
|
+
|
|
185
|
+
var _this = _assertThisInitialized(_this2);
|
|
186
|
+
|
|
187
|
+
_this2.state = {
|
|
188
|
+
selectedOrg: null,
|
|
189
|
+
gridOperator: {
|
|
190
|
+
skip: 0,
|
|
191
|
+
take: 20
|
|
192
|
+
},
|
|
193
|
+
pagerData: {
|
|
194
|
+
data: [],
|
|
195
|
+
total: 0
|
|
196
|
+
},
|
|
197
|
+
personNameKeyWords: null,
|
|
198
|
+
isAllPsnSelected: false,
|
|
199
|
+
selectedPsnList: [],
|
|
200
|
+
isInitSelectedRootOrg: false
|
|
201
|
+
};
|
|
202
|
+
_this2.dataSource = {
|
|
203
|
+
transport: {
|
|
204
|
+
read: {
|
|
205
|
+
url: _this2.buildQueryOrgTreeNodeURL,
|
|
206
|
+
dataType: "json",
|
|
207
|
+
Type: "POST"
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
schema: {
|
|
211
|
+
model: {
|
|
212
|
+
id: "pk",
|
|
213
|
+
hasChildren: "b_has_child"
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
requestEnd: function requestEnd(e) {
|
|
217
|
+
debugger;
|
|
218
|
+
var currentState = _this.state;
|
|
219
|
+
|
|
220
|
+
if (currentState.isInitSelectedRootOrg) {
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
if (!e.response || e.response.length == 0) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
if (_this.props.isDefaultSelectedFirstOrg) {
|
|
229
|
+
var expand_pk_path = e.response[0].pk_path.split("/");
|
|
230
|
+
expand_pk_path = expand_pk_path.slice(1, expand_pk_path.length - 1);
|
|
231
|
+
expand_pk_path.unshift(0);
|
|
232
|
+
var last_node_pk = expand_pk_path[expand_pk_path.length - 1];
|
|
233
|
+
var treeView = _this.orgTreeRef.current.widgetInstance;
|
|
234
|
+
treeView.expandPath(expand_pk_path, function () {
|
|
235
|
+
var nodeDataItem = treeView.dataSource.get(last_node_pk);
|
|
236
|
+
|
|
237
|
+
if (nodeDataItem && nodeDataItem.uid) {
|
|
238
|
+
var treeNodeEle = treeView.findByUid(nodeDataItem.uid);
|
|
239
|
+
|
|
240
|
+
if (treeNodeEle && treeNodeEle.length > 0) {
|
|
241
|
+
treeView.element.find(".searched").removeClass("searched");
|
|
242
|
+
treeNodeEle.find(".k-in:first").addClass("searched");
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
_this.scrollTreeView(treeView, nodeDataItem);
|
|
246
|
+
|
|
247
|
+
treeView.select(treeNodeEle);
|
|
248
|
+
|
|
249
|
+
_this.onSelect(nodeDataItem);
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
_this.setState(_objectSpread(_objectSpread({}, currentState), {}, {
|
|
255
|
+
isInitSelectedRootOrg: true
|
|
256
|
+
}));
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
_this2.queryPsnList = _this2.queryPsnList.bind(_assertThisInitialized(_this2));
|
|
260
|
+
_this2.onOk = _this2.onOk.bind(_assertThisInitialized(_this2));
|
|
261
|
+
return _this2;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
_createClass(LeftOrgTreeRightPersonGridForSelectPsnModal, [{
|
|
265
|
+
key: "componentDidMount",
|
|
266
|
+
value: function componentDidMount() {}
|
|
267
|
+
}, {
|
|
268
|
+
key: "getFunctionLetBasePath",
|
|
269
|
+
value: function getFunctionLetBasePath() {
|
|
270
|
+
if (!this.props.functionLetBasePath) {
|
|
271
|
+
throw new Error("请为组件注入属性【functionLetBasePath】");
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
return this.props.functionLetBasePath;
|
|
275
|
+
}
|
|
276
|
+
}, {
|
|
277
|
+
key: "scrollTreeView",
|
|
278
|
+
value: function scrollTreeView(treeView, nodeDataItem) {
|
|
279
|
+
var treeNodeEle = treeView.findByUid(nodeDataItem.uid);
|
|
280
|
+
var treeViewHeight = treeView.element.parent().height();
|
|
281
|
+
var treeViewTop = treeView.element.offset().top;
|
|
282
|
+
var treeNodeTop = treeNodeEle.offset().top;
|
|
283
|
+
var scrollTop = treeView.element.parent().scrollTop();
|
|
284
|
+
scrollTop = treeNodeTop - treeViewTop - treeViewHeight / 2;
|
|
285
|
+
treeView.element.parent().scrollTop(scrollTop);
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Lazy Loading URL
|
|
289
|
+
* @param e
|
|
290
|
+
* @returns {*}
|
|
291
|
+
*/
|
|
292
|
+
|
|
293
|
+
}, {
|
|
294
|
+
key: "http",
|
|
295
|
+
value: function http() {
|
|
296
|
+
return new _bchrFrontLib.HttpService(this.props.appConfig.back_service_rpc_prefix + this.getFunctionLetBasePath(), this.props.appConfig);
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* 组织 Node Render
|
|
300
|
+
* @param props
|
|
301
|
+
* @returns {string}
|
|
302
|
+
*/
|
|
303
|
+
|
|
304
|
+
}, {
|
|
305
|
+
key: "queryPsnList",
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* 查询人员数据
|
|
309
|
+
* @returns {Promise<void>}
|
|
310
|
+
*/
|
|
311
|
+
value: function () {
|
|
312
|
+
var _queryPsnList = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
313
|
+
var that, currentState, selectedOrg, personNameKeyWords, gridOperator, isAllPsnSelected, selectedPsnList, newPagerData, queryOrgPkParems, queryPsnParams, i, selectedPsnItem, j, dataItem;
|
|
314
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
315
|
+
while (1) {
|
|
316
|
+
switch (_context.prev = _context.next) {
|
|
317
|
+
case 0:
|
|
318
|
+
_context.prev = 0;
|
|
319
|
+
that = this;
|
|
320
|
+
currentState = that.state;
|
|
321
|
+
selectedOrg = currentState.selectedOrg;
|
|
322
|
+
personNameKeyWords = currentState.personNameKeyWords;
|
|
323
|
+
gridOperator = currentState.gridOperator;
|
|
324
|
+
isAllPsnSelected = currentState.isAllPsnSelected;
|
|
325
|
+
selectedPsnList = currentState.selectedPsnList;
|
|
326
|
+
newPagerData = {
|
|
327
|
+
data: [],
|
|
328
|
+
total: 0
|
|
329
|
+
};
|
|
330
|
+
|
|
331
|
+
if (!(selectedOrg && selectedOrg.pk)) {
|
|
332
|
+
_context.next = 15;
|
|
333
|
+
break;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
queryOrgPkParems = {
|
|
337
|
+
parent_org_pk: selectedOrg.pk,
|
|
338
|
+
is_implicit_auth: that.props.is_implicit_auth
|
|
339
|
+
};
|
|
340
|
+
queryPsnParams = {
|
|
341
|
+
parent_org_pk: selectedOrg.pk,
|
|
342
|
+
is_implicit_auth: that.props.is_implicit_auth,
|
|
343
|
+
person_name_key_words: personNameKeyWords,
|
|
344
|
+
page_index: gridOperator.skip / gridOperator.take + 1,
|
|
345
|
+
page_size: gridOperator.take
|
|
346
|
+
};
|
|
347
|
+
_context.next = 14;
|
|
348
|
+
return that.http().post("queryPersonListByOrgPksAndPersonName", queryPsnParams);
|
|
349
|
+
|
|
350
|
+
case 14:
|
|
351
|
+
newPagerData = _context.sent;
|
|
352
|
+
|
|
353
|
+
case 15:
|
|
354
|
+
if (newPagerData && newPagerData.data && newPagerData.data.length > 0) {
|
|
355
|
+
if (isAllPsnSelected) {
|
|
356
|
+
newPagerData.data.forEach(function (dataItem) {
|
|
357
|
+
dataItem.selected = isAllPsnSelected;
|
|
358
|
+
});
|
|
359
|
+
} else {
|
|
360
|
+
if (selectedPsnList && selectedPsnList.length > 0) {
|
|
361
|
+
for (i in selectedPsnList) {
|
|
362
|
+
selectedPsnItem = selectedPsnList[i];
|
|
363
|
+
|
|
364
|
+
for (j in newPagerData.data) {
|
|
365
|
+
dataItem = newPagerData.data[j];
|
|
366
|
+
|
|
367
|
+
if (dataItem.pk == selectedPsnItem.pk) {
|
|
368
|
+
dataItem.selected = true;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
this.setState(_objectSpread(_objectSpread({}, currentState), {}, {
|
|
377
|
+
pagerData: _objectSpread({}, newPagerData)
|
|
378
|
+
}));
|
|
379
|
+
_context.next = 22;
|
|
380
|
+
break;
|
|
381
|
+
|
|
382
|
+
case 19:
|
|
383
|
+
_context.prev = 19;
|
|
384
|
+
_context.t0 = _context["catch"](0);
|
|
385
|
+
this.dealAjaxException(_context.t0);
|
|
386
|
+
|
|
387
|
+
case 22:
|
|
388
|
+
case "end":
|
|
389
|
+
return _context.stop();
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}, _callee, this, [[0, 19]]);
|
|
393
|
+
}));
|
|
394
|
+
|
|
395
|
+
function queryPsnList() {
|
|
396
|
+
return _queryPsnList.apply(this, arguments);
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
return queryPsnList;
|
|
400
|
+
}()
|
|
401
|
+
/**
|
|
402
|
+
* 页码&页大小发生变化
|
|
403
|
+
* @param e
|
|
404
|
+
*/
|
|
405
|
+
|
|
406
|
+
}, {
|
|
407
|
+
key: "onDataStateChange",
|
|
408
|
+
value: function onDataStateChange(e) {
|
|
409
|
+
var that = this;
|
|
410
|
+
Promise.all([function () {
|
|
411
|
+
var currentState = that.state;
|
|
412
|
+
that.setState(_objectSpread(_objectSpread({}, currentState), {}, {
|
|
413
|
+
gridOperator: {
|
|
414
|
+
skip: e.data.skip,
|
|
415
|
+
take: e.data.take
|
|
416
|
+
}
|
|
417
|
+
}));
|
|
418
|
+
}()]).then(this.queryPsnList);
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Header Select
|
|
422
|
+
*/
|
|
423
|
+
|
|
424
|
+
}, {
|
|
425
|
+
key: "onOk",
|
|
426
|
+
value: function onOk() {
|
|
427
|
+
var selectedPsnList = this.state.selectedPsnList;
|
|
428
|
+
|
|
429
|
+
if (!selectedPsnList || selectedPsnList.length == 0) {
|
|
430
|
+
_bchrFrontLib.SmartMessage.info("请选择人员");
|
|
431
|
+
|
|
432
|
+
return;
|
|
433
|
+
} else {
|
|
434
|
+
this.props.onOk(selectedPsnList);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}, {
|
|
438
|
+
key: "render",
|
|
439
|
+
value: function render() {
|
|
440
|
+
var _this3 = this,
|
|
441
|
+
_React$createElement;
|
|
442
|
+
|
|
443
|
+
var treeViewMessages = {
|
|
444
|
+
retry: "重新加载",
|
|
445
|
+
requestFailed: "加载失败.",
|
|
446
|
+
loading: "正在加载中..."
|
|
447
|
+
};
|
|
448
|
+
return /*#__PURE__*/_react["default"].createElement(_antd.Modal, {
|
|
449
|
+
className: "left-org-tree-right-person-grid-modal ".concat(this.props.className ? this.props.className : ''),
|
|
450
|
+
title: "\u4EBA\u5458\u53C2\u7167",
|
|
451
|
+
visible: true,
|
|
452
|
+
centered: true,
|
|
453
|
+
width: '1000px',
|
|
454
|
+
onCancel: this.props.onCancel,
|
|
455
|
+
onOk: this.onOk
|
|
456
|
+
}, /*#__PURE__*/_react["default"].createElement(Search, {
|
|
457
|
+
className: "person-search-box",
|
|
458
|
+
placeholder: "\u4EBA\u5458\u641C\u7D22",
|
|
459
|
+
onSearch: this.onPersonSearch
|
|
460
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
461
|
+
className: "left-org-tree-right-person-grid-container"
|
|
462
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
463
|
+
className: "left-org-tree-box"
|
|
464
|
+
}, /*#__PURE__*/_react["default"].createElement(_treeview["default"], {
|
|
465
|
+
dataSource: this.dataSource,
|
|
466
|
+
messages: treeViewMessages,
|
|
467
|
+
expandIcons: false,
|
|
468
|
+
dataTextField: "name",
|
|
469
|
+
template: this.treeNodeTemplate,
|
|
470
|
+
ref: this.orgTreeRef,
|
|
471
|
+
select: this.onSelect
|
|
472
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
473
|
+
className: "right-psn-grid-box"
|
|
474
|
+
}, /*#__PURE__*/_react["default"].createElement(_kendoReactGrid.Grid, _extends({
|
|
475
|
+
data: this.state.pagerData.data,
|
|
476
|
+
total: this.state.pagerData.total
|
|
477
|
+
}, this.state.gridOperator, {
|
|
478
|
+
pageable: {
|
|
479
|
+
pageSizes: [20, 50, 100, 200],
|
|
480
|
+
type: 'numeric'
|
|
481
|
+
},
|
|
482
|
+
pageSize: 20,
|
|
483
|
+
sortable: true,
|
|
484
|
+
resizable: true,
|
|
485
|
+
selectedField: "selected",
|
|
486
|
+
onDataStateChange: this.onDataStateChange.bind(this),
|
|
487
|
+
onSelectionChange: this.onGridRowSelectionChange,
|
|
488
|
+
onHeaderSelectionChange: this.onGridHeaderSelectionChange
|
|
489
|
+
}), /*#__PURE__*/_react["default"].createElement(_kendoReactGrid.GridColumn, {
|
|
490
|
+
locked: true,
|
|
491
|
+
field: "selected",
|
|
492
|
+
title: "\u9009\u62E9",
|
|
493
|
+
width: "50px",
|
|
494
|
+
className: "text-center locked",
|
|
495
|
+
headerClassName: "text-center",
|
|
496
|
+
sortable: false,
|
|
497
|
+
headerCell: function headerCell(props) {
|
|
498
|
+
return /*#__PURE__*/_react["default"].createElement(_antd.Checkbox, {
|
|
499
|
+
checked: _this3.state.isAllPsnSelected,
|
|
500
|
+
onChange: _this3.onGridHeaderSelectionChange
|
|
501
|
+
});
|
|
502
|
+
},
|
|
503
|
+
cell: function cell(props) {
|
|
504
|
+
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
505
|
+
className: "text-center locked_column k-grid-content-sticky",
|
|
506
|
+
style: {
|
|
507
|
+
left: "0px",
|
|
508
|
+
right: "0px"
|
|
509
|
+
}
|
|
510
|
+
}, /*#__PURE__*/_react["default"].createElement(_antd.Checkbox, {
|
|
511
|
+
checked: props.dataItem.selected,
|
|
512
|
+
onChange: _this3.onGridRowSelectionChange.bind(_this3, props)
|
|
513
|
+
}));
|
|
514
|
+
}
|
|
515
|
+
}), /*#__PURE__*/_react["default"].createElement(_kendoReactGrid.GridColumn, (_React$createElement = {
|
|
516
|
+
field: "sequence_number",
|
|
517
|
+
title: "\u5E8F\u53F7",
|
|
518
|
+
width: "50px",
|
|
519
|
+
className: "text-center",
|
|
520
|
+
headerClassName: "text-center"
|
|
521
|
+
}, _defineProperty(_React$createElement, "width", "55px"), _defineProperty(_React$createElement, "sortable", false), _defineProperty(_React$createElement, "cell", _bchrFrontLib.GridRowSequenceNumberCell), _React$createElement)), /*#__PURE__*/_react["default"].createElement(_kendoReactGrid.GridColumn, {
|
|
522
|
+
field: "name",
|
|
523
|
+
title: "\u59D3\u540D",
|
|
524
|
+
className: "text-center",
|
|
525
|
+
headerClassName: "text-center",
|
|
526
|
+
width: "120px"
|
|
527
|
+
}), /*#__PURE__*/_react["default"].createElement(_kendoReactGrid.GridColumn, {
|
|
528
|
+
field: "code",
|
|
529
|
+
title: "\u4EBA\u5458\u7F16\u7801",
|
|
530
|
+
className: "text-center",
|
|
531
|
+
headerClassName: "text-center",
|
|
532
|
+
width: "120px"
|
|
533
|
+
}), /*#__PURE__*/_react["default"].createElement(_kendoReactGrid.GridColumn, {
|
|
534
|
+
field: "corp_ext_name",
|
|
535
|
+
title: "\u5355\u4F4D\u540D\u79F0",
|
|
536
|
+
className: "text-center",
|
|
537
|
+
headerClassName: "text-center",
|
|
538
|
+
width: "180px"
|
|
539
|
+
}), /*#__PURE__*/_react["default"].createElement(_kendoReactGrid.GridColumn, {
|
|
540
|
+
field: "dept_ext_name",
|
|
541
|
+
title: "\u90E8\u95E8\u540D\u79F0",
|
|
542
|
+
className: "text-center",
|
|
543
|
+
headerClassName: "text-center",
|
|
544
|
+
width: "180px"
|
|
545
|
+
}), /*#__PURE__*/_react["default"].createElement(_kendoReactGrid.GridColumn, {
|
|
546
|
+
field: "post_ext_name",
|
|
547
|
+
title: "\u5C97\u4F4D\u540D\u79F0",
|
|
548
|
+
className: "text-center",
|
|
549
|
+
headerClassName: "text-center",
|
|
550
|
+
width: "180px"
|
|
551
|
+
})))));
|
|
552
|
+
}
|
|
553
|
+
}]);
|
|
554
|
+
|
|
555
|
+
return LeftOrgTreeRightPersonGridForSelectPsnModal;
|
|
556
|
+
}(_react["default"].Component);
|
|
557
|
+
|
|
558
|
+
var _default = LeftOrgTreeRightPersonGridForSelectPsnModal;
|
|
559
|
+
exports["default"] = _default;
|
package/package.json
CHANGED
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import TreeView from "@progress/kendo-treeview-react-wrapper/dist/npm/treeview";
|
|
3
|
+
import {Checkbox, Input, Modal} from "antd";
|
|
4
|
+
import {Grid, GridColumn} from "@progress/kendo-react-grid";
|
|
5
|
+
import {GridRowSequenceNumberCell, SmartMessage, HttpService} from "@bchr/bchr-front-lib";
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
const Search = Input.Search;
|
|
10
|
+
|
|
11
|
+
class LeftOrgTreeRightPersonGridForSelectPsnModal extends React.Component {
|
|
12
|
+
constructor(props) {
|
|
13
|
+
super(props);
|
|
14
|
+
|
|
15
|
+
this.orgTreeRef = React.createRef();
|
|
16
|
+
const _this = this;
|
|
17
|
+
|
|
18
|
+
this.state = {
|
|
19
|
+
selectedOrg: null,
|
|
20
|
+
gridOperator: {
|
|
21
|
+
skip: 0,
|
|
22
|
+
take: 20,
|
|
23
|
+
},
|
|
24
|
+
pagerData: {
|
|
25
|
+
data: [],
|
|
26
|
+
total: 0
|
|
27
|
+
},
|
|
28
|
+
personNameKeyWords: null,
|
|
29
|
+
isAllPsnSelected: false,
|
|
30
|
+
selectedPsnList: [],
|
|
31
|
+
isInitSelectedRootOrg: false,
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
this.dataSource = {
|
|
35
|
+
transport: {
|
|
36
|
+
read: {
|
|
37
|
+
url: this.buildQueryOrgTreeNodeURL,
|
|
38
|
+
dataType: "json",
|
|
39
|
+
Type: "POST"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
schema: {
|
|
43
|
+
model: {
|
|
44
|
+
id: "pk",
|
|
45
|
+
hasChildren: "b_has_child"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
requestEnd: function (e) {
|
|
49
|
+
debugger
|
|
50
|
+
let currentState = _this.state;
|
|
51
|
+
|
|
52
|
+
if (currentState.isInitSelectedRootOrg) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (!e.response || e.response.length == 0) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (_this.props.isDefaultSelectedFirstOrg) {
|
|
61
|
+
let expand_pk_path = e.response[0].pk_path.split("/");
|
|
62
|
+
expand_pk_path = expand_pk_path.slice(1, expand_pk_path.length - 1);
|
|
63
|
+
|
|
64
|
+
expand_pk_path.unshift(0);
|
|
65
|
+
|
|
66
|
+
let last_node_pk = expand_pk_path[expand_pk_path.length - 1];
|
|
67
|
+
|
|
68
|
+
const treeView = _this.orgTreeRef.current.widgetInstance;
|
|
69
|
+
|
|
70
|
+
treeView.expandPath(expand_pk_path, function () {
|
|
71
|
+
let nodeDataItem = treeView.dataSource.get(last_node_pk);
|
|
72
|
+
|
|
73
|
+
if (nodeDataItem && nodeDataItem.uid) {
|
|
74
|
+
|
|
75
|
+
let treeNodeEle = treeView.findByUid(nodeDataItem.uid);
|
|
76
|
+
|
|
77
|
+
if (treeNodeEle && treeNodeEle.length > 0) {
|
|
78
|
+
treeView.element.find(".searched").removeClass("searched");
|
|
79
|
+
treeNodeEle.find(".k-in:first").addClass("searched");
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
_this.scrollTreeView(treeView, nodeDataItem);
|
|
83
|
+
|
|
84
|
+
treeView.select(treeNodeEle);
|
|
85
|
+
|
|
86
|
+
_this.onSelect(nodeDataItem);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
_this.setState({
|
|
93
|
+
...currentState,
|
|
94
|
+
isInitSelectedRootOrg:true
|
|
95
|
+
})
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
this.queryPsnList = this.queryPsnList.bind(this);
|
|
100
|
+
this.onOk = this.onOk.bind(this);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
componentDidMount() {
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
getFunctionLetBasePath() {
|
|
107
|
+
if (!this.props.functionLetBasePath) {
|
|
108
|
+
throw new Error("请为组件注入属性【functionLetBasePath】");
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return this.props.functionLetBasePath;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
scrollTreeView (treeView, nodeDataItem) {
|
|
115
|
+
let treeNodeEle = treeView.findByUid(nodeDataItem.uid);
|
|
116
|
+
let treeViewHeight = treeView.element.parent().height();
|
|
117
|
+
let treeViewTop = treeView.element.offset().top;
|
|
118
|
+
let treeNodeTop = treeNodeEle.offset().top;
|
|
119
|
+
let scrollTop = treeView.element.parent().scrollTop();
|
|
120
|
+
|
|
121
|
+
scrollTop = treeNodeTop - treeViewTop - (treeViewHeight / 2);
|
|
122
|
+
treeView.element.parent().scrollTop(scrollTop);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Lazy Loading URL
|
|
127
|
+
* @param e
|
|
128
|
+
* @returns {*}
|
|
129
|
+
*/
|
|
130
|
+
buildQueryOrgTreeNodeURL = (e) => {
|
|
131
|
+
let parent_org_node_pk = 0;
|
|
132
|
+
|
|
133
|
+
if (this.orgTreeRef.current && this.orgTreeRef.current.widgetInstance) {
|
|
134
|
+
parent_org_node_pk = e.pk;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return this.http().getRequestPath(`queryOrgDataByCurrentUserAuthOfLazyLoad?&parent_org_pk=${parent_org_node_pk}&org_expanded_level=${this.props.org_expanded_level}&is_implicit_auth=${this.props.is_implicit_auth}`);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
http() {
|
|
141
|
+
return new HttpService(this.props.appConfig.back_service_rpc_prefix + this.getFunctionLetBasePath(), this.props.appConfig);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* 组织 Node Render
|
|
146
|
+
* @param props
|
|
147
|
+
* @returns {string}
|
|
148
|
+
*/
|
|
149
|
+
treeNodeTemplate = props => {
|
|
150
|
+
if (props.item.org_type == 1) {
|
|
151
|
+
return `<div class="tree-node-box" key={props.item.pk}>
|
|
152
|
+
<span class="iconfont icon-bchr-corporate-repor"></span><span>${props.item.name}</span>
|
|
153
|
+
</div>`
|
|
154
|
+
} else if (props.item.org_type == 2) {
|
|
155
|
+
return `<div class="tree-node-box" key={props.item.pk}>
|
|
156
|
+
<span class="iconfont icon-bchr-virtual-dept"></span><span>${props.item.name}</span>
|
|
157
|
+
</div>`
|
|
158
|
+
} else if (props.item.org_type == 3) {
|
|
159
|
+
return `<div class="tree-node-box" key={props.item.pk}>
|
|
160
|
+
<span class="iconfont icon-bchr-post-manage"></span><span>${props.item.name}</span>
|
|
161
|
+
</div>`
|
|
162
|
+
} else {
|
|
163
|
+
return `<div class="tree-node-box" key={props.item.pk}>
|
|
164
|
+
<span class="iconfont icon-bchr-person1"></span><span>${props.item.name}</span>
|
|
165
|
+
</div>`
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* 人员搜索
|
|
171
|
+
*/
|
|
172
|
+
onPersonSearch = (e) => {
|
|
173
|
+
let that = this;
|
|
174
|
+
|
|
175
|
+
Promise.all([
|
|
176
|
+
(function() {
|
|
177
|
+
let currentState = that.state;
|
|
178
|
+
let personNameKeyWords = currentState.personNameKeyWords;
|
|
179
|
+
|
|
180
|
+
if (!e && e.trim() == personNameKeyWords) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
that.setState({
|
|
185
|
+
...currentState,
|
|
186
|
+
personNameKeyWords: e? e.trim() : null
|
|
187
|
+
})
|
|
188
|
+
})()
|
|
189
|
+
]).then(this.queryPsnList)
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* 选择组织 Node
|
|
194
|
+
* @param event
|
|
195
|
+
*/
|
|
196
|
+
onSelect = (event) => {
|
|
197
|
+
debugger
|
|
198
|
+
let that = this;
|
|
199
|
+
|
|
200
|
+
if (!event) {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
Promise.all([
|
|
205
|
+
(function() {
|
|
206
|
+
let selectedOrgNode;
|
|
207
|
+
|
|
208
|
+
if (event.node) {
|
|
209
|
+
selectedOrgNode = that.orgTreeRef.current.widgetInstance.dataItem(event.node);
|
|
210
|
+
} else {
|
|
211
|
+
selectedOrgNode = event;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
let currentState = that.state;
|
|
215
|
+
|
|
216
|
+
let gridOperator = {skip: 0, take: currentState.gridOperator.take};
|
|
217
|
+
|
|
218
|
+
that.setState({
|
|
219
|
+
...currentState,
|
|
220
|
+
selectedOrg: selectedOrgNode,
|
|
221
|
+
gridOperator,
|
|
222
|
+
selectedPsnList: [],
|
|
223
|
+
isAllPsnSelected: false
|
|
224
|
+
})
|
|
225
|
+
})()
|
|
226
|
+
]).then(this.queryPsnList)
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* 查询人员数据
|
|
231
|
+
* @returns {Promise<void>}
|
|
232
|
+
*/
|
|
233
|
+
async queryPsnList() {
|
|
234
|
+
try {
|
|
235
|
+
let that = this;
|
|
236
|
+
let currentState = that.state;
|
|
237
|
+
let selectedOrg = currentState.selectedOrg;
|
|
238
|
+
let personNameKeyWords = currentState.personNameKeyWords;
|
|
239
|
+
let gridOperator = currentState.gridOperator;
|
|
240
|
+
let isAllPsnSelected = currentState.isAllPsnSelected;
|
|
241
|
+
let selectedPsnList = currentState.selectedPsnList;
|
|
242
|
+
|
|
243
|
+
let newPagerData = {data: [], total: 0};
|
|
244
|
+
|
|
245
|
+
if (selectedOrg && selectedOrg.pk) {
|
|
246
|
+
let queryOrgPkParems = {
|
|
247
|
+
parent_org_pk: selectedOrg.pk,
|
|
248
|
+
is_implicit_auth: that.props.is_implicit_auth
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
let queryPsnParams = {
|
|
252
|
+
parent_org_pk: selectedOrg.pk,
|
|
253
|
+
is_implicit_auth: that.props.is_implicit_auth,
|
|
254
|
+
person_name_key_words: personNameKeyWords,
|
|
255
|
+
page_index: gridOperator.skip/gridOperator.take + 1,
|
|
256
|
+
page_size: gridOperator.take
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
newPagerData = await that.http().post("queryPersonListByOrgPksAndPersonName", queryPsnParams)
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
if (newPagerData && newPagerData.data && newPagerData.data.length > 0) {
|
|
263
|
+
if (isAllPsnSelected) {
|
|
264
|
+
newPagerData.data.forEach(dataItem => {
|
|
265
|
+
dataItem.selected = isAllPsnSelected;
|
|
266
|
+
})
|
|
267
|
+
} else {
|
|
268
|
+
if (selectedPsnList && selectedPsnList.length > 0) {
|
|
269
|
+
for (let i in selectedPsnList) {
|
|
270
|
+
let selectedPsnItem = selectedPsnList[i];
|
|
271
|
+
|
|
272
|
+
for (let j in newPagerData.data) {
|
|
273
|
+
let dataItem = newPagerData.data[j];
|
|
274
|
+
|
|
275
|
+
if (dataItem.pk == selectedPsnItem.pk) {
|
|
276
|
+
dataItem.selected = true;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
this.setState({
|
|
285
|
+
...currentState,
|
|
286
|
+
pagerData: {...newPagerData}
|
|
287
|
+
})
|
|
288
|
+
} catch (e) {
|
|
289
|
+
this.dealAjaxException(e)
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* 页码&页大小发生变化
|
|
295
|
+
* @param e
|
|
296
|
+
*/
|
|
297
|
+
onDataStateChange(e) {
|
|
298
|
+
let that = this;
|
|
299
|
+
|
|
300
|
+
Promise.all([
|
|
301
|
+
(function() {
|
|
302
|
+
let currentState = that.state;
|
|
303
|
+
|
|
304
|
+
that.setState({
|
|
305
|
+
...currentState,
|
|
306
|
+
gridOperator: {skip: e.data.skip, take: e.data.take}
|
|
307
|
+
})
|
|
308
|
+
})()
|
|
309
|
+
]).then(this.queryPsnList)
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* Header Select
|
|
314
|
+
*/
|
|
315
|
+
onGridHeaderSelectionChange = () => {
|
|
316
|
+
let currentState = this.state;
|
|
317
|
+
let pagerData = currentState.pagerData;
|
|
318
|
+
let isAllPsnSelected = !currentState.isAllPsnSelected;
|
|
319
|
+
|
|
320
|
+
if (pagerData.data && pagerData.data.length > 0) {
|
|
321
|
+
pagerData.data.forEach(dataItem => {
|
|
322
|
+
dataItem.selected = isAllPsnSelected;
|
|
323
|
+
})
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
this.setState({
|
|
327
|
+
...currentState,
|
|
328
|
+
pagerData,
|
|
329
|
+
isAllPsnSelected,
|
|
330
|
+
selectedPsnList: []
|
|
331
|
+
})
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
/**
|
|
335
|
+
* Row Select
|
|
336
|
+
*/
|
|
337
|
+
onGridRowSelectionChange = (e) => {
|
|
338
|
+
let selectedRowData = e.dataItem;
|
|
339
|
+
|
|
340
|
+
selectedRowData.selected = !selectedRowData.selected;
|
|
341
|
+
|
|
342
|
+
let currentState = this.state;
|
|
343
|
+
let selectedPsnList = [];
|
|
344
|
+
let psnList = currentState.pagerData.data;
|
|
345
|
+
let isAllPsnSelected = true;
|
|
346
|
+
|
|
347
|
+
if (psnList && psnList.length > 0) {
|
|
348
|
+
psnList.forEach(dataItem => {
|
|
349
|
+
if (dataItem.selected) {
|
|
350
|
+
selectedPsnList.push(dataItem);
|
|
351
|
+
}
|
|
352
|
+
})
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
if (selectedPsnList.length != currentState.pagerData.total) {
|
|
356
|
+
isAllPsnSelected = false;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
this.setState({
|
|
360
|
+
...currentState,
|
|
361
|
+
selectedPsnList,
|
|
362
|
+
isAllPsnSelected
|
|
363
|
+
})
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
onOk() {
|
|
367
|
+
let {selectedPsnList} = this.state;
|
|
368
|
+
|
|
369
|
+
if (!selectedPsnList || selectedPsnList.length == 0) {
|
|
370
|
+
SmartMessage.info("请选择人员");
|
|
371
|
+
|
|
372
|
+
return;
|
|
373
|
+
} else {
|
|
374
|
+
this.props.onOk(selectedPsnList)
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
render() {
|
|
379
|
+
const treeViewMessages = {
|
|
380
|
+
retry: "重新加载",
|
|
381
|
+
requestFailed: "加载失败.",
|
|
382
|
+
loading: "正在加载中..."
|
|
383
|
+
};
|
|
384
|
+
|
|
385
|
+
return (
|
|
386
|
+
<Modal className={`left-org-tree-right-person-grid-modal ${this.props.className? this.props.className : ''}`}
|
|
387
|
+
title="人员参照"
|
|
388
|
+
visible={true}
|
|
389
|
+
centered
|
|
390
|
+
width={'1000px'}
|
|
391
|
+
onCancel={this.props.onCancel}
|
|
392
|
+
onOk={this.onOk}
|
|
393
|
+
>
|
|
394
|
+
|
|
395
|
+
<Search
|
|
396
|
+
className={"person-search-box"}
|
|
397
|
+
placeholder="人员搜索"
|
|
398
|
+
onSearch={this.onPersonSearch}
|
|
399
|
+
/>
|
|
400
|
+
|
|
401
|
+
<div className={"left-org-tree-right-person-grid-container"}>
|
|
402
|
+
<div className={"left-org-tree-box"}>
|
|
403
|
+
<TreeView dataSource={this.dataSource}
|
|
404
|
+
messages={treeViewMessages}
|
|
405
|
+
expandIcons={false}
|
|
406
|
+
dataTextField={"name"}
|
|
407
|
+
template={this.treeNodeTemplate}
|
|
408
|
+
ref={this.orgTreeRef}
|
|
409
|
+
select={this.onSelect}
|
|
410
|
+
/>
|
|
411
|
+
</div>
|
|
412
|
+
|
|
413
|
+
<div className={"right-psn-grid-box"}>
|
|
414
|
+
<Grid
|
|
415
|
+
data={this.state.pagerData.data}
|
|
416
|
+
total={this.state.pagerData.total}
|
|
417
|
+
{...this.state.gridOperator}
|
|
418
|
+
pageable={{ pageSizes: [20, 50, 100, 200], type : 'numeric' }}
|
|
419
|
+
pageSize={20}
|
|
420
|
+
sortable={true}
|
|
421
|
+
resizable={true}
|
|
422
|
+
selectedField="selected"
|
|
423
|
+
onDataStateChange={this.onDataStateChange.bind(this)}
|
|
424
|
+
onSelectionChange={this.onGridRowSelectionChange}
|
|
425
|
+
onHeaderSelectionChange={this.onGridHeaderSelectionChange}
|
|
426
|
+
>
|
|
427
|
+
<GridColumn locked field="selected" title="选择" width="50px" className={"text-center locked"}
|
|
428
|
+
headerClassName={"text-center"} sortable={false} headerCell={props => {
|
|
429
|
+
return <Checkbox checked={this.state.isAllPsnSelected} onChange={this.onGridHeaderSelectionChange}></Checkbox>
|
|
430
|
+
}}
|
|
431
|
+
cell={props => {
|
|
432
|
+
return <td className={"text-center locked_column k-grid-content-sticky"} style={{left: "0px", right: "0px"}}>
|
|
433
|
+
<Checkbox checked={props.dataItem.selected} onChange={this.onGridRowSelectionChange.bind(this, props)}></Checkbox>
|
|
434
|
+
</td>
|
|
435
|
+
}}
|
|
436
|
+
/>
|
|
437
|
+
<GridColumn field="sequence_number" title="序号" width="50px" className={"text-center"} headerClassName={"text-center"} width="55px" sortable={false} cell={GridRowSequenceNumberCell}/>
|
|
438
|
+
<GridColumn field="name" title="姓名" className={"text-center"} headerClassName={"text-center"} width="120px" />
|
|
439
|
+
<GridColumn field="code" title="人员编码" className={"text-center"} headerClassName={"text-center"} width="120px" />
|
|
440
|
+
<GridColumn field="corp_ext_name" title="单位名称" className={"text-center"} headerClassName={"text-center"} width="180px" />
|
|
441
|
+
<GridColumn field="dept_ext_name" title="部门名称" className={"text-center"} headerClassName={"text-center"} width="180px" />
|
|
442
|
+
<GridColumn field="post_ext_name" title="岗位名称" className={"text-center"} headerClassName={"text-center"} width="180px" />
|
|
443
|
+
</Grid>
|
|
444
|
+
</div>
|
|
445
|
+
</div>
|
|
446
|
+
</Modal>
|
|
447
|
+
)
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
export default LeftOrgTreeRightPersonGridForSelectPsnModal;
|