You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NewEduCoderBuild/p__User__Detail__ClassManag...

1616 lines
61 KiB

(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)
/***/ })
}]);