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

995 lines
37 KiB

"use strict";
(self["webpackChunk"] = self["webpackChunk"] || []).push([[64217],{
/***/ 7918:
/*!******************************************************************************!*\
!*** ./node_modules/@ant-design/icons/es/components/AntdIcon.js + 6 modules ***!
\******************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
"Z": function() { return /* binding */ AntdIcon; }
});
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js
var objectSpread2 = __webpack_require__(1413);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
var slicedToArray = __webpack_require__(97685);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
var defineProperty = __webpack_require__(4942);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js
var objectWithoutProperties = __webpack_require__(45987);
// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(67294);
// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__(94184);
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
;// CONCATENATED MODULE: ./node_modules/@ant-design/icons/es/components/Context.js
var IconContext = /*#__PURE__*/(0,react.createContext)({});
/* harmony default export */ var Context = (IconContext);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js
var esm_typeof = __webpack_require__(71002);
// EXTERNAL MODULE: ./node_modules/@ctrl/tinycolor/dist/module/conversion.js
var conversion = __webpack_require__(86500);
// EXTERNAL MODULE: ./node_modules/@ctrl/tinycolor/dist/module/format-input.js
var format_input = __webpack_require__(1350);
;// CONCATENATED MODULE: ./node_modules/@ant-design/icons/node_modules/@ant-design/colors/es/generate.js
var hueStep = 2; // 色相阶梯
var saturationStep = 0.16; // 饱和度阶梯,浅色部分
var saturationStep2 = 0.05; // 饱和度阶梯,深色部分
var brightnessStep1 = 0.05; // 亮度阶梯,浅色部分
var brightnessStep2 = 0.15; // 亮度阶梯,深色部分
var lightColorCount = 5; // 浅色数量,主色上
var darkColorCount = 4; // 深色数量,主色下
// 暗色主题颜色映射关系表
var darkColorMap = [{
index: 7,
opacity: 0.15
}, {
index: 6,
opacity: 0.25
}, {
index: 5,
opacity: 0.3
}, {
index: 5,
opacity: 0.45
}, {
index: 5,
opacity: 0.65
}, {
index: 5,
opacity: 0.85
}, {
index: 4,
opacity: 0.9
}, {
index: 3,
opacity: 0.95
}, {
index: 2,
opacity: 0.97
}, {
index: 1,
opacity: 0.98
}];
// Wrapper function ported from TinyColor.prototype.toHsv
// Keep it here because of `hsv.h * 360`
function toHsv(_ref) {
var r = _ref.r,
g = _ref.g,
b = _ref.b;
var hsv = (0,conversion/* rgbToHsv */.py)(r, g, b);
return {
h: hsv.h * 360,
s: hsv.s,
v: hsv.v
};
} // Wrapper function ported from TinyColor.prototype.toHexString
// Keep it here because of the prefix `#`
function toHex(_ref2) {
var r = _ref2.r,
g = _ref2.g,
b = _ref2.b;
return "#".concat((0,conversion/* rgbToHex */.vq)(r, g, b, false));
} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.
// Amount in range [0, 1]
// Assume color1 & color2 has no alpha, since the following src code did so.
function mix(rgb1, rgb2, amount) {
var p = amount / 100;
var rgb = {
r: (rgb2.r - rgb1.r) * p + rgb1.r,
g: (rgb2.g - rgb1.g) * p + rgb1.g,
b: (rgb2.b - rgb1.b) * p + rgb1.b
};
return rgb;
}
function getHue(hsv, i, light) {
var hue; // 根据色相不同,色相转向不同
if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {
hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;
} else {
hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;
}
if (hue < 0) {
hue += 360;
} else if (hue >= 360) {
hue -= 360;
}
return hue;
}
function getSaturation(hsv, i, light) {
// grey color don't change saturation
if (hsv.h === 0 && hsv.s === 0) {
return hsv.s;
}
var saturation;
if (light) {
saturation = hsv.s - saturationStep * i;
} else if (i === darkColorCount) {
saturation = hsv.s + saturationStep;
} else {
saturation = hsv.s + saturationStep2 * i;
} // 边界值修正
if (saturation > 1) {
saturation = 1;
} // 第一格的 s 限制在 0.06-0.1 之间
if (light && i === lightColorCount && saturation > 0.1) {
saturation = 0.1;
}
if (saturation < 0.06) {
saturation = 0.06;
}
return Number(saturation.toFixed(2));
}
function getValue(hsv, i, light) {
var value;
if (light) {
value = hsv.v + brightnessStep1 * i;
} else {
value = hsv.v - brightnessStep2 * i;
}
if (value > 1) {
value = 1;
}
return Number(value.toFixed(2));
}
function generate(color) {
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var patterns = [];
var pColor = (0,format_input/* inputToRGB */.uA)(color);
for (var i = lightColorCount; i > 0; i -= 1) {
var hsv = toHsv(pColor);
var colorString = toHex((0,format_input/* inputToRGB */.uA)({
h: getHue(hsv, i, true),
s: getSaturation(hsv, i, true),
v: getValue(hsv, i, true)
}));
patterns.push(colorString);
}
patterns.push(toHex(pColor));
for (var _i = 1; _i <= darkColorCount; _i += 1) {
var _hsv = toHsv(pColor);
var _colorString = toHex((0,format_input/* inputToRGB */.uA)({
h: getHue(_hsv, _i),
s: getSaturation(_hsv, _i),
v: getValue(_hsv, _i)
}));
patterns.push(_colorString);
} // dark theme patterns
if (opts.theme === 'dark') {
return darkColorMap.map(function (_ref3) {
var index = _ref3.index,
opacity = _ref3.opacity;
var darkColorString = toHex(mix((0,format_input/* inputToRGB */.uA)(opts.backgroundColor || '#141414'), (0,format_input/* inputToRGB */.uA)(patterns[index]), opacity * 100));
return darkColorString;
});
}
return patterns;
}
;// CONCATENATED MODULE: ./node_modules/@ant-design/icons/node_modules/@ant-design/colors/es/index.js
var presetPrimaryColors = {
red: '#F5222D',
volcano: '#FA541C',
orange: '#FA8C16',
gold: '#FAAD14',
yellow: '#FADB14',
lime: '#A0D911',
green: '#52C41A',
cyan: '#13C2C2',
blue: '#1677FF',
geekblue: '#2F54EB',
purple: '#722ED1',
magenta: '#EB2F96',
grey: '#666666'
};
var presetPalettes = {};
var presetDarkPalettes = {};
Object.keys(presetPrimaryColors).forEach(function (key) {
presetPalettes[key] = generate(presetPrimaryColors[key]);
presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes
presetDarkPalettes[key] = generate(presetPrimaryColors[key], {
theme: 'dark',
backgroundColor: '#141414'
});
presetDarkPalettes[key].primary = presetDarkPalettes[key][5];
});
var red = presetPalettes.red;
var volcano = presetPalettes.volcano;
var gold = presetPalettes.gold;
var orange = presetPalettes.orange;
var yellow = presetPalettes.yellow;
var lime = presetPalettes.lime;
var green = presetPalettes.green;
var cyan = presetPalettes.cyan;
var blue = presetPalettes.blue;
var geekblue = presetPalettes.geekblue;
var purple = presetPalettes.purple;
var magenta = presetPalettes.magenta;
var grey = presetPalettes.grey;
var gray = presetPalettes.grey;
// EXTERNAL MODULE: ./node_modules/rc-util/es/warning.js
var warning = __webpack_require__(80334);
// EXTERNAL MODULE: ./node_modules/rc-util/es/Dom/dynamicCSS.js
var dynamicCSS = __webpack_require__(44958);
;// CONCATENATED MODULE: ./node_modules/@ant-design/icons/es/utils.js
function utils_warning(valid, message) {
(0,warning/* default */.ZP)(valid, "[@ant-design/icons] ".concat(message));
}
function isIconDefinition(target) {
return (0,esm_typeof/* default */.Z)(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && ((0,esm_typeof/* default */.Z)(target.icon) === 'object' || typeof target.icon === 'function');
}
function normalizeAttrs() {
var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return Object.keys(attrs).reduce(function (acc, key) {
var val = attrs[key];
switch (key) {
case 'class':
acc.className = val;
delete acc.class;
break;
default:
acc[key] = val;
}
return acc;
}, {});
}
function utils_generate(node, key, rootProps) {
if (!rootProps) {
return /*#__PURE__*/react.createElement(node.tag, (0,objectSpread2/* default */.Z)({
key: key
}, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {
return utils_generate(child, "".concat(key, "-").concat(node.tag, "-").concat(index));
}));
}
return /*#__PURE__*/react.createElement(node.tag, (0,objectSpread2/* default */.Z)((0,objectSpread2/* default */.Z)({
key: key
}, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {
return utils_generate(child, "".concat(key, "-").concat(node.tag, "-").concat(index));
}));
}
function getSecondaryColor(primaryColor) {
// choose the second color
return generate(primaryColor)[0];
}
function normalizeTwoToneColors(twoToneColor) {
if (!twoToneColor) {
return [];
}
return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];
}
// These props make sure that the SVG behaviours like general text.
// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4
var svgBaseProps = {
width: '1em',
height: '1em',
fill: 'currentColor',
'aria-hidden': 'true',
focusable: 'false'
};
var iconStyles = "\n.anticon {\n display: inline-block;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.anticon > * {\n line-height: 1;\n}\n\n.anticon svg {\n display: inline-block;\n}\n\n.anticon::before {\n display: none;\n}\n\n.anticon .anticon-icon {\n display: block;\n}\n\n.anticon[tabindex] {\n cursor: pointer;\n}\n\n.anticon-spin::before,\n.anticon-spin {\n display: inline-block;\n -webkit-animation: loadingCircle 1s infinite linear;\n animation: loadingCircle 1s infinite linear;\n}\n\n@-webkit-keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n";
var useInsertStyles = function useInsertStyles() {
var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;
var _useContext = (0,react.useContext)(Context),
csp = _useContext.csp,
prefixCls = _useContext.prefixCls;
var mergedStyleStr = styleStr;
if (prefixCls) {
mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);
}
(0,react.useEffect)(function () {
(0,dynamicCSS/* updateCSS */.hq)(mergedStyleStr, '@ant-design-icons', {
prepend: true,
csp: csp
});
}, []);
};
;// CONCATENATED MODULE: ./node_modules/@ant-design/icons/es/components/IconBase.js
var _excluded = ["icon", "className", "onClick", "style", "primaryColor", "secondaryColor"];
var twoToneColorPalette = {
primaryColor: '#333',
secondaryColor: '#E6E6E6',
calculated: false
};
function setTwoToneColors(_ref) {
var primaryColor = _ref.primaryColor,
secondaryColor = _ref.secondaryColor;
twoToneColorPalette.primaryColor = primaryColor;
twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);
twoToneColorPalette.calculated = !!secondaryColor;
}
function getTwoToneColors() {
return (0,objectSpread2/* default */.Z)({}, twoToneColorPalette);
}
var IconBase = function IconBase(props) {
var icon = props.icon,
className = props.className,
onClick = props.onClick,
style = props.style,
primaryColor = props.primaryColor,
secondaryColor = props.secondaryColor,
restProps = (0,objectWithoutProperties/* default */.Z)(props, _excluded);
var colors = twoToneColorPalette;
if (primaryColor) {
colors = {
primaryColor: primaryColor,
secondaryColor: secondaryColor || getSecondaryColor(primaryColor)
};
}
useInsertStyles();
utils_warning(isIconDefinition(icon), "icon should be icon definiton, but got ".concat(icon));
if (!isIconDefinition(icon)) {
return null;
}
var target = icon;
if (target && typeof target.icon === 'function') {
target = (0,objectSpread2/* default */.Z)((0,objectSpread2/* default */.Z)({}, target), {}, {
icon: target.icon(colors.primaryColor, colors.secondaryColor)
});
}
return utils_generate(target.icon, "svg-".concat(target.name), (0,objectSpread2/* default */.Z)({
className: className,
onClick: onClick,
style: style,
'data-icon': target.name,
width: '1em',
height: '1em',
fill: 'currentColor',
'aria-hidden': 'true'
}, restProps));
};
IconBase.displayName = 'IconReact';
IconBase.getTwoToneColors = getTwoToneColors;
IconBase.setTwoToneColors = setTwoToneColors;
/* harmony default export */ var components_IconBase = (IconBase);
;// CONCATENATED MODULE: ./node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js
function setTwoToneColor(twoToneColor) {
var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),
_normalizeTwoToneColo2 = (0,slicedToArray/* default */.Z)(_normalizeTwoToneColo, 2),
primaryColor = _normalizeTwoToneColo2[0],
secondaryColor = _normalizeTwoToneColo2[1];
return components_IconBase.setTwoToneColors({
primaryColor: primaryColor,
secondaryColor: secondaryColor
});
}
function getTwoToneColor() {
var colors = components_IconBase.getTwoToneColors();
if (!colors.calculated) {
return colors.primaryColor;
}
return [colors.primaryColor, colors.secondaryColor];
}
;// CONCATENATED MODULE: ./node_modules/@ant-design/icons/es/components/AntdIcon.js
var AntdIcon_excluded = ["className", "icon", "spin", "rotate", "tabIndex", "onClick", "twoToneColor"];
// Initial setting
// should move it to antd main repo?
setTwoToneColor('#1890ff');
var Icon = /*#__PURE__*/react.forwardRef(function (props, ref) {
var _classNames;
var className = props.className,
icon = props.icon,
spin = props.spin,
rotate = props.rotate,
tabIndex = props.tabIndex,
onClick = props.onClick,
twoToneColor = props.twoToneColor,
restProps = (0,objectWithoutProperties/* default */.Z)(props, AntdIcon_excluded);
var _React$useContext = react.useContext(Context),
_React$useContext$pre = _React$useContext.prefixCls,
prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre,
rootClassName = _React$useContext.rootClassName;
var classString = classnames_default()(rootClassName, prefixCls, (_classNames = {}, (0,defineProperty/* default */.Z)(_classNames, "".concat(prefixCls, "-").concat(icon.name), !!icon.name), (0,defineProperty/* default */.Z)(_classNames, "".concat(prefixCls, "-spin"), !!spin || icon.name === 'loading'), _classNames), className);
var iconTabIndex = tabIndex;
if (iconTabIndex === undefined && onClick) {
iconTabIndex = -1;
}
var svgStyle = rotate ? {
msTransform: "rotate(".concat(rotate, "deg)"),
transform: "rotate(".concat(rotate, "deg)")
} : undefined;
var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),
_normalizeTwoToneColo2 = (0,slicedToArray/* default */.Z)(_normalizeTwoToneColo, 2),
primaryColor = _normalizeTwoToneColo2[0],
secondaryColor = _normalizeTwoToneColo2[1];
return /*#__PURE__*/react.createElement("span", (0,objectSpread2/* default */.Z)((0,objectSpread2/* default */.Z)({
role: "img",
"aria-label": icon.name
}, restProps), {}, {
ref: ref,
tabIndex: iconTabIndex,
onClick: onClick,
className: classString
}), /*#__PURE__*/react.createElement(components_IconBase, {
icon: icon,
primaryColor: primaryColor,
secondaryColor: secondaryColor,
style: svgStyle
}));
});
Icon.displayName = 'AntdIcon';
Icon.getTwoToneColor = getTwoToneColor;
Icon.setTwoToneColor = setTwoToneColor;
/* harmony default export */ var AntdIcon = (Icon);
/***/ }),
/***/ 37653:
/*!*****************************************************************!*\
!*** ./node_modules/@ant-design/icons/es/icons/LeftOutlined.js ***!
\*****************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ 1413);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 67294);
/* harmony import */ var _ant_design_icons_svg_es_asn_LeftOutlined__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ant-design/icons-svg/es/asn/LeftOutlined */ 26554);
/* harmony import */ var _components_AntdIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/AntdIcon */ 7918);
// GENERATE BY ./scripts/generate.ts
// DON NOT EDIT IT MANUALLY
var LeftOutlined = function LeftOutlined(props, ref) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components_AntdIcon__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)({}, props), {}, {
ref: ref,
icon: _ant_design_icons_svg_es_asn_LeftOutlined__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z
}));
};
LeftOutlined.displayName = 'LeftOutlined';
/* harmony default export */ __webpack_exports__["Z"] = (/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(LeftOutlined));
/***/ }),
/***/ 86099:
/*!***************************************************************************!*\
!*** ./src/pages/Classrooms/Lists/Video/Statistics/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 */ Statistics; }
});
// EXTERNAL MODULE: ./node_modules/antd/es/pagination/style/index.js + 1 modules
var style = __webpack_require__(14182);
// EXTERNAL MODULE: ./node_modules/antd/es/pagination/index.js + 10 modules
var pagination = __webpack_require__(260);
// EXTERNAL MODULE: ./node_modules/antd/es/table/style/index.js + 1 modules
var table_style = __webpack_require__(71854);
// EXTERNAL MODULE: ./node_modules/antd/es/table/index.js + 58 modules
var table = __webpack_require__(67250);
// EXTERNAL MODULE: ./node_modules/antd/es/row/style/index.js
var row_style = __webpack_require__(13062);
// EXTERNAL MODULE: ./node_modules/antd/es/row/index.js
var row = __webpack_require__(71230);
// EXTERNAL MODULE: ./node_modules/antd/es/col/style/index.js
var col_style = __webpack_require__(89032);
// EXTERNAL MODULE: ./node_modules/antd/es/col/index.js
var col = __webpack_require__(15746);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectSpread2.js
var objectSpread2 = __webpack_require__(42122);
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(27424);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(67294);
// EXTERNAL MODULE: ./src/utils/fetch.ts
var fetch = __webpack_require__(84519);
// EXTERNAL MODULE: ./src/utils/util.tsx
var util = __webpack_require__(29427);
// EXTERNAL MODULE: ./src/.umi-production/exports.ts + 8 modules
var _umi_production_exports = __webpack_require__(89214);
// EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/LeftOutlined.js
var LeftOutlined = __webpack_require__(37653);
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Video/Statistics/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var Statisticsmodules = ({"flex_box_center":"flex_box_center___OtxZ1","flex_space_between":"flex_space_between___Iv0vg","flex_box_vertical_center":"flex_box_vertical_center___lRjIl","flex_box_center_end":"flex_box_center_end___RZyEa","flex_box_column":"flex_box_column___tnIy3","title":"title___BVf_l","statisticsWrp":"statisticsWrp___AFSeR","statistics":"statistics___VhLdy","infoWrp":"infoWrp___v6ya3","divwidth":"divwidth___QoNXd","table_caozuo":"table_caozuo___JPF0b","change_button":"change_button___C7wgN","button_no":"button_no___HL5ih","button_active":"button_active___zXAgk","caozuo_button":"caozuo_button___R4kUc","button_img":"button_img___H7JFl","studentListTable":"studentListTable___xqGFG"});
;// CONCATENATED MODULE: ./src/assets/images/daochu.png
var daochu_namespaceObject = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAcCAYAAAB/E6/TAAAAAXNSR0IArs4c6QAAAtpJREFUSEu1lm9oTWEcx7+/57rbLLWE9oJQxPy7O2erSXmhRHlDEnnjxTkXS/6k1ChFWMv2Bomku3PLG3snEl5IvDB/yr3nXCEWa01ZQ8SV7e7u+WqzLbu7f3Yuztvn+/t+zvP8vr/nHEERj2m5x+JR46SfUvEjHtUattcnIs3x1tDxydYXDQJZKoJjccc4NRnYpEG1lrdyUKFKaakkdBOBwDBA5KjrVDcVghUEmba3EUQzwapcZgrqcCwaaskHywuqsRKWFkZAqvwm0gcVrIq3Lu3KpcsJMq2OWZAfHSQq8h6LSL9ANsed0O2idmTaXphkZKQP7wFcFeCJKHyh5h0SQUBSCtwSixo3i+6RYXtnQB4UyK1yKd3+0Kn6PhZvy+sXoVCprW4kdL0QZDgzuUSm5Q0l61AgWDb72eXFn/7UGZaXVKJ2QOGtJpdn8xBQBwVPnkaqO/ODwq5Not51jJWZRsbOxKYpDHxIM/0ob1BEkuUlWNB+qbo3547q9r6akfrZf911jNXZ3rgmnNintT4/3CeFTRD5OKrTohQG040g1quArI1Fqu/ljbcZ9i5WlE5puH9xWTITZlreAYLnRNAVd4z5E9bDicPU+rSIWhd3Qnezgjbs7yj9OZgK9mk1sz81sLCiLPA40+hbX3qPJluKBpm2ewRE49gVUyBSRYMM2+sGOWf0HhNhd95BZCAZc1Zc8310pu32kpgF4KsbNaZPZkayaczMHtXufjGXg+mlo2KSbb+vHaEIe/yD5E1QwRqgbBsXBsP2ekBW+jfMXSFAO5S6kQl6jhzT/TdwEWkjuX0s3kPffwIn/sY0a61IEuS0MVDdLndRKo3X/xw0YjhuYA3bi4E0/wdsHKjGSjRo6Ob/DjLDL+dRD3QCLPgP4fdlJtx1pu21k1zl16iQfiIo7O6gxpVChX7XBWpNPBp6MO6oaizvLIF6gmV+DXNE/F3J1JK6pxeWfP4Fq1RgLKZBv/kAAAAASUVORK5CYII=";
// EXTERNAL MODULE: ./src/utils/export.ts
var utils_export = __webpack_require__(12034);
// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
var jsx_runtime = __webpack_require__(85893);
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Video/Statistics/index.tsx
var ShixunsListPage = function ShixunsListPage(_ref) {
var video = _ref.video,
globalSetting = _ref.globalSetting,
loading = _ref.loading,
dispatch = _ref.dispatch;
var _useState = (0,react.useState)(objectSpread2_default()({}, (0,_umi_production_exports.useParams)())),
_useState2 = slicedToArray_default()(_useState, 2),
params = _useState2[0],
setParams = _useState2[1];
var _useSearchParams = (0,_umi_production_exports.useSearchParams)(),
_useSearchParams2 = slicedToArray_default()(_useSearchParams, 1),
searchParams = _useSearchParams2[0];
var location = (0,_umi_production_exports.useLocation)();
var _useState3 = (0,react.useState)({}),
_useState4 = slicedToArray_default()(_useState3, 2),
sortObj = _useState4[0],
setSortObj = _useState4[1];
var _useState5 = (0,react.useState)(''),
_useState6 = slicedToArray_default()(_useState5, 2),
studentIdSort = _useState6[0],
setStudentIdSort = _useState6[1];
var _useState7 = (0,react.useState)('a'),
_useState8 = slicedToArray_default()(_useState7, 2),
type = _useState8[0],
setType = _useState8[1];
var _useState9 = (0,react.useState)(),
_useState10 = slicedToArray_default()(_useState9, 2),
StudentList = _useState10[0],
setStudentList = _useState10[1];
var _useState11 = (0,react.useState)(),
_useState12 = slicedToArray_default()(_useState11, 2),
page = _useState12[0],
setPage = _useState12[1];
var videoStatisticsList = video.videoStatisticsList,
videoStatistics = video.videoStatistics;
params['category'] = searchParams.get("category_id");
(0,react.useEffect)(function () {
dispatch({
type: 'video/getVideoStatisticsList',
payload: objectSpread2_default()({}, params)
});
dispatch({
type: 'video/getVideoStatistics',
payload: objectSpread2_default()(objectSpread2_default()({}, params), {}, {
all: true
})
});
}, [params.coursesId]);
var columns = [{
title: '序号',
dataIndex: 'name',
render: function render(text, record, index) {
return index + 1;
}
}, {
title: '视频名称',
dataIndex: 'title'
}, {
title: '观看人数',
dataIndex: 'people_num',
sortOrder: sortObj['people_num'],
sortDirections: ['descend', 'ascend'],
sorter: function sorter(a, b) {
return a.people_num - b.people_num;
},
render: function render(text) {
return text || '--';
}
}, {
title: '观看时长',
dataIndex: 'total_time',
sortOrder: sortObj['total_time'],
sortDirections: ['descend', 'ascend'],
sorter: function sorter(a, b) {
return a.total_time - b.total_time;
},
render: function render(text) {
return /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: text ? (0,util/* toTimeFormat */.li)(text) : "--"
});
}
}, {
title: '发布人',
dataIndex: 'user_name'
}, {
title: '操作',
dataInex: 'action',
render: function render(text, record) {
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)(_umi_production_exports.Link, {
to: "/classrooms/".concat(params.coursesId, "/video/").concat(params.categoryId, "/statistics/").concat(record.id),
className: "c-blue",
children: "\u8BE6\u60C5"
})
});
}
}];
var columns_student = [{
title: '姓名',
dataIndex: 'user_name',
align: "center",
fixed: 'left',
render: function render(text, record, index) {
return /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: text
});
}
}, {
title: '学号',
dataIndex: 'student_id',
align: "center"
}, {
title: '学习视频数',
align: "center",
dataIndex: 'num',
render: function render(text) {
return /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "c-black",
children: text
});
}
}, {
title: '班级',
align: 'center',
dataIndex: 'course_group_name'
}, {
title: '累计学习时长',
align: "center",
dataIndex: 'total_duration',
render: function render(text) {
return /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "c-black",
children: (0,util/* toTimeFormat */.li)(parseInt(text)) || '--'
});
}
}, {
title: '平均学习完成度',
align: "center",
dataIndex: 'rate',
render: function render(text, record) {
return /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "c-black",
children: text ? text + "%" : '0%'
});
}
}, {
title: '开始学习时间',
align: "center",
dataIndex: 'start_at',
render: function render(text, record) {
return /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "c-black",
children: text || '--'
});
}
}, {
title: '最后学习时间',
align: "center",
dataIndex: 'end_at',
render: function render(text, record) {
return /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "c-black",
children: text || '--'
});
}
}, {
title: '操作',
align: "center",
fixed: 'right',
dataIndex: 'course_group_name',
render: function render(text, record) {
return /*#__PURE__*/(0,jsx_runtime.jsx)(_umi_production_exports.Link, {
to: "/classrooms/".concat(params === null || params === void 0 ? void 0 : params.coursesId, "/video_statistics/").concat(params === null || params === void 0 ? void 0 : params.categoryId, "/Student/").concat(record === null || record === void 0 ? void 0 : record.user_id),
children: "\u8BE6\u60C5"
});
}
}];
var getStudentList = function getStudentList(pageNum) {
setPage(pageNum);
(0,fetch/* default */.ZP)("/api/courses/".concat(params === null || params === void 0 ? void 0 : params.coursesId, "/video_study_statics.json"), {
method: 'get',
params: {
page: pageNum,
per_page: 10,
course_id: params === null || params === void 0 ? void 0 : params.coursesId,
course_group_id: -1
}
}).then(function (result) {
if (result) {
setStudentList(result);
}
});
};
return /*#__PURE__*/(0,jsx_runtime.jsxs)("section", {
className: Statisticsmodules.bg,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("aside", {
className: Statisticsmodules.statisticsWrp,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
justify: "space-between",
className: "mt10 mb20",
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(col/* default */.Z, {
span: "16",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(LeftOutlined/* default */.Z, {
className: "current mr10 font16",
onClick: function onClick() {
return _umi_production_exports.history.back();
}
}), /*#__PURE__*/(0,jsx_runtime.jsx)("strong", {
className: "font16",
children: "\u89C6\u9891\u7EDF\u8BA1\u603B\u89C8"
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(col/* default */.Z, {
span: "8",
className: "c-light-black tr",
children: ["\u64AD\u653E\u6570\u636E\u4ECE ", videoStatistics.begin_at, " \u5F00\u59CB\u7EDF\u8BA1"]
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
justify: "space-between",
className: Statisticsmodules.statistics,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(col/* default */.Z, {
span: "7",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: "\u89C2\u770B\u4EBA\u6570 \uFF08\u4EBA\uFF09"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), /*#__PURE__*/(0,jsx_runtime.jsx)("strong", {
title: videoStatistics.num,
className: Statisticsmodules.divwidth,
children: videoStatistics.num
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(col/* default */.Z, {
span: "7",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: "\u89C2\u770B\u603B\u4EBA\u6B21 \uFF08\u6B21\uFF09"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), /*#__PURE__*/(0,jsx_runtime.jsx)("strong", {
title: videoStatistics.freq,
className: Statisticsmodules.divwidth,
children: videoStatistics.freq
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(col/* default */.Z, {
span: "7",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: "\u603B\u89C2\u770B\u65F6\u957F \uFF08\u65F6\uFF09"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), /*#__PURE__*/(0,jsx_runtime.jsx)("strong", {
title: videoStatistics.total_duration ? (0,util/* toTimeFormat */.li)(videoStatistics.total_duration) : "--",
className: Statisticsmodules.divwidth,
children: videoStatistics.total_duration ? (0,util/* toTimeFormat */.li)(videoStatistics.total_duration) : "--"
})]
})]
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("aside", {
className: Statisticsmodules.infoWrp,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)("strong", {
className: "font16",
children: "\u7EDF\u8BA1\u5217\u8868"
})
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Statisticsmodules.table_caozuo,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Statisticsmodules.change_button,
children: type === 'a' ? /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
style: {
display: 'flex'
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Statisticsmodules.button_active,
children: "\u89C6\u9891\u7EF4\u5EA6"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Statisticsmodules.button_no,
onClick: function onClick() {
setType('b');
getStudentList(1);
},
children: "\u5B66\u751F\u7EF4\u5EA6"
})]
}) : /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
style: {
display: 'flex'
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Statisticsmodules.button_no,
onClick: function onClick() {
setType('a');
},
children: "\u89C6\u9891\u7EF4\u5EA6"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Statisticsmodules.button_active,
children: "\u5B66\u751F\u7EF4\u5EA6"
})]
})
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Statisticsmodules.caozuo_button,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
src: daochu_namespaceObject,
className: Statisticsmodules.button_img
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
onClick: function onClick() {
(0,utils_export/* ExportVideoStudy */.c6)({
coursesId: params === null || params === void 0 ? void 0 : params.coursesId,
course_group_id: -1
});
},
children: "\u5BFC\u51FA\u6570\u636E"
})]
})]
}), type == 'a' && /*#__PURE__*/(0,jsx_runtime.jsx)(table/* default */.Z, {
className: "mt10",
loading: loading['video/getVideoStatisticsList'],
hideOnSinglePage: true,
pagination: false,
dataSource: videoStatisticsList.videos,
columns: columns,
onChange: function onChange(a, b, c) {
sortObj = {};
if (c.order === undefined) {
sortObj[c.field] = 'descend';
switch (c.field) {
case 'student_id':
setStudentIdSort('descend');
params['order'] = c.field + '-desc';
break;
}
} else {
params['order'] = c.field + '-' + c.order.replace("end", "");
sortObj[c.field] = c.order;
}
setSortObj(objectSpread2_default()({}, sortObj));
dispatch({
type: 'video/getVideoStatisticsList',
payload: objectSpread2_default()({}, params)
});
}
}), type == 'b' && /*#__PURE__*/(0,jsx_runtime.jsxs)("aside", {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(table/* default */.Z, {
dataSource: StudentList === null || StudentList === void 0 ? void 0 : StudentList.student,
pagination: false,
columns: columns_student,
className: Statisticsmodules.studentListTable,
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/(0,jsx_runtime.jsx)("aside", {
className: "tc mb50 mt30 mb20",
children: /*#__PURE__*/(0,jsx_runtime.jsx)(pagination/* default */.Z, {
hideOnSinglePage: true,
showSizeChanger: false,
onChange: function onChange(current, pageSize) {
getStudentList(current);
},
current: page || 1,
defaultPageSize: 10,
total: StudentList === null || StudentList === void 0 ? void 0 : StudentList.count
})
})]
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("aside", {
className: "tc mb50 mt30",
children: /*#__PURE__*/(0,jsx_runtime.jsx)(pagination/* default */.Z, {
showSizeChanger: false,
onChange: function onChange(page) {
params.page = page;
dispatch({
type: 'video/getVideoStatisticsList',
payload: objectSpread2_default()({}, params)
});
},
defaultCurrent: 1,
current: params.page || 1,
pageSize: 20,
hideOnSinglePage: true,
total: videoStatisticsList === null || videoStatisticsList === void 0 ? void 0 : videoStatisticsList.count
})
})]
});
};
/* harmony default export */ var Statistics = ((0,_umi_production_exports.connect)(function (_ref2) {
var video = _ref2.video,
loading = _ref2.loading,
globalSetting = _ref2.globalSetting;
return {
video: video,
globalSetting: globalSetting,
loading: loading.effects
};
})(ShixunsListPage));
/***/ })
}]);