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

529 lines
20 KiB

"use strict";
(self["webpackChunk"] = self["webpackChunk"] || []).push([[54572],{
/***/ 41270:
/*!*********************************************************************!*\
!*** ./src/pages/Classrooms/Lists/ExportList/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 */ ExportList; }
});
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/regeneratorRuntime.js
var regeneratorRuntime = __webpack_require__(10574);
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(39343);
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/objectSpread2.js
var objectSpread2 = __webpack_require__(26801);
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(11006);
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: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/LeftOutlined.js + 1 modules
var LeftOutlined = __webpack_require__(52063);
// EXTERNAL MODULE: ./src/.umi-production/exports.ts + 8 modules
var _umi_production_exports = __webpack_require__(66660);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/modal/index.js + 16 modules
var modal = __webpack_require__(43418);
// EXTERNAL MODULE: ./src/utils/fetch.ts
var fetch = __webpack_require__(97174);
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/ExportList/RepeatExportModel/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var RepeatExportModelmodules = ({"flex_box_center":"flex_box_center___NmZuL","flex_space_between":"flex_space_between___pCXi2","flex_box_vertical_center":"flex_box_vertical_center___cGU22","flex_box_center_end":"flex_box_center_end___OLEOh","flex_box_column":"flex_box_column___y8SJl","modal":"modal___VXplb"});
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
var jsx_runtime = __webpack_require__(37712);
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/ExportList/RepeatExportModel/index.tsx
var RepeatExportModel = function RepeatExportModel(_ref) {
var onOk = _ref.onOk,
dispatch = _ref.dispatch,
classroomList = _ref.classroomList;
var _useState = (0,_react_17_0_2_react.useState)(false),
_useState2 = slicedToArray_default()(_useState, 2),
loading = _useState2[0],
setLoading = _useState2[1];
var handleOk = /*#__PURE__*/function () {
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
var _classroomList$action;
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/homework_commons/".concat((_classroomList$action = classroomList.actionTabs) === null || _classroomList$action === void 0 || (_classroomList$action = _classroomList$action.params) === null || _classroomList$action === void 0 ? void 0 : _classroomList$action.categoryId, "/export_workspace_files.json"), {
method: 'post',
body: {
is_repeat_export: 1
}
});
case 3:
res = _context.sent;
if (res.status === 0) {
onOk();
dispatch({
type: 'classroomList/setActionTabs',
payload: {}
});
}
setLoading(false);
case 6:
case "end":
return _context.stop();
}
}, _callee);
}));
return function handleOk() {
return _ref2.apply(this, arguments);
};
}();
return /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
title: "\u6E29\u99A8\u63D0\u793A",
zIndex: 9999,
className: RepeatExportModelmodules.modal,
confirmLoading: loading,
open: classroomList.actionTabs.key === '重复导出提醒' ? true : false,
onCancel: function onCancel() {
dispatch({
type: 'classroomList/setActionTabs',
payload: {}
});
},
onOk: handleOk,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: "mb20",
children: " \u60A8\u5728\u5F53\u524D\u680F\u76EE\u4E2D\u5DF2\u5B58\u5728\u5BFC\u51FA\u8BB0\u5F55\uFF0C\u662F\u5426\u91CD\u65B0\u5BFC\u51FA\uFF1F"
})
});
};
/* harmony default export */ var ExportList_RepeatExportModel = ((0,_umi_production_exports.connect)(function (_ref3) {
var classroomList = _ref3.classroomList;
return {
classroomList: classroomList
};
})(RepeatExportModel));
// 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/_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/button/index.js
var es_button = __webpack_require__(3113);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/table/index.js + 85 modules
var table = __webpack_require__(72315);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/pagination/index.js + 10 modules
var pagination = __webpack_require__(41867);
// EXTERNAL MODULE: ./src/utils/export.ts
var utils_export = __webpack_require__(64125);
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/ExportList/index.tsx
dayjs_min_default().locale('zh-cn');
var ExportType = [{
id: 'exercise_score',
name: '试卷成绩'
}, {
id: 'shixun_work_list',
name: '课堂实验成绩'
}, {
id: 'normal_work_list',
name: '图文作业成绩'
}, {
id: 'group_work_list',
name: '分组作业成绩'
}, {
id: 'course_total_score',
name: '课堂总成绩'
}, {
id: 'course_total_homework',
name: '课堂作业成绩'
}, {
id: 'course_total_exercise_and_other',
name: '课堂试卷成绩'
}, {
id: 'course_member_act_score',
name: '课堂活跃度'
}, {
id: 'mooc_records',
name: '第三方慕课'
}, {
id: 'hack_work_list',
name: '编程作业成绩'
}, {
id: 'workspace_files',
name: '实验文件'
}, {
id: 'messages_statistics',
name: '课堂互动统计'
}];
var Status = [{
id: 'failed',
name: '失败'
}, {
id: 'running',
name: '执行中'
}, {
id: 'finished',
name: '完成'
}];
var ShixunsListPage = function ShixunsListPage(_ref) {
var _params$type;
var globalSetting = _ref.globalSetting,
loading = _ref.loading,
dispatch = _ref.dispatch;
var _useState = (0,_react_17_0_2_react.useState)(objectSpread2_default()({}, (0,_umi_production_exports.useParams)())),
_useState2 = slicedToArray_default()(_useState, 2),
params = _useState2[0],
setParams = _useState2[1];
var _useState3 = (0,_react_17_0_2_react.useState)(),
_useState4 = slicedToArray_default()(_useState3, 2),
Result = _useState4[0],
setResult = _useState4[1];
var _useState5 = (0,_react_17_0_2_react.useState)(true),
_useState6 = slicedToArray_default()(_useState5, 2),
tableLoading = _useState6[0],
setTableLoading = _useState6[1];
var _useState7 = (0,_react_17_0_2_react.useState)(1),
_useState8 = slicedToArray_default()(_useState7, 2),
page = _useState8[0],
setPage = _useState8[1];
var types = params === null || params === void 0 || (_params$type = params.type) === null || _params$type === void 0 ? void 0 : _params$type.split(',');
function init() {
return _init.apply(this, arguments);
} //根据类型不同 获取不同的数据
function _init() {
_init = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3() {
var current,
result,
_args3 = arguments;
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
current = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : 1;
setTableLoading(true);
_context3.next = 4;
return (0,fetch/* default */.ZP)("/api/courses/".concat(params.coursesId, "/export_records.json"), {
method: 'get',
params: {
page: current,
per_page: 10,
export_types: types
}
});
case 4:
result = _context3.sent;
if (result) {
setResult(result);
}
setTableLoading(false);
case 7:
case "end":
return _context3.stop();
}
}, _callee3);
}));
return _init.apply(this, arguments);
}
(0,_react_17_0_2_react.useEffect)(function () {
init(page);
}, []);
var columns = [{
title: '文件名',
dataIndex: 'filename',
ellipsis: true,
width: '30%',
render: function render(text, record, index) {
return /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
title: text,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: text || (record === null || record === void 0 ? void 0 : record.preview_filename)
})
});
}
}, {
title: '类型',
dataIndex: 'export_type',
ellipsis: true,
render: function render(text) {
return ExportType === null || ExportType === void 0 ? void 0 : ExportType.map(function (item) {
if (text === (item === null || item === void 0 ? void 0 : item.id)) {
return /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
title: item.name,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: item.name
})
});
}
});
}
}, {
title: '状态',
dataIndex: 'status',
ellipsis: true,
render: function render(text) {
return Status === null || Status === void 0 ? void 0 : Status.map(function (item) {
if (text === (item === null || item === void 0 ? void 0 : item.id)) {
return item.name;
}
});
}
}, {
title: '导出人',
dataIndex: 'user',
ellipsis: true,
render: function render(text) {
return text === null || text === void 0 ? void 0 : text.real_name;
}
}, {
title: '下载次数',
dataIndex: 'downloads'
}, {
title: '创建时间',
dataIndex: 'created_at',
width: '20%',
render: function render(text) {
return dayjs_min_default()(text).format('YYYY-MM-DD HH:mm:ss');
}
}, {
title: '操作',
ellipsis: true,
render: function render(invite_code, record, index) {
return /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
style: {
cursor: 'pointer',
color: '#0152d9'
},
onClick: function onClick() {
// if (record.export_type === 'workspace_files') {
// const currentTimestamp = new Date().getTime();
// const targetTimestamp = new Date(record.created_at).getTime();
// const timeDifference = targetTimestamp - currentTimestamp;
// const daysDifference = timeDifference / (1000 * 60 * 60 * 24);
// let course_workspace_file_time = parseInt(record?.course_workspace_file_time)
// const is30DaysDifference = Math.abs(daysDifference) <= course_workspace_file_time;
// if (is30DaysDifference) {
// Modal.info({
// icon: null,
// title: '温馨提示',
// content: <div>
// <div>因平台的实验数据储存容量和成本消耗较大,导出的实验文件自创建时间起将保存 <a>{course_workspace_file_time}</a> 天,超过保存期限会被自动清除,请尽快下载!</div>
// <div style={{ marginTop: 15, background: '#F6F7F9', padding: 10, color: 'rgba(0, 0, 0, 0.50)' }}>若您需要个性化的数据保存周期服务,我们可以提供相关技术支持,并根据您的需求收取定制费用。请<a onClick={() => {
// ContactAdmins(course_workspace_file_time)
// }}>联系平台运营</a>以获取详细的技术支持。</div>
// </div>,
// okText: '知道了'
// })
// getDownFile({ id: record?.id });
// } else {
// Modal.info({
// icon: null,
// title: '温馨提示',
// content: <div>
// <div>导出的实验文件已超过 {course_workspace_file_time} 天保存期限,为减少平台的实验数据储存容量和成本消耗,目前已被自动清除。</div>
// <div style={{ marginTop: 15, background: '#F6F7F9', padding: 10, color: 'rgba(0, 0, 0, 0.50)' }}>若您需要个性化的数据保存周期服务,我们可以提供相关技术支持,并根据您的需求收取定制费用。请<a onClick={() => {
// ContactAdmins(course_workspace_file_time)
// }}>联系平台运营</a>以获取详细的技术支持。</div>
// </div>,
// okText: '知道了'
// })
// }
// return;
// }
if (record.export_type === 'workspace_files') {
var currentTimestamp = new Date().getTime();
var targetTimestamp = new Date(record.created_at).getTime();
var timeDifference = targetTimestamp - currentTimestamp;
var daysDifference = timeDifference / (1000 * 60 * 60 * 24);
console.log(Math.abs(daysDifference), 22);
var is30DaysDifference = Math.abs(daysDifference) <= 30;
if (is30DaysDifference) {
modal/* default */.Z.info({
icon: null,
title: '温馨提示',
content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
children: "\u5BFC\u51FA\u7684\u5B9E\u9A8C\u6587\u4EF6\u81EA\u521B\u5EFA\u65F6\u95F4\u8D77\u9ED8\u8BA4\u4FDD\u755930\u5929\uFF0C\u8D85\u8FC7\u4FDD\u7559\u671F\u9650\u4F1A\u88AB\u81EA\u52A8\u6E05\u9664\uFF0C\u8BF7\u5C3D\u5FEB\u4E0B\u8F7D\uFF01\u5982\u8D85\u8FC7\u6587\u4EF6\u7684\u4FDD\u7559\u671F\u9650\u4ECD\u9700\u4E0B\u8F7D\uFF0C\u53EF\u91CD\u65B0\u5BFC\u51FA\u6587\u4EF6\u5E76\u4E0B\u8F7D\u3002"
}),
okText: '知道了'
});
(0,utils_export/* getDownFile */._k)({
id: record === null || record === void 0 ? void 0 : record.id
});
} else {
modal/* default */.Z.confirm({
icon: null,
title: '温馨提示',
content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
children: "\u8BE5\u5B9E\u9A8C\u6587\u4EF6\u8D85\u8FC7\u4FDD\u5B58\u671F\u9650\u5DF2\u88AB\u6E05\u9664\uFF0C\u662F\u5426\u91CD\u65B0\u5BFC\u51FA\uFF1F"
}),
okText: '确认',
onOk: function () {
var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
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/homework_commons/".concat(record.exportable_id, "/export_workspace_files.json"), {
method: 'post',
body: {
is_repeat_export: 1
}
});
case 2:
res = _context.sent;
if (res.status === 0) {
init();
}
case 4:
case "end":
return _context.stop();
}
}, _callee);
}));
function onOk() {
return _onOk.apply(this, arguments);
}
return onOk;
}(),
cancelText: '取消'
});
}
return;
}
(0,utils_export/* getDownFile */._k)({
id: record === null || record === void 0 ? void 0 : record.id
});
},
children: (record === null || record === void 0 ? void 0 : record.status) === 'finished' ? '下载' : ''
});
}
}].filter(function (item) {
return !!item;
});
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
style: {
background: '#fff'
},
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
style: {
fontSize: '16px',
height: '40px',
display: 'flex',
alignItems: 'center',
justifyContent: 'space-between',
background: '#fff',
padding: '10px 20px'
},
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(LeftOutlined/* default */.Z, {
onClick: function onClick() {
_umi_production_exports.history.back();
},
style: {
marginTop: '4px',
cursor: 'pointer',
marginRight: '5px'
}
}), ' ', "\u5BFC\u51FA\u5217\u8868"]
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
onClick: function onClick() {
setPage(1);
init();
},
type: "primary",
style: {
height: '30px',
borderRadius: '4px'
},
children: "\u66F4\u65B0"
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
style: {
background: '#fff',
marginBottom: 14
},
children: /*#__PURE__*/(0,jsx_runtime.jsx)(table/* default */.Z, {
rowKey: "id",
columns: columns,
dataSource: Result === null || Result === void 0 ? void 0 : Result.export_records,
pagination: false,
loading: tableLoading
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(pagination/* default */.Z, {
hideOnSinglePage: true,
pageSize: 10,
showSizeChanger: false,
onChange: /*#__PURE__*/function () {
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2(page, pagesize) {
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
setPage(page);
init(page);
case 2:
case "end":
return _context2.stop();
}
}, _callee2);
}));
return function (_x, _x2) {
return _ref2.apply(this, arguments);
};
}(),
style: {
textAlign: 'center',
paddingBottom: 20
},
current: page,
total: Result === null || Result === void 0 ? void 0 : Result.total_count
}), /*#__PURE__*/(0,jsx_runtime.jsx)(ExportList_RepeatExportModel, {
onOk: init
})]
});
};
/* harmony default export */ var ExportList = ((0,_umi_production_exports.connect)(function (_ref3) {
var loading = _ref3.loading,
globalSetting = _ref3.globalSetting;
return {
globalSetting: globalSetting,
loading: loading
};
})(ShixunsListPage));
/***/ })
}]);