(self["webpackChunk"] = self["webpackChunk"] || []).push([[19519],{ /***/ 91661: /*!**************************************************************************!*\ !*** ./src/pages/User/Detail/ClassManagement/Item/index.tsx + 3 modules ***! \**************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { "default": function() { return /* binding */ Item; } }); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/toConsumableArray.js var toConsumableArray = __webpack_require__(37205); var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/regeneratorRuntime.js var regeneratorRuntime = __webpack_require__(7557); var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/asyncToGenerator.js var asyncToGenerator = __webpack_require__(41498); var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/slicedToArray.js var slicedToArray = __webpack_require__(79800); var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectWithoutProperties.js var objectWithoutProperties = __webpack_require__(39647); var objectWithoutProperties_default = /*#__PURE__*/__webpack_require__.n(objectWithoutProperties); // EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js var _react_17_0_2_react = __webpack_require__(59301); // EXTERNAL MODULE: ./src/.umi-production/exports.ts var _umi_production_exports = __webpack_require__(80608); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/form/index.js + 19 modules var es_form = __webpack_require__(78241); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/modal/index.js + 16 modules var modal = __webpack_require__(43418); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/message/index.js + 4 modules var message = __webpack_require__(8591); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/row/index.js var row = __webpack_require__(95237); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/table/index.js + 85 modules var table = __webpack_require__(51945); // EXTERNAL MODULE: ./src/utils/fetch.ts var fetch = __webpack_require__(49105); ;// CONCATENATED MODULE: ./src/pages/User/Detail/ClassManagement/Item/index.less?modules // extracted by mini-css-extract-plugin /* harmony default export */ var Itemmodules = ({"flex_box_center":"flex_box_center___ZkFd2","flex_space_between":"flex_space_between___upR0W","flex_box_vertical_center":"flex_box_vertical_center___J5NvG","flex_box_center_end":"flex_box_center_end___TeZb8","flex_box_column":"flex_box_column___pRW4x","wrap":"wrap___N68Ys","searchBar":"searchBar___ClXJf","active":"active___AcYxO","searchBarBorder":"searchBarBorder___byGJE","firstLi":"firstLi___eGjoG","otherLi":"otherLi___FXHVW","advertisementModal":"advertisementModal___w7eNA","closex":"closex___am6Bd","form":"form___oAME5"}); // EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/LeftOutlined.js + 1 modules var LeftOutlined = __webpack_require__(40578); // EXTERNAL MODULE: ./node_modules/_dayjs@1.11.13@dayjs/dayjs.min.js var dayjs_min = __webpack_require__(61186); var dayjs_min_default = /*#__PURE__*/__webpack_require__.n(dayjs_min); // EXTERNAL MODULE: ./src/components/ui-customization/index.tsx + 30 modules var ui_customization = __webpack_require__(92073); // EXTERNAL MODULE: ./src/components/ui-customization/reset.less?modules var resetmodules = __webpack_require__(11806); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectSpread2.js var objectSpread2 = __webpack_require__(82242); var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tabs/index.js + 24 modules var tabs = __webpack_require__(99313); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tooltip/index.js + 3 modules var tooltip = __webpack_require__(6848); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/select/index.js var es_select = __webpack_require__(57809); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/index.js + 3 modules var input = __webpack_require__(92832); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js var es_button = __webpack_require__(3113); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/upload/index.js var upload = __webpack_require__(60028); // EXTERNAL MODULE: ./node_modules/_react-infinite-scroller@1.2.4@react-infinite-scroller/index.js var _react_infinite_scroller_1_2_4_react_infinite_scroller = __webpack_require__(26724); var _react_infinite_scroller_1_2_4_react_infinite_scroller_default = /*#__PURE__*/__webpack_require__.n(_react_infinite_scroller_1_2_4_react_infinite_scroller); // EXTERNAL MODULE: ./src/service/classrooms.ts var classrooms = __webpack_require__(6668); // EXTERNAL MODULE: ./src/components/ImagesIcon/index.ts + 32 modules var ImagesIcon = __webpack_require__(67782); ;// CONCATENATED MODULE: ./src/pages/User/Detail/ClassManagement/Item/AddStudent.less?modules // extracted by mini-css-extract-plugin /* harmony default export */ var AddStudentmodules = ({"addStudentContainer":"addStudentContainer___vm8uG","listItem":"listItem___GgL6_","tips":"tips___Rr5yj","qrCode":"qrCode____aeUv"}); // EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/PlusOutlined.js + 1 modules var PlusOutlined = __webpack_require__(67147); // EXTERNAL MODULE: ./src/utils/util.tsx var util = __webpack_require__(27876); // EXTERNAL MODULE: ./src/utils/env.ts + 1 modules var env = __webpack_require__(71681); // EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js var jsx_runtime = __webpack_require__(37712); ;// CONCATENATED MODULE: ./src/pages/User/Detail/ClassManagement/Item/Addstudent.tsx var TabPane = tabs/* default */.Z.TabPane; var AddTeacher = function AddTeacher(_ref) { var _actionTabs$selectArr, _actionTabs$selectArr2; var classroomList = _ref.classroomList, loading = _ref.loading, dispatch = _ref.dispatch; var params = (0,_umi_production_exports.useParams)(); var actionTabs = classroomList.actionTabs; var _useState = (0,_react_17_0_2_react.useState)([]), _useState2 = slicedToArray_default()(_useState, 2), options = _useState2[0], setOptions = _useState2[1]; var _useState3 = (0,_react_17_0_2_react.useState)(true), _useState4 = slicedToArray_default()(_useState3, 2), hasMore = _useState4[0], setHasmore = _useState4[1]; var _useState5 = (0,_react_17_0_2_react.useState)(false), _useState6 = slicedToArray_default()(_useState5, 2), isLoading = _useState6[0], setIsLoading = _useState6[1]; var _Form$useForm = es_form/* default */.Z.useForm(), _Form$useForm2 = slicedToArray_default()(_Form$useForm, 1), form = _Form$useForm2[0]; var _useState7 = (0,_react_17_0_2_react.useState)([]), _useState8 = slicedToArray_default()(_useState7, 2), tableData = _useState8[0], setTableData = _useState8[1]; var _useState9 = (0,_react_17_0_2_react.useState)(1), _useState10 = slicedToArray_default()(_useState9, 2), page = _useState10[0], setPage = _useState10[1]; var _useState11 = (0,_react_17_0_2_react.useState)([]), _useState12 = slicedToArray_default()(_useState11, 2), selectArrs = _useState12[0], setSelectArrs = _useState12[1]; var _useState13 = (0,_react_17_0_2_react.useState)(true), _useState14 = slicedToArray_default()(_useState13, 2), notSearch = _useState14[0], setNotSearch = _useState14[1]; var _useState15 = (0,_react_17_0_2_react.useState)([]), _useState16 = slicedToArray_default()(_useState15, 2), fileList = _useState16[0], setFileList = _useState16[1]; var _useState17 = (0,_react_17_0_2_react.useState)('1'), _useState18 = slicedToArray_default()(_useState17, 2), activeKey = _useState18[0], setActiveKey = _useState18[1]; var _useState19 = (0,_react_17_0_2_react.useState)(false), _useState20 = slicedToArray_default()(_useState19, 2), btnLoading = _useState20[0], setBtnLoading = _useState20[1]; var autoCompleteRef = (0,_react_17_0_2_react.useRef)(); var disabledDate = function disabledDate(current) { return current && current < dayjs_min_default()().startOf('day'); }; (0,_react_17_0_2_react.useEffect)(function () { if (classroomList.actionTabs.key === '添加学生') { setNotSearch(true); getData(); setActiveKey(classroomList.actionTabs.tab); } }, [classroomList.actionTabs.key]); var getData = /*#__PURE__*/function () { var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() { var _res$department_names; var res; return regeneratorRuntime_default()().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 2; return (0,fetch/* default */.ZP)("/api/schools/department_list.json", { method: 'get' }); case 2: res = _context.sent; // const res = await dispatch({ // type: 'classroomList/getSchoolList', // payload: {}, // }); setOptions((_res$department_names = res.department_names) === null || _res$department_names === void 0 ? void 0 : _res$department_names.map(function (item) { return { value: item }; })); case 4: case "end": return _context.stop(); } }, _callee); })); return function getData() { return _ref2.apply(this, arguments); }; }(); var onFinish = function onFinish() { var _form$getFieldValue; if (((_form$getFieldValue = form.getFieldValue()) === null || _form$getFieldValue === void 0 ? void 0 : _form$getFieldValue.keyword) === '') { setTableData([]); message/* default */.ZP.error('请输入搜索内容'); return; } setNotSearch(false); hasMore = true; setHasmore(true); setSelectArrs([]); setIsLoading(false); setTimeout(function () { handleInfiniteOnLoad(true); }, 300); }; var saveSelect = function saveSelect(id) { id = String(id); var key = selectArrs.indexOf(id); if (key < 0) { selectArrs.push(id); } else { selectArrs.splice(key, 1); } setSelectArrs(toConsumableArray_default()(selectArrs)); }; var Draggers = { onRemove: function onRemove() { setFileList([]); }, beforeUpload: function beforeUpload(file) { var filelist = []; filelist.push(file); setFileList([].concat(filelist)); return false; }, fileList: fileList, accept: '.xls,.xlsx' }; var handleInfiniteOnLoad = /*#__PURE__*/function () { var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() { var reload, _res$users, formValue, res, _args2 = arguments; return regeneratorRuntime_default()().wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: reload = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : false; if (!(hasMore && !isLoading)) { _context2.next = 11; break; } formValue = form.getFieldValue(); setIsLoading(true); setPage(reload ? 1 : page + 1); _context2.next = 7; return (0,classrooms/* searchSchoolTeacherList */.nQ)(objectSpread2_default()(objectSpread2_default()({ page: reload ? 1 : page + 1, container_id: params.coursesId, container_type: 1, school_name: formValue === null || formValue === void 0 ? void 0 : formValue.school_name, keyword: formValue === null || formValue === void 0 ? void 0 : formValue.keyword, source: 'school_manage' }, formValue), {}, { role: 4 })); case 7: res = _context2.sent; reload ? setTableData(toConsumableArray_default()(res.users)) : setTableData([].concat(toConsumableArray_default()(tableData), toConsumableArray_default()(res.users))); setIsLoading(false); if (((_res$users = res.users) === null || _res$users === void 0 ? void 0 : _res$users.length) < 10) setHasmore(false); case 11: case "end": return _context2.stop(); } }, _callee2); })); return function handleInfiniteOnLoad() { return _ref3.apply(this, arguments); }; }(); var onOK = /*#__PURE__*/function () { var _ref4 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3() { var res; return regeneratorRuntime_default()().wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: if (!(selectArrs == '')) { _context3.next = 4; break; } message/* default */.ZP.error('请选择人数'); _context3.next = 10; break; case 4: setBtnLoading(true); _context3.next = 7; return (0,fetch/* default */.ZP)("/api/student_groups/".concat(params === null || params === void 0 ? void 0 : params.couserid, "/add_user.json"), { method: 'POST', body: { user_ids: selectArrs } }); case 7: res = _context3.sent; setBtnLoading(false); if (res.status === 0) { // message.success('添加成功'); dispatch({ type: 'classroomList/setActionTabs', payload: { key: '刷新列表', types: 1, list: res === null || res === void 0 ? void 0 : res.audit_users } }); } case 10: case "end": return _context3.stop(); } }, _callee3); })); return function onOK() { return _ref4.apply(this, arguments); }; }(); var onFileOk = /*#__PURE__*/function () { var _ref5 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4() { var formData, res; return regeneratorRuntime_default()().wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: if (!((fileList === null || fileList === void 0 ? void 0 : fileList.length) <= 0)) { _context4.next = 3; break; } message/* default */.ZP.info('请上传文件'); return _context4.abrupt("return"); case 3: setBtnLoading(true); formData = new FormData(); formData.append('file', fileList[0]); _context4.next = 8; return (0,fetch/* default */.ZP)("/api/student_groups/".concat(params.couserid, "/import_user.json"), { method: 'post', body: formData }, true); case 8: res = _context4.sent; if ((res === null || res === void 0 ? void 0 : res.status) === 0) { dispatch({ type: 'classroomList/setActionTabs', payload: { key: '刷新列表', types: 2, list: res === null || res === void 0 ? void 0 : res.audit_users } }); } setBtnLoading(false); case 11: case "end": return _context4.stop(); } }, _callee4); })); return function onFileOk() { return _ref5.apply(this, arguments); }; }(); var columns = [{ title: '姓名', width: 100, ellipsis: true, dataIndex: 'username', render: function render(text, record) { return /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, { placement: "bottom", title: text, children: /*#__PURE__*/(0,jsx_runtime.jsx)(_umi_production_exports.Link, { className: "bold c-black", to: "/users/".concat(record.login), target: "_blank", children: text || '--' }) }); } }, { title: '学号/工号', width: 100, dataIndex: 'student_number', ellipsis: true, render: function render(text) { return /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, { placement: "bottom", title: text, children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", { children: text || '--' }) }); } }, { title: '班级', width: 100, dataIndex: 'student_name', ellipsis: true, render: function render(text) { return /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, { placement: "bottom", title: text, children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", { children: text || '--' }) }); } }, { title: '院系/部门', dataIndex: 'depart_name', width: 130, ellipsis: true, render: function render(text) { return /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, { placement: "bottom", title: text, children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", { children: text || '--' }) }); } }, { title: '手机', width: 100, dataIndex: 'phone', ellipsis: true, render: function render(text) { return /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, { placement: "bottom", title: text, children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", { children: text || '--' }) }); } }, { title: '邮箱', dataIndex: 'email', width: 100, ellipsis: true, render: function render(text) { return /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, { placement: "bottom", title: text, children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", { children: text || '--' }) }); } }, { title: '最后登录时间', dataIndex: 'last_login_on', width: 140, ellipsis: true, render: function render(text) { return /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, { placement: "bottom", title: text ? dayjs_min_default()(text).format('YYYY-MM-DD HH:mm') : '- -', children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", { children: text ? dayjs_min_default()(text).format('YYYY-MM-DD HH:mm') : '- -' }) }); } }]; return /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, { centered: true, title: "\u6DFB\u52A0\u5B66\u751F", open: classroomList.actionTabs.key === '添加学生' ? true : false, okText: "\u786E\u5B9A", cancelText: "\u53D6\u6D88", width: activeKey === '1' ? 1100 : 600, zIndex: 1000, afterClose: function afterClose() { setFileList([]); }, confirmLoading: btnLoading, bodyStyle: { minHeight: 200 }, onOk: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee5() { return regeneratorRuntime_default()().wrap(function _callee5$(_context5) { while (1) switch (_context5.prev = _context5.next) { case 0: if (!(activeKey === '1')) { _context5.next = 3; break; } onOK(); return _context5.abrupt("return"); case 3: onFileOk(); case 4: case "end": return _context5.stop(); } }, _callee5); })), onCancel: function onCancel() { setSelectArrs([]); dispatch({ type: 'classroomList/setActionTabs', payload: {} }); }, children: /*#__PURE__*/(0,jsx_runtime.jsxs)(tabs/* default */.Z, { activeKey: activeKey, onChange: function onChange(k) { return setActiveKey(k); }, className: AddStudentmodules.addStudentContainer, children: [/*#__PURE__*/(0,jsx_runtime.jsx)(TabPane, { tab: "\u624B\u52A8\u6DFB\u52A0", children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: AddStudentmodules.listItem, children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, { layout: "inline", form: form, initialValues: { school_name: '', keyword: '', search_type: '1' }, className: "mt10" // onFinish={onFinish} , children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, { name: "search_type", label: "\u641C\u7D22\u7C7B\u578B", children: /*#__PURE__*/(0,jsx_runtime.jsxs)(es_select["default"], { children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"].Option, { value: "1", children: "\u59D3\u540D" }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"].Option, { value: "2", children: "\u624B\u673A\u53F7" }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"].Option, { value: "3", children: "\u90AE\u7BB1" })] }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, { name: "keyword", label: "\u641C\u7D22\u5185\u5BB9", children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, { allowClear: true, style: { width: 240 }, defaultValue: ((_actionTabs$selectArr = actionTabs.selectArrs) === null || _actionTabs$selectArr === void 0 ? void 0 : _actionTabs$selectArr.category_name) || ((_actionTabs$selectArr2 = actionTabs.selectArrs) === null || _actionTabs$selectArr2 === void 0 ? void 0 : _actionTabs$selectArr2.name) }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, { name: "department_name", label: "\u9662\u7CFB\uFF1A", children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"], { style: { width: 200 }, children: options === null || options === void 0 ? void 0 : options.map(function (item) { return /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"].Option, { value: item === null || item === void 0 ? void 0 : item.value, children: item === null || item === void 0 ? void 0 : item.value }); }) }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, { children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, { htmlType: "submit", type: "primary", onClick: function onClick() { return onFinish(); }, children: "\u641C\u7D22" }) })] }), notSearch && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: "tc font16 c-light-black mt40 pb30", children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", { src: ImagesIcon/* search1Icon */.L6, width: "250", alt: "" }), /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), /*#__PURE__*/(0,jsx_runtime.jsx)("p", { className: "mt20", children: "\u8BF7\u641C\u7D22\u8981\u6DFB\u52A0\u7684\u4EBA\u5458" })] }), !notSearch && tableData == '' && !isLoading && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: "tc font16 c-light-black mt40 pb30", children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", { src: ImagesIcon/* noDataIcon */.z3, width: "100", alt: "" }), /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), /*#__PURE__*/(0,jsx_runtime.jsx)("p", { className: "mt20", children: "\u6682\u65F6\u8FD8\u6CA1\u6709\u76F8\u5173\u6570\u636E\u54E6!" })] }), (!notSearch && tableData != '' || isLoading) && /*#__PURE__*/(0,jsx_runtime.jsxs)("section", { children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", { className: "flexd-table-header mt20" }), /*#__PURE__*/(0,jsx_runtime.jsx)("div", { style: { maxHeight: 260, overflow: 'auto' }, children: /*#__PURE__*/(0,jsx_runtime.jsx)((_react_infinite_scroller_1_2_4_react_infinite_scroller_default()), { initialLoad: false, pageStart: 1, threshold: 20, loadMore: function loadMore(page) { handleInfiniteOnLoad(); }, hasMore: hasMore, useWindow: false, children: /*#__PURE__*/(0,jsx_runtime.jsx)(table/* default */.Z, { loading: isLoading, rowKey: function rowKey(e) { return e.numid; }, rowSelection: { type: 'checkbox', onChange: function onChange(e) { setSelectArrs(e); } }, pagination: false, dataSource: tableData, columns: columns // onRow={record => { // return { // onClick: event => { // if ( // !event.currentTarget.querySelector('input') // .disabled // ) // saveSelect( // event.currentTarget.querySelector('input') // .value, // ); // }, // }; // }} }) }) })] })] }) }, "1"), /*#__PURE__*/(0,jsx_runtime.jsx)(TabPane, { tab: "\u6279\u91CF\u5BFC\u5165", children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", { className: AddStudentmodules.listItem, children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: "mt20", style: { marginLeft: 86 }, children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: "mb20", children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: "mr40", children: "\u6B65\u9AA41\uFF1A" }), "\u4E0B\u8F7D", /*#__PURE__*/(0,jsx_runtime.jsx)("a", { className: "ml5 mr5", onClick: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee6() { return regeneratorRuntime_default()().wrap(function _callee6$(_context6) { while (1) switch (_context6.prev = _context6.next) { case 0: (0,util/* downLoadFile */.FH)('', (0,util/* setUrlQuery */.NY)({ url: env/* default */.Z.API_SERVER + "/api/student_groups/down_template", query: {} })); case 1: case "end": return _context6.stop(); } }, _callee6); })), children: "\u5BFC\u5165\u5B66\u751F\u6A21\u7248" }), "\u6279\u91CF\u5BFC\u5165\u6210\u5458\u3002"] }), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: "mr40", children: "\u6B65\u9AA42\uFF1A" }), "\u4E0A\u4F20\u586B\u5199\u597D\u7684\u300A\u5BFC\u5165\u5B66\u751F\u6A21\u7248\u300B\u3002"] }), /*#__PURE__*/(0,jsx_runtime.jsx)("div", { style: { margin: '4px 0px 20px 94px' }, children: /*#__PURE__*/(0,jsx_runtime.jsx)(upload/* default */.Z, objectSpread2_default()(objectSpread2_default()({}, Draggers), {}, { children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, { type: "primary", className: "mt10", icon: /*#__PURE__*/(0,jsx_runtime.jsx)(PlusOutlined/* default */.Z, {}), children: "\u9009\u62E9\u6587\u4EF6" }) })) })] }) }) }, "2")] }) }); }; /* harmony default export */ var Addstudent = ((0,_umi_production_exports.connect)(function (_ref8) { var classroomList = _ref8.classroomList, loading = _ref8.loading; return { classroomList: classroomList, loading: loading }; })(AddTeacher)); ;// CONCATENATED MODULE: ./src/pages/User/Detail/ClassManagement/Item/index.tsx var _excluded = ["classroomList", "globalSetting", "loading", "user", "dispatch", "location"]; dayjs_min_default().locale('ZH-cn'); var ClassroomListPage = function ClassroomListPage(_ref) { var _location$query; var classroomList = _ref.classroomList, globalSetting = _ref.globalSetting, loading = _ref.loading, user = _ref.user, dispatch = _ref.dispatch, location = _ref.location, props = objectWithoutProperties_default()(_ref, _excluded); var useparams = (0,_umi_production_exports.useParams)(); var _useState = (0,_react_17_0_2_react.useState)(), _useState2 = slicedToArray_default()(_useState, 2), result = _useState2[0], setResult = _useState2[1]; var _useState3 = (0,_react_17_0_2_react.useState)(1), _useState4 = slicedToArray_default()(_useState3, 2), page = _useState4[0], setPage = _useState4[1]; var _useState5 = (0,_react_17_0_2_react.useState)(null), _useState6 = slicedToArray_default()(_useState5, 2), edit = _useState6[0], setEdit = _useState6[1]; var _useState7 = (0,_react_17_0_2_react.useState)(true), _useState8 = slicedToArray_default()(_useState7, 2), tableLoading = _useState8[0], setTableLoading = _useState8[1]; var _useState9 = (0,_react_17_0_2_react.useState)(20), _useState10 = slicedToArray_default()(_useState9, 2), limit = _useState10[0], setLimit = _useState10[1]; var _useState11 = (0,_react_17_0_2_react.useState)(false), _useState12 = slicedToArray_default()(_useState11, 2), isShowModel = _useState12[0], setIsShowModel = _useState12[1]; var _Form$useForm = es_form/* default */.Z.useForm(), _Form$useForm2 = slicedToArray_default()(_Form$useForm, 1), form = _Form$useForm2[0]; var params = (0,_umi_production_exports.useParams)(); var _useState13 = (0,_react_17_0_2_react.useState)([]), _useState14 = slicedToArray_default()(_useState13, 2), isems = _useState14[0], setitems = _useState14[1]; var _useState15 = (0,_react_17_0_2_react.useState)(''), _useState16 = slicedToArray_default()(_useState15, 2), keyword = _useState16[0], setkeyword = _useState16[1]; (0,_react_17_0_2_react.useEffect)(function () { getList(); }, [page, params, keyword]); function getList(_x) { return _getList.apply(this, arguments); } function _getList() { _getList = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4(num) { var newPage, result; return regeneratorRuntime_default()().wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: setTableLoading(true); newPage = num || page; _context4.next = 4; return (0,fetch/* default */.ZP)("/api/student_groups/".concat(params === null || params === void 0 ? void 0 : params.couserid, ".json"), { method: 'get', params: { page: newPage, limit: limit, keyword: keyword || '' } }); case 4: result = _context4.sent; setResult(result); setTableLoading(false); case 7: case "end": return _context4.stop(); } }, _callee4); })); return _getList.apply(this, arguments); } (0,_react_17_0_2_react.useEffect)(function () { if (classroomList.actionTabs.key === '刷新列表') { var _classroomList$action; getList(); if (((_classroomList$action = classroomList.actionTabs.list) === null || _classroomList$action === void 0 ? void 0 : _classroomList$action.length) > 0) { setIsShowModel(true); } } }, [classroomList.actionTabs.key]); var handleDelete = function handleDelete(id) { modal/* default */.Z.confirm({ centered: true, width: 488, okText: '确定', cancelText: '取消', title: '提示', icon: null, className: resetmodules/* default */.Z.CustomTipsModalCss, content: "\u8BF7\u786E\u8BA4\u662F\u5426\u5C06\u8BE5\u5B66\u5458\u79FB\u9664\u8BE5\u73ED\u7EA7\uFF0C\u79FB\u9664\u540E\u8BE5\u5B66\u751F\u5C06\u5206\u914D\u5728\u672A\u5206\u73ED\u4E2D\uFF0C\u5176\u4ED6\u8001\u5E08\u53EF\u62C9\u5165\u8BE5\u5B66\u5458\u8FDB\u5165\u73ED\u7EA7", onOk: function () { var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() { var res, _result$assets, newPage; return regeneratorRuntime_default()().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 2; return (0,fetch/* default */.ZP)("/api/student_groups/".concat(params.couserid, "/destroy_user.json"), { method: 'post', body: { user_id: id } }); case 2: res = _context.sent; if (res.status === 0) { message/* default */.ZP.info('移除成功'); newPage = (result === null || result === void 0 || (_result$assets = result.assets) === null || _result$assets === void 0 ? void 0 : _result$assets.length) === 1 && page > 1 ? page - 1 : page; getList(newPage); } case 4: case "end": return _context.stop(); } }, _callee); })); function onOk() { return _onOk.apply(this, arguments); } return onOk; }() }); }; var handlepassword = function handlepassword(id) { modal/* default */.Z.confirm({ centered: true, width: 488, okText: '确定', cancelText: '取消', title: '提示', icon: null, className: resetmodules/* default */.Z.CustomTipsModalCss, content: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", { children: ["\u91CD\u7F6E\u8BE5\u5B66\u751F\u5BC6\u7801\u540E\uFF0C\u5B66\u751F\u5BC6\u7801\u4E3A\u9ED8\u8BA4\u5BC6\u7801\uFF1A", /*#__PURE__*/(0,jsx_runtime.jsx)("span", { style: { color: '#000' }, children: "12345678" })] }), /*#__PURE__*/(0,jsx_runtime.jsx)("p", { children: "\u4E14\u8BE5\u5B66\u751F\u5C06\u6536\u5230\u5BC6\u7801\u91CD\u7F6E\u6D88\u606F\u901A\u77E5\uFF0C\u8BF7\u63D0\u9192\u8BE5\u5B66\u751F\u53CA\u65F6\u66F4\u6539\u5BC6\u7801" })] }), onOk: function () { var _onOk2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() { var res, _result$assets2, newPage; return regeneratorRuntime_default()().wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return (0,fetch/* default */.ZP)("/api/student_groups/".concat(params.couserid, "/reset_password.json"), { method: 'post', body: { user_id: id } }); case 2: res = _context2.sent; if (res.status === 0) { message/* default */.ZP.info('重置成功'); newPage = (result === null || result === void 0 || (_result$assets2 = result.assets) === null || _result$assets2 === void 0 ? void 0 : _result$assets2.length) === 1 && page > 1 ? page - 1 : page; getList(newPage); } case 4: case "end": return _context2.stop(); } }, _callee2); })); function onOk() { return _onOk2.apply(this, arguments); } return onOk; }() }); }; var columns = [{ title: '序号', dataIndex: 'name', align: 'left', key: 'name', ellipsis: true, width: 50, render: function render(text, record, index) { return /*#__PURE__*/(0,jsx_runtime.jsx)("span", { children: limit * (page - 1) + index + 1 }); } }, { title: '姓名', dataIndex: 'real_name', align: 'left', key: 'content', render: function render(text) { return /*#__PURE__*/(0,jsx_runtime.jsx)("span", { style: { fontWeight: 500 }, children: text }); } // width: 150, }, { title: '学号', dataIndex: 'student_id', align: 'left', key: 'clazz' // width: 150, }, { title: '院系/部门', dataIndex: 'department_name', align: 'left', key: 'created_at', render: function render(text) { return /*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: "c-grey-666", children: text }); } // width: 150, }, { title: '手机号', dataIndex: 'phone', align: 'left', key: 'created_at', render: function render(text) { return /*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: "c-grey-666", children: text }); } // width: 150, }, { title: '邮箱账号', dataIndex: 'mail', align: 'left', key: 'created_at', render: function render(text) { return /*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: "c-grey-666", children: text }); } // width: 150, }, { title: '操作', dataIndex: 'id', align: 'right', key: 'remark', width: 150, ellipsis: true, render: function render(text, record, index) { return /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, { align: "middle", justify: "space-between", children: [/*#__PURE__*/(0,jsx_runtime.jsx)("a", { style: { marginRight: '10px', color: '#165DFF' }, onClick: function onClick() { handlepassword(text); }, children: "\u91CD\u7F6E\u5BC6\u7801" }), /*#__PURE__*/(0,jsx_runtime.jsx)("a", { style: { color: '#165DFF' }, onClick: function onClick() { handleDelete(text); }, children: "\u79FB\u9664" })] }); } }]; var columns1 = [{ title: '学号', dataIndex: 'student_id', align: 'left', key: 'student_id', ellipsis: true, width: 50, render: function render(text, record, index) { return /*#__PURE__*/(0,jsx_runtime.jsx)("span", { children: text }); } }, { title: '姓名', dataIndex: 'real_name', align: 'left', key: 'content', render: function render(text) { return /*#__PURE__*/(0,jsx_runtime.jsx)("span", { style: { fontWeight: 500 }, children: text }); } // width: 150, }, { title: '班级', dataIndex: 'student_group_name', align: 'left', key: 'clazz' // width: 150, }, { title: '院系', dataIndex: 'department_name', align: 'left', key: 'created_at', render: function render(text) { return /*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: "c-grey-666", children: text }); } // width: 150, }, { title: '负责教师', dataIndex: 'teacher_names', align: 'left', key: 'created_at', render: function render(text) { return /*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: "c-grey-666", children: text }); } // width: 150, }]; return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: Itemmodules.wrap, children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, { justify: "space-between", style: { marginBottom: '36px' }, align: "middle", className: "mt8", children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("span", { children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("span", { style: { cursor: 'pointer', fontSize: '14px' }, onClick: function onClick() { _umi_production_exports.history.push("/users/".concat(params === null || params === void 0 ? void 0 : params.username, "/classmanagement")); dispatch({ type: 'classroomList/setActionTabs', payload: { key: '' } }); }, children: [/*#__PURE__*/(0,jsx_runtime.jsx)(LeftOutlined/* default */.Z, {}), " ", location && ((_location$query = location.query) === null || _location$query === void 0 ? void 0 : _location$query.department_name)] }), /*#__PURE__*/(0,jsx_runtime.jsxs)("span", { style: { color: '#5F6368', marginLeft: 20 }, children: ["\u5171", /*#__PURE__*/(0,jsx_runtime.jsx)("span", { style: { color: '#1869FF' }, children: result === null || result === void 0 ? void 0 : result.total_count }), "\u4E2A\u5B66\u751F"] })] }), /*#__PURE__*/(0,jsx_runtime.jsxs)("span", { style: { display: 'flex' }, children: [/*#__PURE__*/(0,jsx_runtime.jsx)(ui_customization/* CustomButton */.op, { onClick: function onClick() { dispatch({ type: 'classroomList/setActionTabs', payload: { key: '添加学生', tab: '2' } }); }, type: "primary", children: "\u5BFC\u5165\u5B66\u751F" }), /*#__PURE__*/(0,jsx_runtime.jsx)(ui_customization/* CustomButton */.op, { style: { margin: '0px 30px' }, onClick: function onClick() { dispatch({ type: 'classroomList/setActionTabs', payload: { key: '添加学生', tab: '1' } }); }, type: "primary", children: "\u6DFB\u52A0\u5B66\u751F" }), /*#__PURE__*/(0,jsx_runtime.jsx)(ui_customization/* CustomInput */.t7, { style: { width: 300 }, onChange: function onChange(e) { setkeyword(e); }, placeholder: "\u8BF7\u8F93\u5165\u59D3\u540D\u5B66\u53F7\u540D\u79F0\u8FDB\u884C\u641C\u7D22" })] })] }), /*#__PURE__*/(0,jsx_runtime.jsx)(ui_customization/* CustomTable */.Gi, { children: /*#__PURE__*/(0,jsx_runtime.jsx)(table/* default */.Z, { columns: columns, loading: tableLoading, dataSource: result === null || result === void 0 ? void 0 : result.user_list, pagination: { hideOnSinglePage: true, pageSize: limit, showSizeChanger: false, current: page, position: ['bottomCenter'], onChange: function onChange(page, pagesize) { setPage(page); }, total: result === null || result === void 0 ? void 0 : result.total_count } }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(Addstudent, {}), /*#__PURE__*/(0,jsx_runtime.jsxs)(modal/* default */.Z, { visible: isShowModel, wrapClassName: resetmodules/* default */.Z.CustomCss, okText: '申请审核', title: classroomList.actionTabs.types === 1 ? '添加学生' : '导入学生', cancelText: "\u53D6\u6D88", width: 880, onCancel: function onCancel() { setIsShowModel(false); }, onOk: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3() { var res; return regeneratorRuntime_default()().wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: console.log('---', isems); _context3.next = 3; return (0,fetch/* default */.ZP)("/api/group_audit_records.json", { method: 'post', body: { user_ids: isems, student_group_id: params.couserid } }); case 3: res = _context3.sent; if ((res === null || res === void 0 ? void 0 : res.status) === 0) { message/* default */.ZP.info('申请成功'); setIsShowModel(false); } case 5: case "end": return _context3.stop(); } }, _callee3); })), children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("p", { style: { color: '#5F6367' }, children: ["\u68C0\u6D4B\u5230", classroomList.actionTabs.types === 1 ? '添加' : '导入', "\u7684\u5B66\u751F\uFF0C\u5DF2\u5B58\u5728\u73ED\u7EA7\uFF0C\u907F\u514D\u8BEF\u52A0\u5BFC\u81F4\u6DFB\u52A0\u9519\u8BEF\uFF0C\u8BF7\u8054\u7CFB\u8BE5\u5B66\u751F\u8D1F\u8D23\u7684\u6559\u5E08\u6C9F\u901A\uFF0C\u5C06\u5176\u79FB\u51FA\u73ED\u7EA7\u518D\u6DFB\u52A0\uFF0C\u6216\u52FE\u9009\u9700\u8981\u6DFB\u52A0\u7684\u5B66\u751F\uFF0C\u5E76\u5411\u7BA1\u7406\u5458\u5BA1\u6838\uFF0C\u5BA1\u6838\u540E\u5B66\u751F\u81EA\u52A8\u52A0\u5165\u60A8\u7684\u73ED\u7EA7"] }), /*#__PURE__*/(0,jsx_runtime.jsx)(ui_customization/* CustomTable */.Gi, { children: /*#__PURE__*/(0,jsx_runtime.jsx)(table/* default */.Z, { columns: columns1, loading: tableLoading, rowKey: function rowKey(e) { return e.id; }, rowSelection: { type: 'checkbox', onChange: function onChange(e) { setitems(toConsumableArray_default()(e)); } } // scroll={{ // y:800 // }} , dataSource: classroomList.actionTabs.list, pagination: false }) })] })] }); }; /* harmony default export */ var Item = ((0,_umi_production_exports.connect)(function (_ref3) { var classroomList = _ref3.classroomList, loading = _ref3.loading, globalSetting = _ref3.globalSetting, user = _ref3.user; return { classroomList: classroomList, globalSetting: globalSetting, loading: loading.models.classroomList, user: user }; })(ClassroomListPage)); /***/ }), /***/ 11806: /*!************************************************************!*\ !*** ./src/components/ui-customization/reset.less?modules ***! \************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__) { "use strict"; // extracted by mini-css-extract-plugin /* harmony default export */ __webpack_exports__.Z = ({"flex_box_center":"flex_box_center___vG4eV","flex_space_between":"flex_space_between___qVVxe","flex_box_vertical_center":"flex_box_vertical_center___P8Z8s","flex_box_center_end":"flex_box_center_end___VMme3","flex_box_column":"flex_box_column___VMHwm","dropdownmenus":"dropdownmenus___oVzoj","popupClassNames":"popupClassNames___OcZq7","selectdown":"selectdown___mmcA8"}); /***/ }), /***/ 60028: /*!**********************************************************!*\ !*** ./node_modules/_antd@5.9.0@antd/es/upload/index.js ***! \**********************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var _Dragger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Dragger */ 71409); /* harmony import */ var _Upload__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Upload */ 81376); "use client"; const Upload = _Upload__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z; Upload.Dragger = _Dragger__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z; Upload.LIST_IGNORE = _Upload__WEBPACK_IMPORTED_MODULE_0__/* .LIST_IGNORE */ .E; /* harmony default export */ __webpack_exports__.Z = (Upload); /***/ }), /***/ 51581: /*!****************************************************************************************************!*\ !*** ./node_modules/_react-infinite-scroller@1.2.4@react-infinite-scroller/dist/InfiniteScroll.js ***! \****************************************************************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 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; }; }(); var _react = __webpack_require__(/*! react */ 59301); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(/*! prop-types */ 12708); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } 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 InfiniteScroll = function (_Component) { _inherits(InfiniteScroll, _Component); function InfiniteScroll(props) { _classCallCheck(this, InfiniteScroll); var _this = _possibleConstructorReturn(this, (InfiniteScroll.__proto__ || Object.getPrototypeOf(InfiniteScroll)).call(this, props)); _this.scrollListener = _this.scrollListener.bind(_this); _this.eventListenerOptions = _this.eventListenerOptions.bind(_this); _this.mousewheelListener = _this.mousewheelListener.bind(_this); return _this; } _createClass(InfiniteScroll, [{ key: 'componentDidMount', value: function componentDidMount() { this.pageLoaded = this.props.pageStart; this.options = this.eventListenerOptions(); this.attachScrollListener(); } }, { key: 'componentDidUpdate', value: function componentDidUpdate() { if (this.props.isReverse && this.loadMore) { var parentElement = this.getParentElement(this.scrollComponent); parentElement.scrollTop = parentElement.scrollHeight - this.beforeScrollHeight + this.beforeScrollTop; this.loadMore = false; } this.attachScrollListener(); } }, { key: 'componentWillUnmount', value: function componentWillUnmount() { this.detachScrollListener(); this.detachMousewheelListener(); } }, { key: 'isPassiveSupported', value: function isPassiveSupported() { var passive = false; var testOptions = { get passive() { passive = true; } }; try { document.addEventListener('test', null, testOptions); document.removeEventListener('test', null, testOptions); } catch (e) { // ignore } return passive; } }, { key: 'eventListenerOptions', value: function eventListenerOptions() { var options = this.props.useCapture; if (this.isPassiveSupported()) { options = { useCapture: this.props.useCapture, passive: true }; } return options; } // Set a defaut loader for all your `InfiniteScroll` components }, { key: 'setDefaultLoader', value: function setDefaultLoader(loader) { this.defaultLoader = loader; } }, { key: 'detachMousewheelListener', value: function detachMousewheelListener() { var scrollEl = window; if (this.props.useWindow === false) { scrollEl = this.scrollComponent.parentNode; } scrollEl.removeEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture); } }, { key: 'detachScrollListener', value: function detachScrollListener() { var scrollEl = window; if (this.props.useWindow === false) { scrollEl = this.getParentElement(this.scrollComponent); } scrollEl.removeEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture); scrollEl.removeEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture); } }, { key: 'getParentElement', value: function getParentElement(el) { var scrollParent = this.props.getScrollParent && this.props.getScrollParent(); if (scrollParent != null) { return scrollParent; } return el && el.parentNode; } }, { key: 'filterProps', value: function filterProps(props) { return props; } }, { key: 'attachScrollListener', value: function attachScrollListener() { var parentElement = this.getParentElement(this.scrollComponent); if (!this.props.hasMore || !parentElement) { return; } var scrollEl = window; if (this.props.useWindow === false) { scrollEl = parentElement; } scrollEl.addEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture); scrollEl.addEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture); scrollEl.addEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture); if (this.props.initialLoad) { this.scrollListener(); } } }, { key: 'mousewheelListener', value: function mousewheelListener(e) { // Prevents Chrome hangups // See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257 if (e.deltaY === 1 && !this.isPassiveSupported()) { e.preventDefault(); } } }, { key: 'scrollListener', value: function scrollListener() { var el = this.scrollComponent; var scrollEl = window; var parentNode = this.getParentElement(el); var offset = void 0; if (this.props.useWindow) { var doc = document.documentElement || document.body.parentNode || document.body; var scrollTop = scrollEl.pageYOffset !== undefined ? scrollEl.pageYOffset : doc.scrollTop; if (this.props.isReverse) { offset = scrollTop; } else { offset = this.calculateOffset(el, scrollTop); } } else if (this.props.isReverse) { offset = parentNode.scrollTop; } else { offset = el.scrollHeight - parentNode.scrollTop - parentNode.clientHeight; } // Here we make sure the element is visible as well as checking the offset if (offset < Number(this.props.threshold) && el && el.offsetParent !== null) { this.detachScrollListener(); this.beforeScrollHeight = parentNode.scrollHeight; this.beforeScrollTop = parentNode.scrollTop; // Call loadMore after detachScrollListener to allow for non-async loadMore functions if (typeof this.props.loadMore === 'function') { this.props.loadMore(this.pageLoaded += 1); this.loadMore = true; } } } }, { key: 'calculateOffset', value: function calculateOffset(el, scrollTop) { if (!el) { return 0; } return this.calculateTopPosition(el) + (el.offsetHeight - scrollTop - window.innerHeight); } }, { key: 'calculateTopPosition', value: function calculateTopPosition(el) { if (!el) { return 0; } return el.offsetTop + this.calculateTopPosition(el.offsetParent); } }, { key: 'render', value: function render() { var _this2 = this; var renderProps = this.filterProps(this.props); var children = renderProps.children, element = renderProps.element, hasMore = renderProps.hasMore, initialLoad = renderProps.initialLoad, isReverse = renderProps.isReverse, loader = renderProps.loader, loadMore = renderProps.loadMore, pageStart = renderProps.pageStart, ref = renderProps.ref, threshold = renderProps.threshold, useCapture = renderProps.useCapture, useWindow = renderProps.useWindow, getScrollParent = renderProps.getScrollParent, props = _objectWithoutProperties(renderProps, ['children', 'element', 'hasMore', 'initialLoad', 'isReverse', 'loader', 'loadMore', 'pageStart', 'ref', 'threshold', 'useCapture', 'useWindow', 'getScrollParent']); props.ref = function (node) { _this2.scrollComponent = node; if (ref) { ref(node); } }; var childrenArray = [children]; if (hasMore) { if (loader) { isReverse ? childrenArray.unshift(loader) : childrenArray.push(loader); } else if (this.defaultLoader) { isReverse ? childrenArray.unshift(this.defaultLoader) : childrenArray.push(this.defaultLoader); } } return _react2.default.createElement(element, props, childrenArray); } }]); return InfiniteScroll; }(_react.Component); InfiniteScroll.propTypes = { children: _propTypes2.default.node.isRequired, element: _propTypes2.default.node, hasMore: _propTypes2.default.bool, initialLoad: _propTypes2.default.bool, isReverse: _propTypes2.default.bool, loader: _propTypes2.default.node, loadMore: _propTypes2.default.func.isRequired, pageStart: _propTypes2.default.number, ref: _propTypes2.default.func, getScrollParent: _propTypes2.default.func, threshold: _propTypes2.default.number, useCapture: _propTypes2.default.bool, useWindow: _propTypes2.default.bool }; InfiniteScroll.defaultProps = { element: 'div', hasMore: false, initialLoad: true, pageStart: 0, ref: null, threshold: 250, useWindow: true, isReverse: false, useCapture: false, loader: null, getScrollParent: null }; exports["default"] = InfiniteScroll; module.exports = exports['default']; /***/ }), /***/ 26724: /*!**************************************************************************************!*\ !*** ./node_modules/_react-infinite-scroller@1.2.4@react-infinite-scroller/index.js ***! \**************************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { module.exports = __webpack_require__(/*! ./dist/InfiniteScroll */ 51581) /***/ }) }]);