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.
907 lines
36 KiB
907 lines
36 KiB
"use strict";
|
|
(self["webpackChunk"] = self["webpackChunk"] || []).push([[3451],{
|
|
|
|
/***/ 9309:
|
|
/*!*****************************************************************************************************!*\
|
|
!*** ./node_modules/_@ant-design_icons@5.3.5@@ant-design/icons/es/icons/EyeOutlined.js + 1 modules ***!
|
|
\*****************************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ icons_EyeOutlined; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.24.1@@babel/runtime/helpers/esm/extends.js
|
|
var esm_extends = __webpack_require__(66820);
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.4.2@@ant-design/icons-svg/es/asn/EyeOutlined.js
|
|
// This icon file is generated automatically.
|
|
var EyeOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z" } }] }, "name": "eye", "theme": "outlined" };
|
|
/* harmony default export */ var asn_EyeOutlined = (EyeOutlined);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.3.5@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
var AntdIcon = __webpack_require__(13814);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.3.5@@ant-design/icons/es/icons/EyeOutlined.js
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
var EyeOutlined_EyeOutlined = function EyeOutlined(props, ref) {
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
ref: ref,
|
|
icon: asn_EyeOutlined
|
|
}));
|
|
};
|
|
var RefIcon = /*#__PURE__*/_react_17_0_2_react.forwardRef(EyeOutlined_EyeOutlined);
|
|
if (false) {}
|
|
/* harmony default export */ var icons_EyeOutlined = (RefIcon);
|
|
|
|
/***/ }),
|
|
|
|
/***/ 53798:
|
|
/*!**********************************************************************************************!*\
|
|
!*** ./src/pages/Classrooms/Lists/Statistics/StudentStatistics/Detail/index.tsx + 2 modules ***!
|
|
\**********************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
// ESM COMPAT FLAG
|
|
__webpack_require__.r(__webpack_exports__);
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
"default": function() { return /* binding */ Detail; }
|
|
});
|
|
|
|
// 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/objectSpread2.js
|
|
var objectSpread2 = __webpack_require__(82242);
|
|
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
|
|
// 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/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
// EXTERNAL MODULE: ./src/.umi-production/exports.ts + 15 modules
|
|
var _umi_production_exports = __webpack_require__(58011);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/menu/index.js + 11 modules
|
|
var menu = __webpack_require__(20834);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/table/index.js + 85 modules
|
|
var table = __webpack_require__(90508);
|
|
// EXTERNAL MODULE: ./src/utils/fetch.ts
|
|
var fetch = __webpack_require__(56648);
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Statistics/StudentStatistics/Detail/index.less?modules
|
|
// extracted by mini-css-extract-plugin
|
|
/* harmony default export */ var Detailmodules = ({"flex_box_center":"flex_box_center___BogAZ","flex_space_between":"flex_space_between___vFRFf","flex_box_vertical_center":"flex_box_vertical_center___AZ2v2","flex_box_center_end":"flex_box_center_end___PznGE","flex_box_column":"flex_box_column___Jbx4l","containerTitle":"containerTitle___Gs2Wj","des":"des___PxCdT","menu":"menu___uCky_"});
|
|
// EXTERNAL MODULE: ./src/utils/util.tsx
|
|
var util = __webpack_require__(73400);
|
|
// EXTERNAL MODULE: ./node_modules/_dayjs@1.11.10@dayjs/dayjs.min.js
|
|
var dayjs_min = __webpack_require__(9498);
|
|
var dayjs_min_default = /*#__PURE__*/__webpack_require__.n(dayjs_min);
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Statistics/StudentStatistics/Detail/columns.tsx
|
|
|
|
|
|
|
|
|
|
var columns = [{
|
|
type: 'shixun',
|
|
sorter: {
|
|
field: '',
|
|
order: ''
|
|
},
|
|
column: function column(params) {
|
|
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
console.log(params, 4455488);
|
|
var _param$field = param.field,
|
|
field = _param$field === void 0 ? '' : _param$field,
|
|
_param$order = param.order,
|
|
order = _param$order === void 0 ? '' : _param$order;
|
|
return [{
|
|
title: '序号',
|
|
dataIndex: 'number',
|
|
align: 'center',
|
|
width: 70,
|
|
render: function render(a, b, i) {
|
|
return params.limit * (params.page - 1) + i + 1;
|
|
}
|
|
}, {
|
|
title: '实践项目名称',
|
|
dataIndex: 'shixun_name',
|
|
ellipsis: true
|
|
}, {
|
|
title: '关卡进度',
|
|
dataIndex: 'passed_game_count',
|
|
sortOrder: field === 'passed_game_count' && order,
|
|
width: 90,
|
|
sorter: true,
|
|
render: function render(a, b) {
|
|
return "".concat(a, "/").concat(b === null || b === void 0 ? void 0 : b.games_count);
|
|
}
|
|
}, {
|
|
title: '评测次数',
|
|
dataIndex: 'evaluate_count',
|
|
sortOrder: field === 'evaluate_count' && order,
|
|
width: 90,
|
|
sorter: true
|
|
}, {
|
|
title: '总耗时',
|
|
dataIndex: 'cost_time',
|
|
sortOrder: field === 'cost_time' && order,
|
|
sorter: true,
|
|
width: 130,
|
|
render: function render(text) {
|
|
return text && (0,util/* toTimeFormat */.li)(text) || "-";
|
|
}
|
|
}, {
|
|
title: '开始学习时间',
|
|
dataIndex: 'start_at',
|
|
width: 100,
|
|
render: function render(text) {
|
|
return text && dayjs_min_default()(text).format("YYYY-MM-DD") || '-';
|
|
}
|
|
}, {
|
|
title: '最后学习时间',
|
|
dataIndex: 'end_at',
|
|
width: 100,
|
|
render: function render(text) {
|
|
return text && dayjs_min_default()(text).format("YYYY-MM-DD") || '-';
|
|
}
|
|
}, (params === null || params === void 0 ? void 0 : params.menuKey) === '1' && {
|
|
title: '操作',
|
|
width: 80,
|
|
dataIndex: 'action',
|
|
render: function render(id, record) {
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
href: "/classrooms/".concat(params === null || params === void 0 ? void 0 : params.coursesId, "/shixun_homework/").concat(record === null || record === void 0 ? void 0 : record.homework_common_id, "/").concat(record === null || record === void 0 ? void 0 : record.student_work_id, "/comment"),
|
|
target: "_blank",
|
|
children: "\u5B9E\u8BAD\u62A5\u544A"
|
|
});
|
|
}
|
|
}].filter(function (e) {
|
|
return !!e;
|
|
});
|
|
}
|
|
}, {
|
|
type: 'video',
|
|
sorter: {
|
|
field: '',
|
|
order: ''
|
|
},
|
|
column: function column(params) {
|
|
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
var _param$field2 = param.field,
|
|
field = _param$field2 === void 0 ? '' : _param$field2,
|
|
_param$order2 = param.order,
|
|
order = _param$order2 === void 0 ? '' : _param$order2;
|
|
return [{
|
|
title: '序号',
|
|
dataIndex: 'number',
|
|
align: 'center',
|
|
width: 70,
|
|
render: function render(a, b, i) {
|
|
return params.limit * (params.page - 1) + i + 1;
|
|
}
|
|
}, {
|
|
title: '视频名称',
|
|
dataIndex: 'file_name',
|
|
ellipsis: true
|
|
}, {
|
|
title: '观看时长',
|
|
dataIndex: 'total_duration',
|
|
sortOrder: field === 'total_duration' && order,
|
|
sorter: true,
|
|
width: 130,
|
|
render: function render(text) {
|
|
return text && (0,util/* toTimeFormat */.li)(text) || "-";
|
|
}
|
|
}, {
|
|
title: '学习进度',
|
|
dataIndex: 'rate',
|
|
sortOrder: field === 'rate' && order,
|
|
sorter: true,
|
|
width: 90,
|
|
render: function render(text) {
|
|
return text && "".concat(text, "%") || 0;
|
|
}
|
|
}, {
|
|
title: '开始学习时间',
|
|
dataIndex: 'start_at',
|
|
width: 170,
|
|
render: function render(text) {
|
|
return text && dayjs_min_default()(text).format("YYYY-MM-DD HH:mm:ss") || '-';
|
|
}
|
|
}, {
|
|
title: '最后学习时间',
|
|
dataIndex: 'end_at',
|
|
width: 170,
|
|
render: function render(text) {
|
|
return text && dayjs_min_default()(text).format("YYYY-MM-DD HH:mm:ss") || '-';
|
|
}
|
|
}];
|
|
}
|
|
}, {
|
|
type: 'files',
|
|
sorter: {
|
|
field: '',
|
|
order: ''
|
|
},
|
|
column: function column(params) {
|
|
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
var _param$field3 = param.field,
|
|
field = _param$field3 === void 0 ? '' : _param$field3,
|
|
_param$order3 = param.order,
|
|
order = _param$order3 === void 0 ? '' : _param$order3;
|
|
return [{
|
|
title: '序号',
|
|
dataIndex: 'number',
|
|
align: 'center',
|
|
width: 70,
|
|
render: function render(a, b, i) {
|
|
return params.limit * (params.page - 1) + i + 1;
|
|
}
|
|
}, {
|
|
title: '教学课件名称',
|
|
dataIndex: 'file_name',
|
|
ellipsis: true
|
|
}, {
|
|
title: '下载资源次数',
|
|
dataIndex: 'num',
|
|
sortOrder: field === 'num' && order,
|
|
sorter: true,
|
|
width: 120
|
|
}, {
|
|
title: '下载时间',
|
|
dataIndex: 'end_at',
|
|
width: 170,
|
|
render: function render(text) {
|
|
return text && dayjs_min_default()(text).format("YYYY-MM-DD HH:mm:ss") || '-';
|
|
}
|
|
}];
|
|
}
|
|
}];
|
|
// EXTERNAL MODULE: ./node_modules/_lodash@4.17.21@lodash/lodash.js
|
|
var lodash = __webpack_require__(89392);
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Statistics/StudentStatistics/Detail/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var StudentStatistics = function StudentStatistics(_ref) {
|
|
var classroomList = _ref.classroomList,
|
|
globalSetting = _ref.globalSetting,
|
|
dispatch = _ref.dispatch;
|
|
var urlParams = (0,_umi_production_exports.useParams)();
|
|
var _useState = (0,_react_17_0_2_react.useState)(objectSpread2_default()(objectSpread2_default()({}, urlParams), {}, {
|
|
page: 1,
|
|
limit: 10
|
|
})),
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
params = _useState2[0],
|
|
setParams = _useState2[1];
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(true),
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
loading = _useState4[0],
|
|
setLoading = _useState4[1];
|
|
var _useState5 = (0,_react_17_0_2_react.useState)('0'),
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
menuKey = _useState6[0],
|
|
setMenuKey = _useState6[1];
|
|
var _useState7 = (0,_react_17_0_2_react.useState)([]),
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
list = _useState8[0],
|
|
setList = _useState8[1];
|
|
var getColumn = function getColumn(type) {
|
|
return columns.find(function (e) {
|
|
return e.type === type;
|
|
});
|
|
};
|
|
var _useState9 = (0,_react_17_0_2_react.useState)(getColumn(urlParams === null || urlParams === void 0 ? void 0 : urlParams.type).column(params)),
|
|
_useState10 = slicedToArray_default()(_useState9, 2),
|
|
column = _useState10[0],
|
|
setColumn = _useState10[1];
|
|
var _useState11 = (0,_react_17_0_2_react.useState)(getColumn(urlParams === null || urlParams === void 0 ? void 0 : urlParams.type).sorter),
|
|
_useState12 = slicedToArray_default()(_useState11, 2),
|
|
sorter = _useState12[0],
|
|
setSorter = _useState12[1];
|
|
var _useState13 = (0,_react_17_0_2_react.useState)(0),
|
|
_useState14 = slicedToArray_default()(_useState13, 2),
|
|
total = _useState14[0],
|
|
setTotal = _useState14[1];
|
|
var _useState15 = (0,_react_17_0_2_react.useState)(''),
|
|
_useState16 = slicedToArray_default()(_useState15, 2),
|
|
userName = _useState16[0],
|
|
setUserName = _useState16[1];
|
|
var des = {
|
|
shixun: ['数据统计自课程学习菜单下的实践项目(暂不支持查看学生实训报告)。', '数据统计自课程实验(支持查看学生实训报告)。', '的实践项目学习情况'],
|
|
video: ['数据统计自课程学习菜单下的视频项目。', '数据统计自视频直播。', '的视频学习情况'],
|
|
files: ['数据统计自课程学习菜单下的教学课件。', '数据统计自教学资料', '的教学课件学习情况']
|
|
};
|
|
var Menus = [{
|
|
name: '自由学习',
|
|
id: '0'
|
|
}, {
|
|
name: '计划学习',
|
|
id: '1'
|
|
}];
|
|
var getData = /*#__PURE__*/function () {
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee(gather) {
|
|
var _gather$order;
|
|
var res;
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
while (1) switch (_context.prev = _context.next) {
|
|
case 0:
|
|
setLoading(true);
|
|
_context.next = 3;
|
|
return (0,fetch/* default */.ZP)("/api/courses/".concat(gather === null || gather === void 0 ? void 0 : gather.coursesId, "/").concat(gather === null || gather === void 0 ? void 0 : gather.type, "_statistic_detail.json"), {
|
|
params: {
|
|
sort_by: gather === null || gather === void 0 ? void 0 : gather.field,
|
|
sort_direction: gather !== null && gather !== void 0 && gather.order ? gather === null || gather === void 0 || (_gather$order = gather.order) === null || _gather$order === void 0 ? void 0 : _gather$order.slice(0, -3) : '',
|
|
page: gather === null || gather === void 0 ? void 0 : gather.page,
|
|
limit: gather === null || gather === void 0 ? void 0 : gather.limit,
|
|
user_id: gather === null || gather === void 0 ? void 0 : gather.listId,
|
|
clazz: (gather === null || gather === void 0 ? void 0 : gather.menuKey) === '0' ? 'liberty' : ''
|
|
}
|
|
});
|
|
case 3:
|
|
res = _context.sent;
|
|
if (res !== null && res !== void 0 && res.data) {
|
|
setList((res === null || res === void 0 ? void 0 : res.data) || []);
|
|
setTotal(res === null || res === void 0 ? void 0 : res.count);
|
|
setUserName(res === null || res === void 0 ? void 0 : res.user_name);
|
|
setLoading(false);
|
|
}
|
|
case 5:
|
|
case "end":
|
|
return _context.stop();
|
|
}
|
|
}, _callee);
|
|
}));
|
|
return function getData(_x) {
|
|
return _ref2.apply(this, arguments);
|
|
};
|
|
}();
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
console.log(222);
|
|
var newData = objectSpread2_default()(objectSpread2_default()({
|
|
menuKey: menuKey
|
|
}, params), {}, {
|
|
page: 1,
|
|
limit: 10
|
|
}, getColumn(urlParams === null || urlParams === void 0 ? void 0 : urlParams.type).sorter);
|
|
setColumn(getColumn(urlParams === null || urlParams === void 0 ? void 0 : urlParams.type).column(newData));
|
|
setParams(objectSpread2_default()(objectSpread2_default()({}, params), {}, {
|
|
page: 1,
|
|
limit: 10
|
|
}));
|
|
getData(newData);
|
|
}, [menuKey]);
|
|
var handleChange = function handleChange(pagination, filters, sorterData) {
|
|
var newSorter = {
|
|
field: sorterData.field,
|
|
order: sorterData.order
|
|
};
|
|
if ((sorterData === null || sorterData === void 0 ? void 0 : sorterData.order) === false) {
|
|
newSorter = {
|
|
field: '',
|
|
order: ''
|
|
};
|
|
}
|
|
if (!(0,lodash.isEqual)(newSorter, sorter)) {
|
|
if (!sorterData.order) {
|
|
newSorter = getColumn(urlParams === null || urlParams === void 0 ? void 0 : urlParams.type).sorter;
|
|
}
|
|
var _newData = objectSpread2_default()(objectSpread2_default()({
|
|
menuKey: menuKey
|
|
}, params), {}, {
|
|
page: 1,
|
|
limit: 10
|
|
}, newSorter);
|
|
setParams(objectSpread2_default()(objectSpread2_default()({}, params), {}, {
|
|
page: 1,
|
|
limit: 10
|
|
}));
|
|
setSorter(newSorter);
|
|
getData(_newData);
|
|
setColumn(getColumn(urlParams === null || urlParams === void 0 ? void 0 : urlParams.type).column(_newData, newSorter));
|
|
return;
|
|
}
|
|
var newData = objectSpread2_default()(objectSpread2_default()({
|
|
menuKey: menuKey
|
|
}, params), {}, {
|
|
page: pagination.current,
|
|
limit: pagination.pageSize
|
|
}, newSorter);
|
|
setParams(objectSpread2_default()(objectSpread2_default()({}, params), {}, {
|
|
page: pagination.current,
|
|
limit: pagination.pageSize
|
|
}));
|
|
setColumn(getColumn(urlParams === null || urlParams === void 0 ? void 0 : urlParams.type).column(newData, newSorter));
|
|
getData(newData);
|
|
};
|
|
console.log(urlParams, 'urlParams');
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("section", {
|
|
className: Detailmodules.bg,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: Detailmodules.containerTitle,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
href: "/classrooms/".concat(params === null || params === void 0 ? void 0 : params.coursesId, "/student_statistics/").concat(params === null || params === void 0 ? void 0 : params.categoryId, "?type=").concat(params === null || params === void 0 ? void 0 : params.type),
|
|
className: "iconfont icon-fanhui2 c-grey-333 mr10"
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
className: "font16",
|
|
children: userName ? userName + des[urlParams === null || urlParams === void 0 ? void 0 : urlParams.type][2] : '--'
|
|
})]
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(menu/* default */.Z, {
|
|
className: Detailmodules.menu,
|
|
mode: "horizontal",
|
|
onClick: function onClick(e) {
|
|
setMenuKey(e.key);
|
|
},
|
|
selectedKeys: menuKey,
|
|
children: Menus.map(function (v, k) {
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(menu/* default */.Z.Item, {
|
|
className: "font16",
|
|
style: {
|
|
padding: "0 0 12px 0 ",
|
|
margin: "0 30px"
|
|
},
|
|
children: v.name
|
|
}, v.id);
|
|
})
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: Detailmodules.des,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
className: "iconfont icon-tishi4 font18 mr10 c-light-primary"
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
className: "c-light-black",
|
|
children: des[urlParams === null || urlParams === void 0 ? void 0 : urlParams.type][String(menuKey)]
|
|
})]
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(table/* default */.Z, {
|
|
className: "table-layout bg-white mt20 mb20",
|
|
columns: column,
|
|
dataSource: list,
|
|
rowKey: function rowKey(v) {
|
|
return v.id;
|
|
},
|
|
loading: loading,
|
|
onChange: handleChange,
|
|
pagination: {
|
|
pageSize: params.limit,
|
|
total: total,
|
|
current: params.page,
|
|
showQuickJumper: true,
|
|
hideOnSinglePage: true,
|
|
position: ["bottomCenter"]
|
|
}
|
|
})]
|
|
});
|
|
};
|
|
/* harmony default export */ var Detail = ((0,_umi_production_exports.connect)(function (_ref3) {
|
|
var classroomList = _ref3.classroomList,
|
|
globalSetting = _ref3.globalSetting;
|
|
return {
|
|
classroomList: classroomList,
|
|
globalSetting: globalSetting
|
|
};
|
|
})(StudentStatistics));
|
|
|
|
/***/ }),
|
|
|
|
/***/ 62680:
|
|
/*!*********************************************************************!*\
|
|
!*** ./node_modules/_antd@5.9.0@antd/es/input/index.js + 5 modules ***!
|
|
\*********************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ input; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_classnames@2.5.1@classnames/index.js
|
|
var _classnames_2_5_1_classnames = __webpack_require__(92310);
|
|
var _classnames_2_5_1_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_5_1_classnames);
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/config-provider/context.js
|
|
var context = __webpack_require__(36355);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/form/context.js
|
|
var form_context = __webpack_require__(32441);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/style/index.js
|
|
var style = __webpack_require__(9937);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/input/Group.js
|
|
"use client";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const Group = props => {
|
|
const {
|
|
getPrefixCls,
|
|
direction
|
|
} = (0,_react_17_0_2_react.useContext)(context/* ConfigContext */.E_);
|
|
const {
|
|
prefixCls: customizePrefixCls,
|
|
className
|
|
} = props;
|
|
const prefixCls = getPrefixCls('input-group', customizePrefixCls);
|
|
const inputPrefixCls = getPrefixCls('input');
|
|
const [wrapSSR, hashId] = (0,style/* default */.ZP)(inputPrefixCls);
|
|
const cls = _classnames_2_5_1_classnames_default()(prefixCls, {
|
|
[`${prefixCls}-lg`]: props.size === 'large',
|
|
[`${prefixCls}-sm`]: props.size === 'small',
|
|
[`${prefixCls}-compact`]: props.compact,
|
|
[`${prefixCls}-rtl`]: direction === 'rtl'
|
|
}, hashId, className);
|
|
const formItemContext = (0,_react_17_0_2_react.useContext)(form_context/* FormItemInputContext */.aM);
|
|
const groupFormItemContext = (0,_react_17_0_2_react.useMemo)(() => Object.assign(Object.assign({}, formItemContext), {
|
|
isFormItemInput: false
|
|
}), [formItemContext]);
|
|
if (false) {}
|
|
return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement("span", {
|
|
className: cls,
|
|
style: props.style,
|
|
onMouseEnter: props.onMouseEnter,
|
|
onMouseLeave: props.onMouseLeave,
|
|
onFocus: props.onFocus,
|
|
onBlur: props.onBlur
|
|
}, /*#__PURE__*/_react_17_0_2_react.createElement(form_context/* FormItemInputContext */.aM.Provider, {
|
|
value: groupFormItemContext
|
|
}, props.children)));
|
|
};
|
|
/* harmony default export */ var input_Group = (Group);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/Input.js + 1 modules
|
|
var Input = __webpack_require__(9432);
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.24.1@@babel/runtime/helpers/esm/extends.js
|
|
var esm_extends = __webpack_require__(66820);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.4.2@@ant-design/icons-svg/es/asn/EyeInvisibleOutlined.js
|
|
// This icon file is generated automatically.
|
|
var EyeInvisibleOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5zm-63.57-320.64L836 122.88a8 8 0 00-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 000 11.31L155.17 889a8 8 0 0011.31 0l712.15-712.12a8 8 0 000-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 00-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 01146.2-106.69L401.31 546.2A112 112 0 01396 512z" } }, { "tag": "path", "attrs": { "d": "M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 00227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 01-112 112z" } }] }, "name": "eye-invisible", "theme": "outlined" };
|
|
/* harmony default export */ var asn_EyeInvisibleOutlined = (EyeInvisibleOutlined);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.3.5@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
var AntdIcon = __webpack_require__(13814);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.3.5@@ant-design/icons/es/icons/EyeInvisibleOutlined.js
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
var EyeInvisibleOutlined_EyeInvisibleOutlined = function EyeInvisibleOutlined(props, ref) {
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
ref: ref,
|
|
icon: asn_EyeInvisibleOutlined
|
|
}));
|
|
};
|
|
var RefIcon = /*#__PURE__*/_react_17_0_2_react.forwardRef(EyeInvisibleOutlined_EyeInvisibleOutlined);
|
|
if (false) {}
|
|
/* harmony default export */ var icons_EyeInvisibleOutlined = (RefIcon);
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.3.5@@ant-design/icons/es/icons/EyeOutlined.js + 1 modules
|
|
var EyeOutlined = __webpack_require__(9309);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.39.1@rc-util/es/omit.js
|
|
var omit = __webpack_require__(62805);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.39.1@rc-util/es/ref.js
|
|
var es_ref = __webpack_require__(76466);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/hooks/useRemovePasswordTimeout.js
|
|
var useRemovePasswordTimeout = __webpack_require__(59412);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/input/Password.js
|
|
"use client";
|
|
|
|
var __rest = undefined && undefined.__rest || function (s, e) {
|
|
var t = {};
|
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
}
|
|
return t;
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const defaultIconRender = visible => visible ? /*#__PURE__*/_react_17_0_2_react.createElement(EyeOutlined/* default */.Z, null) : /*#__PURE__*/_react_17_0_2_react.createElement(icons_EyeInvisibleOutlined, null);
|
|
const ActionMap = {
|
|
click: 'onClick',
|
|
hover: 'onMouseOver'
|
|
};
|
|
const Password = /*#__PURE__*/_react_17_0_2_react.forwardRef((props, ref) => {
|
|
const {
|
|
visibilityToggle = true
|
|
} = props;
|
|
const visibilityControlled = typeof visibilityToggle === 'object' && visibilityToggle.visible !== undefined;
|
|
const [visible, setVisible] = (0,_react_17_0_2_react.useState)(() => visibilityControlled ? visibilityToggle.visible : false);
|
|
const inputRef = (0,_react_17_0_2_react.useRef)(null);
|
|
_react_17_0_2_react.useEffect(() => {
|
|
if (visibilityControlled) {
|
|
setVisible(visibilityToggle.visible);
|
|
}
|
|
}, [visibilityControlled, visibilityToggle]);
|
|
// Remove Password value
|
|
const removePasswordTimeout = (0,useRemovePasswordTimeout/* default */.Z)(inputRef);
|
|
const onVisibleChange = () => {
|
|
const {
|
|
disabled
|
|
} = props;
|
|
if (disabled) {
|
|
return;
|
|
}
|
|
if (visible) {
|
|
removePasswordTimeout();
|
|
}
|
|
setVisible(prevState => {
|
|
var _a;
|
|
const newState = !prevState;
|
|
if (typeof visibilityToggle === 'object') {
|
|
(_a = visibilityToggle.onVisibleChange) === null || _a === void 0 ? void 0 : _a.call(visibilityToggle, newState);
|
|
}
|
|
return newState;
|
|
});
|
|
};
|
|
const getIcon = prefixCls => {
|
|
const {
|
|
action = 'click',
|
|
iconRender = defaultIconRender
|
|
} = props;
|
|
const iconTrigger = ActionMap[action] || '';
|
|
const icon = iconRender(visible);
|
|
const iconProps = {
|
|
[iconTrigger]: onVisibleChange,
|
|
className: `${prefixCls}-icon`,
|
|
key: 'passwordIcon',
|
|
onMouseDown: e => {
|
|
// Prevent focused state lost
|
|
// https://github.com/ant-design/ant-design/issues/15173
|
|
e.preventDefault();
|
|
},
|
|
onMouseUp: e => {
|
|
// Prevent caret position change
|
|
// https://github.com/ant-design/ant-design/issues/23524
|
|
e.preventDefault();
|
|
}
|
|
};
|
|
return /*#__PURE__*/_react_17_0_2_react.cloneElement( /*#__PURE__*/_react_17_0_2_react.isValidElement(icon) ? icon : /*#__PURE__*/_react_17_0_2_react.createElement("span", null, icon), iconProps);
|
|
};
|
|
const {
|
|
className,
|
|
prefixCls: customizePrefixCls,
|
|
inputPrefixCls: customizeInputPrefixCls,
|
|
size
|
|
} = props,
|
|
restProps = __rest(props, ["className", "prefixCls", "inputPrefixCls", "size"]);
|
|
const {
|
|
getPrefixCls
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
const inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);
|
|
const prefixCls = getPrefixCls('input-password', customizePrefixCls);
|
|
const suffixIcon = visibilityToggle && getIcon(prefixCls);
|
|
const inputClassName = _classnames_2_5_1_classnames_default()(prefixCls, className, {
|
|
[`${prefixCls}-${size}`]: !!size
|
|
});
|
|
const omittedProps = Object.assign(Object.assign({}, (0,omit/* default */.Z)(restProps, ['suffix', 'iconRender', 'visibilityToggle'])), {
|
|
type: visible ? 'text' : 'password',
|
|
className: inputClassName,
|
|
prefixCls: inputPrefixCls,
|
|
suffix: suffixIcon
|
|
});
|
|
if (size) {
|
|
omittedProps.size = size;
|
|
}
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(Input/* default */.Z, Object.assign({
|
|
ref: (0,es_ref/* composeRef */.sQ)(ref, inputRef)
|
|
}, omittedProps));
|
|
});
|
|
if (false) {}
|
|
/* harmony default export */ var input_Password = (Password);
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.3.5@@ant-design/icons/es/icons/SearchOutlined.js + 1 modules
|
|
var SearchOutlined = __webpack_require__(26148);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/_util/reactNode.js
|
|
var reactNode = __webpack_require__(92343);
|
|
// 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/config-provider/hooks/useSize.js
|
|
var useSize = __webpack_require__(19716);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/space/Compact.js
|
|
var Compact = __webpack_require__(33234);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/input/Search.js
|
|
"use client";
|
|
|
|
var Search_rest = undefined && undefined.__rest || function (s, e) {
|
|
var t = {};
|
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
}
|
|
return t;
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const Search = /*#__PURE__*/_react_17_0_2_react.forwardRef((props, ref) => {
|
|
const {
|
|
prefixCls: customizePrefixCls,
|
|
inputPrefixCls: customizeInputPrefixCls,
|
|
className,
|
|
size: customizeSize,
|
|
suffix,
|
|
enterButton = false,
|
|
addonAfter,
|
|
loading,
|
|
disabled,
|
|
onSearch: customOnSearch,
|
|
onChange: customOnChange,
|
|
onCompositionStart,
|
|
onCompositionEnd
|
|
} = props,
|
|
restProps = Search_rest(props, ["prefixCls", "inputPrefixCls", "className", "size", "suffix", "enterButton", "addonAfter", "loading", "disabled", "onSearch", "onChange", "onCompositionStart", "onCompositionEnd"]);
|
|
const {
|
|
getPrefixCls,
|
|
direction
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
const composedRef = _react_17_0_2_react.useRef(false);
|
|
const prefixCls = getPrefixCls('input-search', customizePrefixCls);
|
|
const inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);
|
|
const {
|
|
compactSize
|
|
} = (0,Compact/* useCompactItemContext */.ri)(prefixCls, direction);
|
|
const size = (0,useSize/* default */.Z)(ctx => {
|
|
var _a;
|
|
return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : ctx;
|
|
});
|
|
const inputRef = _react_17_0_2_react.useRef(null);
|
|
const onChange = e => {
|
|
if (e && e.target && e.type === 'click' && customOnSearch) {
|
|
customOnSearch(e.target.value, e, {
|
|
source: 'clear'
|
|
});
|
|
}
|
|
if (customOnChange) {
|
|
customOnChange(e);
|
|
}
|
|
};
|
|
const onMouseDown = e => {
|
|
var _a;
|
|
if (document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input)) {
|
|
e.preventDefault();
|
|
}
|
|
};
|
|
const onSearch = e => {
|
|
var _a, _b;
|
|
if (customOnSearch) {
|
|
customOnSearch((_b = (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input) === null || _b === void 0 ? void 0 : _b.value, e, {
|
|
source: 'input'
|
|
});
|
|
}
|
|
};
|
|
const onPressEnter = e => {
|
|
if (composedRef.current || loading) {
|
|
return;
|
|
}
|
|
onSearch(e);
|
|
};
|
|
const searchIcon = typeof enterButton === 'boolean' ? /*#__PURE__*/_react_17_0_2_react.createElement(SearchOutlined/* default */.Z, null) : null;
|
|
const btnClassName = `${prefixCls}-button`;
|
|
let button;
|
|
const enterButtonAsElement = enterButton || {};
|
|
const isAntdButton = enterButtonAsElement.type && enterButtonAsElement.type.__ANT_BUTTON === true;
|
|
if (isAntdButton || enterButtonAsElement.type === 'button') {
|
|
button = (0,reactNode/* cloneElement */.Tm)(enterButtonAsElement, Object.assign({
|
|
onMouseDown,
|
|
onClick: e => {
|
|
var _a, _b;
|
|
(_b = (_a = enterButtonAsElement === null || enterButtonAsElement === void 0 ? void 0 : enterButtonAsElement.props) === null || _a === void 0 ? void 0 : _a.onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);
|
|
onSearch(e);
|
|
},
|
|
key: 'enterButton'
|
|
}, isAntdButton ? {
|
|
className: btnClassName,
|
|
size
|
|
} : {}));
|
|
} else {
|
|
button = /*#__PURE__*/_react_17_0_2_react.createElement(es_button/* default */.ZP, {
|
|
className: btnClassName,
|
|
type: enterButton ? 'primary' : undefined,
|
|
size: size,
|
|
disabled: disabled,
|
|
key: "enterButton",
|
|
onMouseDown: onMouseDown,
|
|
onClick: onSearch,
|
|
loading: loading,
|
|
icon: searchIcon
|
|
}, enterButton);
|
|
}
|
|
if (addonAfter) {
|
|
button = [button, (0,reactNode/* cloneElement */.Tm)(addonAfter, {
|
|
key: 'addonAfter'
|
|
})];
|
|
}
|
|
const cls = _classnames_2_5_1_classnames_default()(prefixCls, {
|
|
[`${prefixCls}-rtl`]: direction === 'rtl',
|
|
[`${prefixCls}-${size}`]: !!size,
|
|
[`${prefixCls}-with-button`]: !!enterButton
|
|
}, className);
|
|
const handleOnCompositionStart = e => {
|
|
composedRef.current = true;
|
|
onCompositionStart === null || onCompositionStart === void 0 ? void 0 : onCompositionStart(e);
|
|
};
|
|
const handleOnCompositionEnd = e => {
|
|
composedRef.current = false;
|
|
onCompositionEnd === null || onCompositionEnd === void 0 ? void 0 : onCompositionEnd(e);
|
|
};
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(Input/* default */.Z, Object.assign({
|
|
ref: (0,es_ref/* composeRef */.sQ)(inputRef, ref),
|
|
onPressEnter: onPressEnter
|
|
}, restProps, {
|
|
size: size,
|
|
onCompositionStart: handleOnCompositionStart,
|
|
onCompositionEnd: handleOnCompositionEnd,
|
|
prefixCls: inputPrefixCls,
|
|
addonAfter: button,
|
|
suffix: suffix,
|
|
onChange: onChange,
|
|
className: cls,
|
|
disabled: disabled
|
|
}));
|
|
});
|
|
if (false) {}
|
|
/* harmony default export */ var input_Search = (Search);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/TextArea.js
|
|
var TextArea = __webpack_require__(1643);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/input/index.js
|
|
"use client";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const input_Input = Input/* default */.Z;
|
|
if (false) {}
|
|
input_Input.Group = input_Group;
|
|
input_Input.Search = input_Search;
|
|
input_Input.TextArea = TextArea/* default */.Z;
|
|
input_Input.Password = input_Password;
|
|
/* harmony default export */ var input = (input_Input);
|
|
|
|
/***/ })
|
|
|
|
}]); |