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__Classrooms__Lists__Stati...

467 lines
18 KiB

"use strict";
(self["webpackChunk"] = self["webpackChunk"] || []).push([[3451],{
/***/ 85973:
/*!**********************************************************************************************!*\
!*** ./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
var _umi_production_exports = __webpack_require__(48938);
// 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__(1710);
// EXTERNAL MODULE: ./src/utils/fetch.ts
var fetch = __webpack_require__(1833);
;// 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__(82338);
// 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: ./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));
/***/ })
}]);