|
|
"use strict";
|
|
|
(self["webpackChunk"] = self["webpackChunk"] || []).push([[39332],{
|
|
|
|
|
|
/***/ 46061:
|
|
|
/*!********************************************************************************************************!*\
|
|
|
!*** ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/UploadOutlined.js + 1 modules ***!
|
|
|
\********************************************************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ icons_UploadOutlined; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.25.6@@babel/runtime/helpers/esm/extends.js
|
|
|
var esm_extends = __webpack_require__(33614);
|
|
|
// 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/UploadOutlined.js
|
|
|
// This icon file is generated automatically.
|
|
|
var UploadOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z" } }] }, "name": "upload", "theme": "outlined" };
|
|
|
/* harmony default export */ var asn_UploadOutlined = (UploadOutlined);
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
|
var AntdIcon = __webpack_require__(1393);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/UploadOutlined.js
|
|
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var UploadOutlined_UploadOutlined = function UploadOutlined(props, ref) {
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
|
ref: ref,
|
|
|
icon: asn_UploadOutlined
|
|
|
}));
|
|
|
};
|
|
|
|
|
|
/** */
|
|
|
var RefIcon = /*#__PURE__*/_react_17_0_2_react.forwardRef(UploadOutlined_UploadOutlined);
|
|
|
if (false) {}
|
|
|
/* harmony default export */ var icons_UploadOutlined = (RefIcon);
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 3896:
|
|
|
/*!************************************************************!*\
|
|
|
!*** ./src/components/ChunkedUpload/index.tsx + 1 modules ***!
|
|
|
\************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ components_ChunkedUpload; }
|
|
|
});
|
|
|
|
|
|
// 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/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/asyncToGenerator.js
|
|
|
var asyncToGenerator = __webpack_require__(41498);
|
|
|
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/slicedToArray.js
|
|
|
var slicedToArray = __webpack_require__(79800);
|
|
|
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
// EXTERNAL MODULE: ./src/utils/fetch.ts
|
|
|
var fetch = __webpack_require__(49105);
|
|
|
// EXTERNAL MODULE: ./node_modules/_uuid@8.3.0@uuid/dist/esm-browser/v4.js + 4 modules
|
|
|
var v4 = __webpack_require__(1012);
|
|
|
// 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);
|
|
|
;// CONCATENATED MODULE: ./src/components/ChunkedUpload/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var ChunkedUploadmodules = ({"upload":"upload___jpwPD"});
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/components/ChunkedUpload/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var ChunkedUpload = function ChunkedUpload(_ref, ref) {
|
|
|
var _ref$chunkSize = _ref.chunkSize,
|
|
|
chunkSize = _ref$chunkSize === void 0 ? 1024 * 1024 * 2 : _ref$chunkSize,
|
|
|
_ref$options = _ref.options,
|
|
|
options = _ref$options === void 0 ? {} : _ref$options,
|
|
|
onCancel = _ref.onCancel,
|
|
|
onComplete = _ref.onComplete,
|
|
|
onError = _ref.onError,
|
|
|
onProgress = _ref.onProgress,
|
|
|
onBefore = _ref.onBefore,
|
|
|
onBeginInitFile = _ref.onBeginInitFile,
|
|
|
children = _ref.children,
|
|
|
accept = _ref.accept,
|
|
|
className = _ref.className,
|
|
|
_ref$style = _ref.style,
|
|
|
style = _ref$style === void 0 ? {} : _ref$style,
|
|
|
_ref$concurrency = _ref.concurrency,
|
|
|
concurrency = _ref$concurrency === void 0 ? 4 : _ref$concurrency;
|
|
|
var _useState = (0,_react_17_0_2_react.useState)('ready'),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
uploadStatus = _useState2[0],
|
|
|
setUploadStatus = _useState2[1];
|
|
|
|
|
|
//组件内调试
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(0),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
progress = _useState4[0],
|
|
|
setProgress = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(''),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
uploadStatusMessage = _useState6[0],
|
|
|
setUploadStatusMessage = _useState6[1];
|
|
|
var _useState7 = (0,_react_17_0_2_react.useState)(null),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
file = _useState8[0],
|
|
|
setFile = _useState8[1];
|
|
|
var abortControllerRef = (0,_react_17_0_2_react.useRef)(null);
|
|
|
var domId = (0,_react_17_0_2_react.useRef)((0,v4/* default */.Z)());
|
|
|
var cancelStatus = (0,_react_17_0_2_react.useRef)(false);
|
|
|
(0,_react_17_0_2_react.useImperativeHandle)(ref, function () {
|
|
|
return {
|
|
|
cancel: cancel,
|
|
|
file: file,
|
|
|
uploadStatus: uploadStatus
|
|
|
};
|
|
|
});
|
|
|
var clearInput = function clearInput() {
|
|
|
var input = document.getElementById(domId.current);
|
|
|
if (input) {
|
|
|
input.value = '';
|
|
|
}
|
|
|
};
|
|
|
var handleUpload = /*#__PURE__*/function () {
|
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee(file) {
|
|
|
var fileSize, totalChunks, res, uploadId, promises, percent, _loop, i, completed, step, _promises$slice, subTasks, p, uploadRes;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
if (!(uploadStatus === 'uploading')) {
|
|
|
_context2.next = 2;
|
|
|
break;
|
|
|
}
|
|
|
return _context2.abrupt("return");
|
|
|
case 2:
|
|
|
if (onBeginInitFile) {
|
|
|
onBeginInitFile(file);
|
|
|
}
|
|
|
fileSize = file.size;
|
|
|
totalChunks = Math.ceil(fileSize / chunkSize);
|
|
|
cancelStatus.current = false;
|
|
|
setUploadStatus('uploading');
|
|
|
setProgress(0);
|
|
|
setUploadStatusMessage('');
|
|
|
_context2.prev = 9;
|
|
|
_context2.next = 12;
|
|
|
return (0,fetch/* default */.ZP)("/api/attachments/multipart_upload_start", {
|
|
|
method: 'POST',
|
|
|
body: objectSpread2_default()({
|
|
|
fileName: file.name,
|
|
|
chunkCount: totalChunks
|
|
|
}, options)
|
|
|
});
|
|
|
case 12:
|
|
|
res = _context2.sent;
|
|
|
if (!(cancelStatus.current || (res === null || res === void 0 ? void 0 : res.status) !== 0)) {
|
|
|
_context2.next = 15;
|
|
|
break;
|
|
|
}
|
|
|
throw new Error();
|
|
|
case 15:
|
|
|
uploadId = res.upload_id;
|
|
|
abortControllerRef.current = new AbortController();
|
|
|
promises = [];
|
|
|
percent = 0;
|
|
|
_loop = /*#__PURE__*/regeneratorRuntime_default()().mark(function _loop() {
|
|
|
var start, end, chunk, formData, key;
|
|
|
return regeneratorRuntime_default()().wrap(function _loop$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
start = i * chunkSize;
|
|
|
end = Math.min(start + chunkSize, fileSize);
|
|
|
chunk = file.slice(start, end);
|
|
|
formData = new FormData();
|
|
|
formData.append('chunk', chunk);
|
|
|
formData.append('fileName', file.name);
|
|
|
formData.append('chunkIndex', (i + 1).toString());
|
|
|
formData.append('uploadId', uploadId);
|
|
|
for (key in options) {
|
|
|
if (Object.prototype.hasOwnProperty.call(options, key)) {
|
|
|
formData.append(key, options[key]);
|
|
|
}
|
|
|
}
|
|
|
promises.push(function () {
|
|
|
return (0,fetch/* default */.ZP)("/api/attachments/multipart_upload", {
|
|
|
method: 'POST',
|
|
|
body: formData,
|
|
|
signal: abortControllerRef.current.signal
|
|
|
}, true).then(function (res) {
|
|
|
console.log(res, 444);
|
|
|
percent++;
|
|
|
var currentProgress = Math.round(percent / totalChunks * 100);
|
|
|
setProgress(currentProgress);
|
|
|
if (onProgress) {
|
|
|
onProgress(objectSpread2_default()(objectSpread2_default()({}, res), {}, {
|
|
|
file: file,
|
|
|
percent: currentProgress
|
|
|
}));
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
case 10:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _loop);
|
|
|
});
|
|
|
i = 0;
|
|
|
case 21:
|
|
|
if (!(i < totalChunks)) {
|
|
|
_context2.next = 26;
|
|
|
break;
|
|
|
}
|
|
|
return _context2.delegateYield(_loop(), "t0", 23);
|
|
|
case 23:
|
|
|
i++;
|
|
|
_context2.next = 21;
|
|
|
break;
|
|
|
case 26:
|
|
|
completed = 0;
|
|
|
step = concurrency;
|
|
|
console.log(promises, 'promises');
|
|
|
case 29:
|
|
|
if (!(completed < promises.length)) {
|
|
|
_context2.next = 38;
|
|
|
break;
|
|
|
}
|
|
|
subTasks = (_promises$slice = promises.slice(completed, completed + step)) === null || _promises$slice === void 0 ? void 0 : _promises$slice.map(function (t) {
|
|
|
return t();
|
|
|
});
|
|
|
if (!(subTasks.length > 0)) {
|
|
|
_context2.next = 36;
|
|
|
break;
|
|
|
}
|
|
|
_context2.next = 34;
|
|
|
return Promise.all(subTasks);
|
|
|
case 34:
|
|
|
p = _context2.sent;
|
|
|
completed += step;
|
|
|
case 36:
|
|
|
_context2.next = 29;
|
|
|
break;
|
|
|
case 38:
|
|
|
_context2.next = 40;
|
|
|
return (0,fetch/* default */.ZP)("/api/attachments/multipart_upload_end", {
|
|
|
method: 'POST',
|
|
|
body: objectSpread2_default()({
|
|
|
fileName: file.name,
|
|
|
chunkCount: totalChunks,
|
|
|
uploadId: uploadId
|
|
|
}, options)
|
|
|
});
|
|
|
case 40:
|
|
|
uploadRes = _context2.sent;
|
|
|
if (!!uploadRes.object) {
|
|
|
setUploadStatus('success');
|
|
|
clearInput();
|
|
|
if (onComplete) {
|
|
|
onComplete(objectSpread2_default()(objectSpread2_default()({}, uploadRes), {}, {
|
|
|
file: file,
|
|
|
percent: 100
|
|
|
}));
|
|
|
}
|
|
|
} else {
|
|
|
setUploadStatus('error');
|
|
|
setUploadStatusMessage('上传失败,请稍后重试');
|
|
|
clearInput();
|
|
|
if (onError) {
|
|
|
onError(file.name);
|
|
|
}
|
|
|
}
|
|
|
_context2.next = 50;
|
|
|
break;
|
|
|
case 44:
|
|
|
_context2.prev = 44;
|
|
|
_context2.t1 = _context2["catch"](9);
|
|
|
setUploadStatus('error');
|
|
|
setUploadStatusMessage('上传失败,请稍后重试');
|
|
|
clearInput();
|
|
|
if (onError) {
|
|
|
onError(file.name);
|
|
|
}
|
|
|
case 50:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee, null, [[9, 44]]);
|
|
|
}));
|
|
|
return function handleUpload(_x) {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var cancel = (0,_react_17_0_2_react.useCallback)(function () {
|
|
|
cancelStatus.current = true;
|
|
|
if (abortControllerRef.current) {
|
|
|
abortControllerRef.current.abort();
|
|
|
if (onCancel) {
|
|
|
onCancel();
|
|
|
}
|
|
|
}
|
|
|
}, [onCancel]);
|
|
|
var handleChangeUpload = function handleChangeUpload(e) {
|
|
|
var _e$target;
|
|
|
var file = e === null || e === void 0 || (_e$target = e.target) === null || _e$target === void 0 || (_e$target = _e$target.files) === null || _e$target === void 0 ? void 0 : _e$target[0];
|
|
|
setFile(file);
|
|
|
uploadStatus = 'ready';
|
|
|
if (!file) {
|
|
|
return;
|
|
|
}
|
|
|
if (onBefore) {
|
|
|
var bool = onBefore(file);
|
|
|
if (!bool) {
|
|
|
handleUpload(file);
|
|
|
}
|
|
|
clearInput();
|
|
|
return;
|
|
|
}
|
|
|
handleUpload(file);
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(_react_17_0_2_react.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("input", {
|
|
|
type: "file",
|
|
|
id: domId.current,
|
|
|
style: {
|
|
|
display: 'none'
|
|
|
},
|
|
|
onChange: handleChangeUpload,
|
|
|
accept: accept
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("label", {
|
|
|
className: _classnames_2_5_1_classnames_default()(ChunkedUploadmodules.upload, className),
|
|
|
htmlFor: domId.current,
|
|
|
style: style,
|
|
|
children: children
|
|
|
})]
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var components_ChunkedUpload = (/*#__PURE__*/(0,_react_17_0_2_react.forwardRef)(ChunkedUpload));
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 37919:
|
|
|
/*!**********************************************************!*\
|
|
|
!*** ./src/components/CoverUpload/index.tsx + 1 modules ***!
|
|
|
\**********************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ components_CoverUpload; }
|
|
|
});
|
|
|
|
|
|
// 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: ./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/message/index.js + 4 modules
|
|
|
var message = __webpack_require__(8591);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/upload/index.js
|
|
|
var upload = __webpack_require__(60028);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/UploadOutlined.js + 1 modules
|
|
|
var UploadOutlined = __webpack_require__(46061);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/CloseCircleFilled.js + 1 modules
|
|
|
var CloseCircleFilled = __webpack_require__(21884);
|
|
|
// EXTERNAL MODULE: ./src/utils/env.ts + 1 modules
|
|
|
var env = __webpack_require__(71681);
|
|
|
;// CONCATENATED MODULE: ./src/components/CoverUpload/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var CoverUploadmodules = ({"img":"img___BgL9D"});
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/components/CoverUpload/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var CoverUpload = function CoverUpload(_ref) {
|
|
|
var value = _ref.value,
|
|
|
onChange = _ref.onChange,
|
|
|
getFileProgress = _ref.getFileProgress;
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
imgLoading = _useState2[0],
|
|
|
setImgLoading = _useState2[1];
|
|
|
var uploadButton = /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
loading: imgLoading,
|
|
|
icon: /*#__PURE__*/(0,jsx_runtime.jsx)(UploadOutlined/* default */.Z, {}),
|
|
|
children: "\u9009\u62E9\u4E0A\u4F20\u6587\u4EF6"
|
|
|
});
|
|
|
var renderImg = function renderImg() {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: CoverUploadmodules.img,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
src: env/* default */.Z.API_SERVER + "/api/attachments/" + value,
|
|
|
alt: "avatar",
|
|
|
style: {
|
|
|
width: 288
|
|
|
}
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(CloseCircleFilled/* default */.Z, {
|
|
|
onClick: function onClick() {
|
|
|
return onChange('');
|
|
|
},
|
|
|
style: {
|
|
|
fontSize: '16px',
|
|
|
color: 'red'
|
|
|
}
|
|
|
})
|
|
|
})]
|
|
|
});
|
|
|
};
|
|
|
var handleChange = function handleChange(info) {
|
|
|
if (getFileProgress) {
|
|
|
getFileProgress(info);
|
|
|
}
|
|
|
if (info.file.status === 'uploading') {
|
|
|
setImgLoading(true);
|
|
|
return;
|
|
|
}
|
|
|
if (info.file.status === 'done') {
|
|
|
var _info$file, _info$file3;
|
|
|
setImgLoading(false);
|
|
|
if (info.file.status === 'done' && ((_info$file = info.file) === null || _info$file === void 0 || (_info$file = _info$file.response) === null || _info$file === void 0 ? void 0 : _info$file.status) === -1) {
|
|
|
var _info$file2;
|
|
|
message/* default */.ZP.error((_info$file2 = info.file) === null || _info$file2 === void 0 || (_info$file2 = _info$file2.response) === null || _info$file2 === void 0 ? void 0 : _info$file2.message);
|
|
|
// onChange()
|
|
|
return;
|
|
|
}
|
|
|
onChange(info === null || info === void 0 || (_info$file3 = info.file) === null || _info$file3 === void 0 || (_info$file3 = _info$file3.response) === null || _info$file3 === void 0 ? void 0 : _info$file3.id);
|
|
|
}
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(_react_17_0_2_react.Fragment, {
|
|
|
children: value ? renderImg() : /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(upload/* default */.Z, {
|
|
|
withCredentials: true,
|
|
|
name: "file",
|
|
|
showUploadList: false,
|
|
|
action: "".concat(env/* default */.Z.API_SERVER, "/api/attachments.json"),
|
|
|
onChange: handleChange,
|
|
|
accept: "image/*",
|
|
|
children: uploadButton
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "mt20 c-light-black",
|
|
|
children: "\u8BF4\u660E\uFF1A\u652F\u6301\u4E0A\u4F20jpg/png\u7B49\u683C\u5F0F\u6587\u4EF6\uFF0C\u6587\u4EF6\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC72M,\u5EFA\u8BAE\u4F7F\u7528288*158\u50CF\u7D20\uFF1B"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "c-light-black",
|
|
|
children: "\u5982\u4E0D\u4E0A\u4F20\uFF0C\u9ED8\u8BA4\u4F7F\u7528\u7CFB\u7EDF\u56FE\u7247\u3002"
|
|
|
})]
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var components_CoverUpload = (CoverUpload);
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 6670:
|
|
|
/*!**********************************************************!*\
|
|
|
!*** ./src/components/Video/Modal/index.tsx + 1 modules ***!
|
|
|
\**********************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
K: function() { return /* binding */ VideoModal; }
|
|
|
});
|
|
|
|
|
|
// 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/modal/index.js + 16 modules
|
|
|
var modal = __webpack_require__(43418);
|
|
|
// EXTERNAL MODULE: ./src/components/Video/Play/index.jsx + 1 modules
|
|
|
var Play = __webpack_require__(48667);
|
|
|
;// CONCATENATED MODULE: ./src/components/Video/Modal/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var Modalmodules = ({"modal":"modal___LGwws","closeIcon":"closeIcon___vsUXI","wrap":"wrap___tDzbl","input":"input___aikQk"});
|
|
|
// EXTERNAL MODULE: ./node_modules/_js-base64@2.6.4@js-base64/base64.js
|
|
|
var base64 = __webpack_require__(24334);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/components/Video/Modal/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var VideoModal = function VideoModal(_ref) {
|
|
|
var visible = _ref.visible,
|
|
|
width = _ref.width,
|
|
|
videoId = _ref.videoId,
|
|
|
file_url = _ref.file_url,
|
|
|
course_id = _ref.course_id,
|
|
|
copyUrl = _ref.copyUrl,
|
|
|
_ref$toLog = _ref.toLog,
|
|
|
toLog = _ref$toLog === void 0 ? true : _ref$toLog,
|
|
|
_ref$logWatchHistory = _ref.logWatchHistory,
|
|
|
logWatchHistory = _ref$logWatchHistory === void 0 ? function () {} : _ref$logWatchHistory,
|
|
|
allow_skip = _ref.allow_skip,
|
|
|
_ref$onClose = _ref.onClose,
|
|
|
onClose = _ref$onClose === void 0 ? function () {} : _ref$onClose;
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(modal/* default */.Z, {
|
|
|
centered: true,
|
|
|
keyboard: false,
|
|
|
closable: false,
|
|
|
destroyOnClose: true,
|
|
|
open: visible,
|
|
|
title: null,
|
|
|
footer: null,
|
|
|
width: width,
|
|
|
className: Modalmodules.modal,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "".concat(Modalmodules.closeIcon, " iconfont icon-guanbi10"),
|
|
|
onClick: onClose
|
|
|
}), visible && /*#__PURE__*/(0,jsx_runtime.jsx)(Play/* default */.Z, {
|
|
|
allow_skip: allow_skip,
|
|
|
courseId: course_id,
|
|
|
src: file_url !== null && file_url !== void 0 && file_url.startsWith("http") ? file_url : base64.Base64.decode(file_url),
|
|
|
videoId: videoId,
|
|
|
toLog: toLog,
|
|
|
logWatchHistory: logWatchHistory
|
|
|
})]
|
|
|
});
|
|
|
};
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 22054:
|
|
|
/*!*****************************************************************!*\
|
|
|
!*** ./src/pages/Classrooms/Lists/Video/index.tsx + 13 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 */ Video; }
|
|
|
});
|
|
|
|
|
|
// 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/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectWithoutProperties.js
|
|
|
var objectWithoutProperties = __webpack_require__(39647);
|
|
|
var objectWithoutProperties_default = /*#__PURE__*/__webpack_require__.n(objectWithoutProperties);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
// EXTERNAL MODULE: ./src/.umi-production/exports.ts
|
|
|
var _umi_production_exports = __webpack_require__(80608);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/menu/index.js + 11 modules
|
|
|
var menu = __webpack_require__(20834);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/layout/index.js
|
|
|
var layout = __webpack_require__(44000);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/modal/index.js + 16 modules
|
|
|
var modal = __webpack_require__(43418);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/row/index.js
|
|
|
var row = __webpack_require__(95237);
|
|
|
// 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/spin/index.js + 1 modules
|
|
|
var spin = __webpack_require__(71418);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/pagination/index.js + 10 modules
|
|
|
var pagination = __webpack_require__(86859);
|
|
|
// EXTERNAL MODULE: ./src/utils/authority.ts
|
|
|
var authority = __webpack_require__(75916);
|
|
|
// EXTERNAL MODULE: ./src/components/NoData/index.tsx
|
|
|
var NoData = __webpack_require__(6638);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/message/index.js + 4 modules
|
|
|
var message = __webpack_require__(8591);
|
|
|
// EXTERNAL MODULE: ./src/utils/fetch.ts
|
|
|
var fetch = __webpack_require__(49105);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Video/components/DelTasks.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var DelShixun = function DelShixun(_ref) {
|
|
|
var classroomList = _ref.classroomList,
|
|
|
dispatch = _ref.dispatch,
|
|
|
cb = _ref.cb;
|
|
|
var params = (0,_umi_production_exports.useParams)();
|
|
|
params['id'] = params['coursesId'];
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
|
|
|
centered: true,
|
|
|
title: "\u63D0\u793A",
|
|
|
open: classroomList.actionTabs.key === '删除' ? true : false,
|
|
|
okText: "\u786E\u5B9A",
|
|
|
cancelText: "\u53D6\u6D88",
|
|
|
onOk: /*#__PURE__*/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/courses/".concat(params.id, "/delete_course_video.json"), {
|
|
|
method: 'delete',
|
|
|
body: {
|
|
|
video_id: classroomList.actionTabs.data.link ? classroomList.actionTabs.data.id : classroomList.actionTabs.data.course_video_id,
|
|
|
is_link: classroomList.actionTabs.data.link ? true : ''
|
|
|
}
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context.sent;
|
|
|
if (res.status === 0) {
|
|
|
message/* default */.ZP.success('删除成功');
|
|
|
dispatch({
|
|
|
type: 'classroomList/setActionTabs',
|
|
|
payload: {}
|
|
|
});
|
|
|
dispatch({
|
|
|
type: 'classroomList/setUpdateData',
|
|
|
payload: Math.random()
|
|
|
});
|
|
|
dispatch({
|
|
|
type: 'classroomList/getClassroomLeftMenus',
|
|
|
payload: {
|
|
|
id: params.coursesId
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
})),
|
|
|
onCancel: function onCancel() {
|
|
|
dispatch({
|
|
|
type: 'classroomList/setActionTabs',
|
|
|
payload: {}
|
|
|
});
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
|
|
|
children: "\u662F\u5426\u786E\u8BA4\u5220\u9664\uFF1F"
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var DelTasks = ((0,_umi_production_exports.connect)(function (_ref3) {
|
|
|
var classroomList = _ref3.classroomList;
|
|
|
return {
|
|
|
classroomList: classroomList
|
|
|
};
|
|
|
})(DelShixun));
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/defineProperty.js
|
|
|
var defineProperty = __webpack_require__(85573);
|
|
|
var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tree-select/index.js + 17 modules
|
|
|
var tree_select = __webpack_require__(98228);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/form/index.js + 19 modules
|
|
|
var es_form = __webpack_require__(78241);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js
|
|
|
var es_button = __webpack_require__(3113);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/index.js + 3 modules
|
|
|
var input = __webpack_require__(92832);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/upload/index.js
|
|
|
var upload = __webpack_require__(60028);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/UploadOutlined.js + 1 modules
|
|
|
var UploadOutlined = __webpack_require__(46061);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/CloseCircleFilled.js + 1 modules
|
|
|
var CloseCircleFilled = __webpack_require__(21884);
|
|
|
// EXTERNAL MODULE: ./src/utils/env.ts + 1 modules
|
|
|
var env = __webpack_require__(71681);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Video/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var Videomodules = ({"flex_box_center":"flex_box_center___ZHxNf","flex_space_between":"flex_space_between___SMaaw","flex_box_vertical_center":"flex_box_vertical_center___xMq2f","flex_box_center_end":"flex_box_center_end___qU72x","flex_box_column":"flex_box_column___ik6jh","bg":"bg___x4BYS","menu":"menu___YqpjW","desc":"desc___n62tO","otherLink":"otherLink___jkav5","card":"card___BlTD5","img":"img___AYe38","btn":"btn___t3aCM"});
|
|
|
// EXTERNAL MODULE: ./src/utils/util.tsx
|
|
|
var util = __webpack_require__(27876);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Video/components/AddLink.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var TreeNode = tree_select/* default.TreeNode */.Z.TreeNode;
|
|
|
var EditAttendance = function EditAttendance(_ref) {
|
|
|
var _classroomList$action6, _classroomList$action7;
|
|
|
var classroomList = _ref.classroomList,
|
|
|
loading = _ref.loading,
|
|
|
user = _ref.user,
|
|
|
dispatch = _ref.dispatch;
|
|
|
var params = (0,_umi_production_exports.useParams)();
|
|
|
params['id'] = params['coursesId'];
|
|
|
var detailAttendancesDetail = classroomList.detailAttendancesDetail,
|
|
|
actionTabs = classroomList.actionTabs;
|
|
|
var _Form$useForm = es_form/* default */.Z.useForm(),
|
|
|
_Form$useForm2 = slicedToArray_default()(_Form$useForm, 1),
|
|
|
form = _Form$useForm2[0];
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(''),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
attachment_id = _useState2[0],
|
|
|
setImageUrl = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
imgLoading = _useState4[0],
|
|
|
setImgLoading = _useState4[1];
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
var _classroomList$action, _classroomList$action2;
|
|
|
if (((_classroomList$action = classroomList.actionTabs) === null || _classroomList$action === void 0 ? void 0 : _classroomList$action.key) === '增加外链' && (_classroomList$action2 = classroomList.actionTabs) !== null && _classroomList$action2 !== void 0 && _classroomList$action2.data) {
|
|
|
var _classroomList$action3, _classroomList$action4, _classroomList$action5;
|
|
|
form.setFieldsValue({
|
|
|
name: (_classroomList$action3 = classroomList.actionTabs) === null || _classroomList$action3 === void 0 || (_classroomList$action3 = _classroomList$action3.data) === null || _classroomList$action3 === void 0 ? void 0 : _classroomList$action3.title,
|
|
|
link: (_classroomList$action4 = classroomList.actionTabs) === null || _classroomList$action4 === void 0 || (_classroomList$action4 = _classroomList$action4.data) === null || _classroomList$action4 === void 0 ? void 0 : _classroomList$action4.link
|
|
|
});
|
|
|
setImageUrl((_classroomList$action5 = classroomList.actionTabs) === null || _classroomList$action5 === void 0 || (_classroomList$action5 = _classroomList$action5.data) === null || _classroomList$action5 === void 0 ? void 0 : _classroomList$action5.attachment_id);
|
|
|
}
|
|
|
}, [(_classroomList$action6 = classroomList.actionTabs) === null || _classroomList$action6 === void 0 ? void 0 : _classroomList$action6.key]);
|
|
|
var uploadButton = /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
loading: imgLoading,
|
|
|
icon: /*#__PURE__*/(0,jsx_runtime.jsx)(UploadOutlined/* default */.Z, {}),
|
|
|
children: "\u9009\u62E9\u4E0A\u4F20\u6587\u4EF6"
|
|
|
});
|
|
|
var renderImg = function renderImg() {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Videomodules.img,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
src: env/* default */.Z.API_SERVER + "/api/attachments/" + attachment_id,
|
|
|
alt: "avatar",
|
|
|
style: {
|
|
|
width: 288
|
|
|
}
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(CloseCircleFilled/* default */.Z, {
|
|
|
onClick: function onClick() {
|
|
|
return setImageUrl('');
|
|
|
},
|
|
|
style: {
|
|
|
fontSize: '16px',
|
|
|
color: 'red'
|
|
|
}
|
|
|
})
|
|
|
})]
|
|
|
});
|
|
|
};
|
|
|
var handleChange = function handleChange(info) {
|
|
|
if (info.file.status === 'uploading') {
|
|
|
setImgLoading(true);
|
|
|
return;
|
|
|
}
|
|
|
if (info.file.status === 'done') {
|
|
|
var _info$file;
|
|
|
setImgLoading(false);
|
|
|
setImageUrl(info === null || info === void 0 || (_info$file = info.file) === null || _info$file === void 0 || (_info$file = _info$file.response) === null || _info$file === void 0 ? void 0 : _info$file.id);
|
|
|
}
|
|
|
};
|
|
|
var cancel = function cancel() {
|
|
|
form.resetFields();
|
|
|
dispatch({
|
|
|
type: 'classroomList/setActionTabs',
|
|
|
payload: {}
|
|
|
});
|
|
|
setImageUrl('');
|
|
|
setImgLoading(false);
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
|
|
|
centered: true,
|
|
|
title: (_classroomList$action7 = classroomList.actionTabs) !== null && _classroomList$action7 !== void 0 && _classroomList$action7.data ? '编辑外链视频' : "增加外链",
|
|
|
open: classroomList.actionTabs.key === '增加外链' ? true : false,
|
|
|
okText: "\u786E\u5B9A",
|
|
|
cancelText: "\u53D6\u6D88",
|
|
|
width: 640,
|
|
|
okButtonProps: {
|
|
|
loading: imgLoading
|
|
|
},
|
|
|
bodyStyle: {
|
|
|
minHeight: 200
|
|
|
},
|
|
|
onOk: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
var _classroomList$action8;
|
|
|
var formValue, res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
_context.t0 = (objectSpread2_default());
|
|
|
_context.t1 = {};
|
|
|
_context.next = 4;
|
|
|
return form.validateFields();
|
|
|
case 4:
|
|
|
_context.t2 = _context.sent;
|
|
|
formValue = (0, _context.t0)(_context.t1, _context.t2);
|
|
|
setImgLoading(true);
|
|
|
if ((_classroomList$action8 = classroomList.actionTabs) !== null && _classroomList$action8 !== void 0 && _classroomList$action8.data) {
|
|
|
_context.next = 13;
|
|
|
break;
|
|
|
}
|
|
|
_context.next = 10;
|
|
|
return (0,fetch/* default */.ZP)("/api/courses/".concat(params.id, "/course_videos.json"), {
|
|
|
method: 'post',
|
|
|
body: objectSpread2_default()(objectSpread2_default()({}, formValue), {}, {
|
|
|
category_id: params.categoryId === '0' ? '' : params.categoryId,
|
|
|
attachment_id: attachment_id
|
|
|
})
|
|
|
});
|
|
|
case 10:
|
|
|
_context.t3 = _context.sent;
|
|
|
_context.next = 16;
|
|
|
break;
|
|
|
case 13:
|
|
|
_context.next = 15;
|
|
|
return (0,fetch/* default */.ZP)("/api/course_videos/".concat(actionTabs.data.id, ".json"), {
|
|
|
method: 'put',
|
|
|
body: objectSpread2_default()(objectSpread2_default()({}, formValue), {}, {
|
|
|
title: formValue.name,
|
|
|
new_attachment_id: attachment_id
|
|
|
})
|
|
|
});
|
|
|
case 15:
|
|
|
_context.t3 = _context.sent;
|
|
|
case 16:
|
|
|
res = _context.t3;
|
|
|
if (!(res.status === 0)) {
|
|
|
_context.next = 23;
|
|
|
break;
|
|
|
}
|
|
|
(0,util/* trackEvent */.L9)(['教学课堂', '视频', '增加外链']);
|
|
|
message/* default */.ZP.success('修改成功');
|
|
|
dispatch({
|
|
|
type: 'classroomList/setUpdateData',
|
|
|
payload: Math.random()
|
|
|
});
|
|
|
cancel();
|
|
|
return _context.abrupt("return");
|
|
|
case 23:
|
|
|
setImgLoading(false);
|
|
|
case 24:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
})),
|
|
|
onCancel: function onCancel() {
|
|
|
cancel();
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, {
|
|
|
form: form,
|
|
|
initialValues: defineProperty_default()(defineProperty_default()({}, 'name', ''), 'link', ''),
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u89C6\u9891\u6807\u9898",
|
|
|
name: "name",
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入!'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
|
|
|
maxLength: 60
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u89C6\u9891\u94FE\u63A5",
|
|
|
name: "link",
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入!'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
// name="file"
|
|
|
label: "\u4E0A\u4F20\u5C01\u9762\u56FE:",
|
|
|
children: attachment_id ? renderImg() : /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(upload/* default */.Z, {
|
|
|
withCredentials: true,
|
|
|
name: "file",
|
|
|
showUploadList: false,
|
|
|
action: "".concat(env/* default */.Z.API_SERVER, "/api/attachments.json"),
|
|
|
onChange: handleChange,
|
|
|
accept: "image/*",
|
|
|
children: uploadButton
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "mt20 c-light-black",
|
|
|
children: "\u8BF4\u660E\uFF1A\u652F\u6301\u4E0A\u4F20jpg/png\u7B49\u683C\u5F0F\u6587\u4EF6\uFF0C\u6587\u4EF6\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC72M,\u5EFA\u8BAE\u4F7F\u7528288*158\u50CF\u7D20\uFF1B"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "c-light-black",
|
|
|
children: "\u5982\u4E0D\u4E0A\u4F20\uFF0C\u9ED8\u8BA4\u4F7F\u7528\u7CFB\u7EDF\u56FE\u7247\u3002"
|
|
|
})]
|
|
|
})
|
|
|
})]
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var AddLink = ((0,_umi_production_exports.connect)(function (_ref4) {
|
|
|
var classroomList = _ref4.classroomList,
|
|
|
user = _ref4.user,
|
|
|
loading = _ref4.loading;
|
|
|
return {
|
|
|
classroomList: classroomList,
|
|
|
user: user,
|
|
|
loading: loading
|
|
|
};
|
|
|
})(EditAttendance));
|
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Video/components/Edit.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Edit_TreeNode = tree_select/* default.TreeNode */.Z.TreeNode;
|
|
|
var Edit_EditAttendance = function EditAttendance(_ref) {
|
|
|
var classroomList = _ref.classroomList,
|
|
|
loading = _ref.loading,
|
|
|
dispatch = _ref.dispatch;
|
|
|
var params = (0,_umi_production_exports.useParams)();
|
|
|
params['id'] = params['coursesId'];
|
|
|
var detailAttendancesDetail = classroomList.detailAttendancesDetail,
|
|
|
actionTabs = classroomList.actionTabs;
|
|
|
var _Form$useForm = es_form/* default */.Z.useForm(),
|
|
|
_Form$useForm2 = slicedToArray_default()(_Form$useForm, 1),
|
|
|
form = _Form$useForm2[0];
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
|
|
|
centered: true,
|
|
|
title: "\u89C6\u9891\u6807\u9898\u7F16\u8F91",
|
|
|
open: classroomList.actionTabs.key === '编辑' ? true : false,
|
|
|
okText: "\u786E\u5B9A",
|
|
|
cancelText: "\u53D6\u6D88",
|
|
|
bodyStyle: {
|
|
|
minHeight: 200
|
|
|
},
|
|
|
onOk: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
var formValue, res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
_context.t0 = (objectSpread2_default());
|
|
|
_context.t1 = {};
|
|
|
_context.next = 4;
|
|
|
return form.validateFields();
|
|
|
case 4:
|
|
|
_context.t2 = _context.sent;
|
|
|
formValue = (0, _context.t0)(_context.t1, _context.t2);
|
|
|
_context.next = 8;
|
|
|
return (0,fetch/* default */.ZP)("/api/course_videos/".concat(actionTabs.data.id, ".json"), {
|
|
|
method: 'put',
|
|
|
body: objectSpread2_default()({}, formValue)
|
|
|
});
|
|
|
case 8:
|
|
|
res = _context.sent;
|
|
|
if (res.status === 0) {
|
|
|
message/* default */.ZP.success('修改成功');
|
|
|
dispatch({
|
|
|
type: 'classroomList/setActionTabs',
|
|
|
payload: {}
|
|
|
});
|
|
|
}
|
|
|
case 10:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
})),
|
|
|
onCancel: function onCancel() {
|
|
|
dispatch({
|
|
|
type: 'classroomList/setActionTabs',
|
|
|
payload: {}
|
|
|
});
|
|
|
},
|
|
|
children: actionTabs.data && /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, {
|
|
|
form: form,
|
|
|
initialValues: defineProperty_default()(defineProperty_default()({}, 'name', actionTabs.data.title), 'link', actionTabs.data.link),
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u89C6\u9891\u6807\u9898",
|
|
|
name: "name",
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入!'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
|
|
|
maxLength: 60
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u89C6\u9891\u94FE\u63A5",
|
|
|
name: "link",
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入!'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {})
|
|
|
})]
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var Edit = ((0,_umi_production_exports.connect)(function (_ref4) {
|
|
|
var classroomList = _ref4.classroomList,
|
|
|
loading = _ref4.loading;
|
|
|
return {
|
|
|
classroomList: classroomList,
|
|
|
loading: loading
|
|
|
};
|
|
|
})(Edit_EditAttendance));
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/radio/index.js + 5 modules
|
|
|
var es_radio = __webpack_require__(5112);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/table/index.js + 85 modules
|
|
|
var table = __webpack_require__(51945);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/checkbox/index.js + 3 modules
|
|
|
var es_checkbox = __webpack_require__(24905);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/progress/index.js + 13 modules
|
|
|
var progress = __webpack_require__(93948);
|
|
|
// EXTERNAL MODULE: ./src/components/CoverUpload/index.tsx + 1 modules
|
|
|
var CoverUpload = __webpack_require__(37919);
|
|
|
// EXTERNAL MODULE: ./src/service/user.ts
|
|
|
var service_user = __webpack_require__(43764);
|
|
|
// EXTERNAL MODULE: ./src/components/ChunkedUpload/index.tsx + 1 modules
|
|
|
var ChunkedUpload = __webpack_require__(3896);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Video/components/VideoEdit.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var VideoEdit_TreeNode = tree_select/* default.TreeNode */.Z.TreeNode;
|
|
|
var VideoEdit_EditAttendance = function EditAttendance(_ref) {
|
|
|
var _user$userInfo3, _video$name;
|
|
|
var classroomList = _ref.classroomList,
|
|
|
user = _ref.user,
|
|
|
loading = _ref.loading,
|
|
|
dispatch = _ref.dispatch;
|
|
|
var params = (0,_umi_production_exports.useParams)();
|
|
|
params['id'] = params['coursesId'];
|
|
|
var detailAttendancesDetail = classroomList.detailAttendancesDetail,
|
|
|
actionTabs = classroomList.actionTabs;
|
|
|
var _Form$useForm = es_form/* default */.Z.useForm(),
|
|
|
_Form$useForm2 = slicedToArray_default()(_Form$useForm, 1),
|
|
|
form = _Form$useForm2[0];
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
imgLoading = _useState2[0],
|
|
|
setImgLoading = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
btnLoading = _useState4[0],
|
|
|
setBtnLoading = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
tabsList = _useState6[0],
|
|
|
setTabsList = _useState6[1];
|
|
|
var _useState7 = (0,_react_17_0_2_react.useState)({}),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
video = _useState8[0],
|
|
|
setVideo = _useState8[1];
|
|
|
var files = (0,_react_17_0_2_react.useRef)();
|
|
|
var uploader = (0,_react_17_0_2_react.useRef)();
|
|
|
var uploadNameSizeSeperator = ' ';
|
|
|
var _useState9 = (0,_react_17_0_2_react.useState)(null),
|
|
|
_useState10 = slicedToArray_default()(_useState9, 2),
|
|
|
videoId = _useState10[0],
|
|
|
setvideoId = _useState10[1];
|
|
|
var _useState11 = (0,_react_17_0_2_react.useState)(null),
|
|
|
_useState12 = slicedToArray_default()(_useState11, 2),
|
|
|
nowVideoId = _useState12[0],
|
|
|
setNowVideoId = _useState12[1];
|
|
|
var MAX_FILE_SIZE = 1024;
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
var _actionTabs$data, _actionTabs$data2;
|
|
|
if (classroomList.actionTabs.key === '编辑视频') form.setFieldsValue({
|
|
|
title: actionTabs.data.title,
|
|
|
attachment_id: actionTabs === null || actionTabs === void 0 || (_actionTabs$data = actionTabs.data) === null || _actionTabs$data === void 0 ? void 0 : _actionTabs$data.attachment_id,
|
|
|
allow_skip: actionTabs === null || actionTabs === void 0 || (_actionTabs$data2 = actionTabs.data) === null || _actionTabs$data2 === void 0 ? void 0 : _actionTabs$data2.allow_skip
|
|
|
// action_analysis: actionTabs?.data?.action_analysis
|
|
|
});
|
|
|
!!asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
var _actionTabs$data3;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
if ((_actionTabs$data3 = actionTabs.data) !== null && _actionTabs$data3 !== void 0 && _actionTabs$data3.course_video_id) {
|
|
|
getTabsList();
|
|
|
}
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}))();
|
|
|
}, [classroomList.actionTabs.key]);
|
|
|
var getTabsList = /*#__PURE__*/function () {
|
|
|
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
|
|
|
var _actionTabs$params, _actionTabs$data4, _res$data;
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
_context2.next = 2;
|
|
|
return (0,fetch/* default */.ZP)("/api/courses/".concat((_actionTabs$params = actionTabs.params) === null || _actionTabs$params === void 0 ? void 0 : _actionTabs$params.coursesId, "/course_videos/video_history?course_video_id=").concat((_actionTabs$data4 = actionTabs.data) === null || _actionTabs$data4 === void 0 ? void 0 : _actionTabs$data4.course_video_id), {
|
|
|
method: "get"
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context2.sent;
|
|
|
setTabsList(res.data);
|
|
|
(_res$data = res.data) === null || _res$data === void 0 || _res$data.forEach(function (item) {
|
|
|
if (item.checked) {
|
|
|
setvideoId(item.id);
|
|
|
setNowVideoId(item.id);
|
|
|
}
|
|
|
});
|
|
|
case 5:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
}));
|
|
|
return function getTabsList() {
|
|
|
return _ref3.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var columns = [{
|
|
|
title: "",
|
|
|
dataIndex: 'checked',
|
|
|
align: 'center',
|
|
|
// render: (text: boolean, record: any, index: number) =><Checkbox checked={text} onChange={()=>handleChange(record)} />
|
|
|
render: function render(text, record, index) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default.Group */.ZP.Group, {
|
|
|
onChange: function onChange() {
|
|
|
return handleChange(record);
|
|
|
},
|
|
|
value: nowVideoId,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
|
|
|
value: record.id
|
|
|
})
|
|
|
});
|
|
|
}
|
|
|
}, {
|
|
|
title: "视频名称",
|
|
|
width: 300,
|
|
|
dataIndex: 'title'
|
|
|
}, {
|
|
|
title: "版本号",
|
|
|
dataIndex: 'version'
|
|
|
}, {
|
|
|
title: "操作",
|
|
|
render: function render(text, record, index) {
|
|
|
return record.id != videoId && /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "link",
|
|
|
danger: true,
|
|
|
onClick: function onClick() {
|
|
|
return handleDeleteVideo(record);
|
|
|
},
|
|
|
children: "\u5220\u9664"
|
|
|
});
|
|
|
}
|
|
|
}];
|
|
|
var handleDeleteVideo = /*#__PURE__*/function () {
|
|
|
var _ref4 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3(record) {
|
|
|
var _actionTabs$params2;
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
|
|
|
while (1) switch (_context3.prev = _context3.next) {
|
|
|
case 0:
|
|
|
if (!(tabsList.length == 1)) {
|
|
|
_context3.next = 2;
|
|
|
break;
|
|
|
}
|
|
|
return _context3.abrupt("return");
|
|
|
case 2:
|
|
|
_context3.next = 4;
|
|
|
return (0,fetch/* default */.ZP)("/api/courses/".concat((_actionTabs$params2 = actionTabs.params) === null || _actionTabs$params2 === void 0 ? void 0 : _actionTabs$params2.coursesId, "/delete_course_video.json"), {
|
|
|
method: 'delete',
|
|
|
body: {
|
|
|
video_id: record.id,
|
|
|
is_link: classroomList.actionTabs.data.link ? true : ''
|
|
|
}
|
|
|
});
|
|
|
case 4:
|
|
|
res = _context3.sent;
|
|
|
if (res.message == "success") getTabsList();
|
|
|
case 6:
|
|
|
case "end":
|
|
|
return _context3.stop();
|
|
|
}
|
|
|
}, _callee3);
|
|
|
}));
|
|
|
return function handleDeleteVideo(_x) {
|
|
|
return _ref4.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var handleChange = function handleChange(record) {
|
|
|
setTabsList(tabsList.map(function (item) {
|
|
|
if (item.id == record.id) {
|
|
|
item.checked = true;
|
|
|
setNowVideoId(record.id);
|
|
|
} else item.checked = false;
|
|
|
return item;
|
|
|
}));
|
|
|
};
|
|
|
|
|
|
// const analysisValue = Form.useWatch('action_analysis', form)
|
|
|
|
|
|
var handleChangeUpload = function handleChangeUpload(file) {
|
|
|
var _user$userInfo, _user$userInfo2;
|
|
|
var name = file.name.toLowerCase();
|
|
|
if (name && name.indexOf('.avi') == -1 && name.indexOf('.flv') == -1 && name.indexOf('.f4v') == -1 && name.indexOf('.m4v') == -1 && name.indexOf('.mov') == -1 && name.indexOf('.mp4') == -1 && name.indexOf('.rmvb') == -1 && name.indexOf('.swf') == -1 && name.indexOf('.webm') == -1 && name.indexOf('.wmv') == -1) {
|
|
|
message/* default */.ZP.info("\u4E0D\u652F\u6301\u7684\u89C6\u9891\u683C\u5F0F");
|
|
|
return true;
|
|
|
}
|
|
|
if (!((_user$userInfo = user.userInfo) !== null && _user$userInfo !== void 0 && _user$userInfo.admin || (_user$userInfo2 = user.userInfo) !== null && _user$userInfo2 !== void 0 && _user$userInfo2.business) && file.size > MAX_FILE_SIZE * 1024 * 1024) {
|
|
|
message/* default */.ZP.info("\u89C6\u9891\u5927\u5C0F\u8D85\u8FC7".concat(MAX_FILE_SIZE, "M"));
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
};
|
|
|
var uploadProps = {
|
|
|
accept: '.mkv, .flv, .f4v, .rmvb, .swf, video/mp4,video/x-m4v,video/flv,video/f4v,video/rmvb,video/swf,video/*',
|
|
|
onBefore: handleChangeUpload,
|
|
|
onBeginInitFile: function onBeginInitFile(v) {
|
|
|
var _v$file, _v$file2;
|
|
|
setVideo({
|
|
|
name: v === null || v === void 0 || (_v$file = v.file) === null || _v$file === void 0 ? void 0 : _v$file.name,
|
|
|
loaded: 0,
|
|
|
size: v === null || v === void 0 || (_v$file2 = v.file) === null || _v$file2 === void 0 ? void 0 : _v$file2.size
|
|
|
});
|
|
|
},
|
|
|
onComplete: function onComplete(v) {
|
|
|
var _v$file3, _v$file4;
|
|
|
setVideo({
|
|
|
video_id: v.id,
|
|
|
name: v === null || v === void 0 || (_v$file3 = v.file) === null || _v$file3 === void 0 ? void 0 : _v$file3.name,
|
|
|
loaded: v.percent,
|
|
|
size: v === null || v === void 0 || (_v$file4 = v.file) === null || _v$file4 === void 0 ? void 0 : _v$file4.size
|
|
|
});
|
|
|
},
|
|
|
onError: function onError() {
|
|
|
setVideo({});
|
|
|
},
|
|
|
onProgress: function onProgress(v) {
|
|
|
var _v$file5, _v$file6;
|
|
|
setVideo({
|
|
|
name: v === null || v === void 0 || (_v$file5 = v.file) === null || _v$file5 === void 0 ? void 0 : _v$file5.name,
|
|
|
loaded: v.percent,
|
|
|
size: v === null || v === void 0 || (_v$file6 = v.file) === null || _v$file6 === void 0 ? void 0 : _v$file6.size
|
|
|
});
|
|
|
},
|
|
|
chunkSize: 1024 * 1024 * 2,
|
|
|
// 2MB
|
|
|
options: {
|
|
|
user_id: user === null || user === void 0 || (_user$userInfo3 = user.userInfo) === null || _user$userInfo3 === void 0 ? void 0 : _user$userInfo3.user_id
|
|
|
}
|
|
|
};
|
|
|
console.log(video, 222);
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
|
|
|
centered: true,
|
|
|
title: "\u89C6\u9891\u7F16\u8F91",
|
|
|
open: classroomList.actionTabs.key === '编辑视频' ? true : false,
|
|
|
okText: "\u786E\u5B9A",
|
|
|
cancelText: "\u53D6\u6D88",
|
|
|
width: 660,
|
|
|
destroyOnClose: true,
|
|
|
okButtonProps: {
|
|
|
disabled: imgLoading
|
|
|
},
|
|
|
confirmLoading: btnLoading,
|
|
|
onOk: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4() {
|
|
|
var _actionTabs$data7;
|
|
|
var formValue, body, _user$userInfo4, _actionTabs$data5, _actionTabs$data6, res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
|
|
|
while (1) switch (_context4.prev = _context4.next) {
|
|
|
case 0:
|
|
|
if (!(video !== null && video !== void 0 && video.name && video.loaded != 100)) {
|
|
|
_context4.next = 3;
|
|
|
break;
|
|
|
}
|
|
|
message/* default */.ZP.warning("视频上传中请稍等!");
|
|
|
return _context4.abrupt("return");
|
|
|
case 3:
|
|
|
_context4.t0 = (objectSpread2_default());
|
|
|
_context4.t1 = {};
|
|
|
_context4.next = 7;
|
|
|
return form.validateFields();
|
|
|
case 7:
|
|
|
_context4.t2 = _context4.sent;
|
|
|
formValue = (0, _context4.t0)(_context4.t1, _context4.t2);
|
|
|
body = objectSpread2_default()({}, formValue);
|
|
|
setBtnLoading(true);
|
|
|
if (!(video !== null && video !== void 0 && video.name)) {
|
|
|
_context4.next = 16;
|
|
|
break;
|
|
|
}
|
|
|
_context4.next = 14;
|
|
|
return (0,service_user/* batchPublish */.dt)({
|
|
|
username: (_user$userInfo4 = user.userInfo) === null || _user$userInfo4 === void 0 ? void 0 : _user$userInfo4.login,
|
|
|
videos: [{
|
|
|
video_id: video.video_id,
|
|
|
title: form.getFieldValue("title"),
|
|
|
filename: video.name,
|
|
|
attachment_id: form.getFieldValue("attachment_id"),
|
|
|
course_id: params === null || params === void 0 ? void 0 : params.coursesId,
|
|
|
category_id: actionTabs === null || actionTabs === void 0 || (_actionTabs$data5 = actionTabs.data) === null || _actionTabs$data5 === void 0 ? void 0 : _actionTabs$data5.course_second_category_id,
|
|
|
course_video_id: (_actionTabs$data6 = actionTabs.data) === null || _actionTabs$data6 === void 0 ? void 0 : _actionTabs$data6.course_video_id
|
|
|
}]
|
|
|
});
|
|
|
case 14:
|
|
|
_context4.next = 17;
|
|
|
break;
|
|
|
case 16:
|
|
|
tabsList.forEach(function (item) {
|
|
|
if (item.checked) body["set_id"] = item.id;
|
|
|
});
|
|
|
case 17:
|
|
|
_context4.next = 19;
|
|
|
return (0,fetch/* default */.ZP)("/api/course_videos/".concat(actionTabs === null || actionTabs === void 0 || (_actionTabs$data7 = actionTabs.data) === null || _actionTabs$data7 === void 0 ? void 0 : _actionTabs$data7.course_video_id, "/change_cover.json"), {
|
|
|
method: 'put',
|
|
|
body: body
|
|
|
});
|
|
|
case 19:
|
|
|
res = _context4.sent;
|
|
|
if (res) {
|
|
|
message/* default */.ZP.success('修改成功');
|
|
|
dispatch({
|
|
|
type: 'classroomList/setActionTabs',
|
|
|
payload: {}
|
|
|
});
|
|
|
dispatch({
|
|
|
type: 'classroomList/setUpdateData',
|
|
|
payload: Math.random()
|
|
|
});
|
|
|
}
|
|
|
setVideo({});
|
|
|
setBtnLoading(false);
|
|
|
case 23:
|
|
|
case "end":
|
|
|
return _context4.stop();
|
|
|
}
|
|
|
}, _callee4);
|
|
|
})),
|
|
|
onCancel: function onCancel() {
|
|
|
dispatch({
|
|
|
type: 'classroomList/setActionTabs',
|
|
|
payload: {}
|
|
|
});
|
|
|
setVideo({});
|
|
|
uploader.current.cancel();
|
|
|
},
|
|
|
children: actionTabs.data && /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, {
|
|
|
form: form,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u89C6\u9891\u6807\u9898",
|
|
|
name: "title",
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入!'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
|
|
|
maxLength: 60
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
name: "attachment_id",
|
|
|
label: "\u4E0A\u4F20\u5C01\u9762\u56FE:",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(CoverUpload/* default */.Z, {
|
|
|
getFileProgress: function getFileProgress(info) {
|
|
|
if (info.file.status === 'uploading') {
|
|
|
setImgLoading(true);
|
|
|
return;
|
|
|
}
|
|
|
if (info.file.status === 'done') {
|
|
|
setImgLoading(false);
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(table/* default */.Z, {
|
|
|
pagination: false,
|
|
|
columns: columns,
|
|
|
dataSource: tabsList
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
name: "allow_skip",
|
|
|
label: "\u64AD\u653E\u8BBE\u7F6E",
|
|
|
valuePropName: "checked",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_checkbox/* default */.Z, {
|
|
|
children: "\u5141\u8BB8\u5FEB\u8FDB\u64AD\u653E"
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z.Item, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(ChunkedUpload/* default */.Z, objectSpread2_default()(objectSpread2_default()({}, uploadProps), {}, {
|
|
|
ref: uploader,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(jsx_runtime.Fragment, {
|
|
|
children: !!(video !== null && video !== void 0 && video.name) ? /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
disabled: true,
|
|
|
type: "primary",
|
|
|
ghost: true,
|
|
|
children: "\u66F4\u65B0\u7248\u672C"
|
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Videomodules.btn,
|
|
|
children: "\u66F4\u65B0\u7248\u672C"
|
|
|
})
|
|
|
})
|
|
|
})), !!(video !== null && video !== void 0 && video.name) && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
style: {
|
|
|
fontSize: "8px",
|
|
|
color: "#333",
|
|
|
display: 'flex',
|
|
|
alignItems: "center"
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "icon-lianjie2 iconfont",
|
|
|
style: {
|
|
|
marginRight: "10px",
|
|
|
color: "#52c41a",
|
|
|
fontSize: "8px"
|
|
|
}
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "font14",
|
|
|
children: ((_video$name = video.name) === null || _video$name === void 0 ? void 0 : _video$name.indexOf(uploadNameSizeSeperator)) === -1 ? "".concat(video.name).concat(uploadNameSizeSeperator).concat((0,util/* bytesToSize */.RD)(video.size)) : video.name
|
|
|
}), video.loaded == 100 && /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
style: {
|
|
|
marginLeft: "auto",
|
|
|
cursor: "pointer"
|
|
|
},
|
|
|
className: "icon-shanchu iconfont",
|
|
|
onClick: function onClick() {
|
|
|
uploader.current.cancel();
|
|
|
setVideo({});
|
|
|
}
|
|
|
})]
|
|
|
}), video.loaded != 100 && /*#__PURE__*/(0,jsx_runtime.jsx)(progress/* default */.Z, {
|
|
|
size: "small",
|
|
|
percent: video.loaded,
|
|
|
status: video.loaded == 100 ? "normal" : 'active'
|
|
|
})]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z.Item, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("p", {
|
|
|
className: "c-light-black",
|
|
|
children: "\u4E0A\u4F20\u8BF4\u660E\uFF1A\u76EE\u524D\u4E0D\u652F\u6301\u65AD\u70B9\u7EED\u4F20\uFF0C\u5355\u4E2A\u89C6\u9891\u6587\u4EF6\u6700\u5927\u9650\u52361G\uFF0C\u89C6\u9891\u6587\u4EF6\u4E0A\u4F20\u89C4\u683C\uFF1Aavi\u3001flv\u3001f4v\u3001m4v\u3001mov\u3001mp4\u3001rmvb\u3001swf\u3001webm\u3001wmv"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
|
|
|
className: "c-light-black",
|
|
|
children: "\u6E29\u99A8\u63D0\u793A\uFF1A\u4E3A\u4E86\u66F4\u597D\u7684\u64AD\u653E\u4F53\u9A8C\uFF0C\u5EFA\u8BAE\u60A8\u4F18\u5148\u4E0A\u4F20MP4\u683C\u5F0F\u3002\u5982\u679C\u60A8\u662F\u81EA\u5DF1\u5F55\u5236\u89C6\u9891\uFF0C\u5EFA\u8BAE\u60A8\u4FDD\u5B58\u7684\u65F6\u5019\u5C06\u89C6\u9891\u7F16\u7801\u8BBE\u7F6E\u4E3AAVC(H264)"
|
|
|
})]
|
|
|
})]
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var VideoEdit = ((0,_umi_production_exports.connect)(function (_ref6) {
|
|
|
var classroomList = _ref6.classroomList,
|
|
|
loading = _ref6.loading,
|
|
|
user = _ref6.user;
|
|
|
return {
|
|
|
classroomList: classroomList,
|
|
|
loading: loading,
|
|
|
user: user
|
|
|
};
|
|
|
})(VideoEdit_EditAttendance));
|
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Video/components/VideoLinkEdit.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var VideoLinkEdit_TreeNode = tree_select/* default.TreeNode */.Z.TreeNode;
|
|
|
var VideoLinkEdit_EditAttendance = function EditAttendance(_ref) {
|
|
|
var _actionTabs$data, _actionTabs$data2;
|
|
|
var classroomList = _ref.classroomList,
|
|
|
user = _ref.user,
|
|
|
loading = _ref.loading,
|
|
|
dispatch = _ref.dispatch;
|
|
|
var params = (0,_umi_production_exports.useParams)();
|
|
|
params['id'] = params['coursesId'];
|
|
|
var detailAttendancesDetail = classroomList.detailAttendancesDetail,
|
|
|
actionTabs = classroomList.actionTabs;
|
|
|
var _Form$useForm = es_form/* default */.Z.useForm(),
|
|
|
_Form$useForm2 = slicedToArray_default()(_Form$useForm, 1),
|
|
|
form = _Form$useForm2[0];
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (classroomList.actionTabs.key === '编辑视频') form.setFieldsValue({
|
|
|
title: actionTabs.data.title
|
|
|
});
|
|
|
}, [classroomList.actionTabs.key]);
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
|
|
|
centered: true,
|
|
|
title: "\u89C6\u9891\u6807\u9898\u7F16\u8F91",
|
|
|
open: classroomList.actionTabs.key === '编辑外链' ? true : false,
|
|
|
okText: "\u786E\u5B9A",
|
|
|
cancelText: "\u53D6\u6D88",
|
|
|
destroyOnClose: true,
|
|
|
onOk: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
var formValue, res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
_context.t0 = (objectSpread2_default());
|
|
|
_context.t1 = {};
|
|
|
_context.next = 4;
|
|
|
return form.validateFields();
|
|
|
case 4:
|
|
|
_context.t2 = _context.sent;
|
|
|
formValue = (0, _context.t0)(_context.t1, _context.t2);
|
|
|
_context.next = 8;
|
|
|
return (0,fetch/* default */.ZP)("/api/course_videos/".concat(actionTabs.data.id, ".json"), {
|
|
|
method: 'put',
|
|
|
body: objectSpread2_default()({}, formValue)
|
|
|
});
|
|
|
case 8:
|
|
|
res = _context.sent;
|
|
|
if (res) {
|
|
|
message/* default */.ZP.success('修改成功');
|
|
|
dispatch({
|
|
|
type: 'classroomList/setActionTabs',
|
|
|
payload: {}
|
|
|
});
|
|
|
dispatch({
|
|
|
type: 'classroomList/setUpdateData',
|
|
|
payload: Math.random()
|
|
|
});
|
|
|
}
|
|
|
case 10:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
})),
|
|
|
onCancel: function onCancel() {
|
|
|
dispatch({
|
|
|
type: 'classroomList/setActionTabs',
|
|
|
payload: {}
|
|
|
});
|
|
|
},
|
|
|
children: actionTabs.data && /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, {
|
|
|
form: form,
|
|
|
initialValues: {
|
|
|
name: actionTabs === null || actionTabs === void 0 || (_actionTabs$data = actionTabs.data) === null || _actionTabs$data === void 0 ? void 0 : _actionTabs$data.title,
|
|
|
link: actionTabs === null || actionTabs === void 0 || (_actionTabs$data2 = actionTabs.data) === null || _actionTabs$data2 === void 0 ? void 0 : _actionTabs$data2.link
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u89C6\u9891\u6807\u9898",
|
|
|
name: "name",
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入!'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
|
|
|
maxLength: 60
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u89C6\u9891\u94FE\u63A5",
|
|
|
name: "link",
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入!'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
|
|
|
maxLength: 60
|
|
|
})
|
|
|
})]
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var VideoLinkEdit = ((0,_umi_production_exports.connect)(function (_ref3) {
|
|
|
var classroomList = _ref3.classroomList,
|
|
|
loading = _ref3.loading,
|
|
|
user = _ref3.user;
|
|
|
return {
|
|
|
classroomList: classroomList,
|
|
|
loading: loading,
|
|
|
user: user
|
|
|
};
|
|
|
})(VideoLinkEdit_EditAttendance));
|
|
|
// EXTERNAL MODULE: ./src/pages/Classrooms/Lists/components/TabMenu/index.tsx + 1 modules
|
|
|
var TabMenu = __webpack_require__(51130);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Video/components/MoveCatalog.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var MoveCatalog_TreeNode = tree_select/* default.TreeNode */.Z.TreeNode;
|
|
|
var MoveCatalog_EditAttendance = function EditAttendance(_ref) {
|
|
|
var _detailLeftMenus$cour;
|
|
|
var classroomList = _ref.classroomList,
|
|
|
loading = _ref.loading,
|
|
|
dispatch = _ref.dispatch;
|
|
|
var params = (0,_umi_production_exports.useParams)();
|
|
|
params['id'] = params['coursesId'];
|
|
|
var detailLeftMenus = classroomList.detailLeftMenus,
|
|
|
actionTabs = classroomList.actionTabs;
|
|
|
var _Form$useForm = es_form/* default */.Z.useForm(),
|
|
|
_Form$useForm2 = slicedToArray_default()(_Form$useForm, 1),
|
|
|
form = _Form$useForm2[0];
|
|
|
var Radios = function Radios(Values) {
|
|
|
var _Values$filter;
|
|
|
return Values === null || Values === void 0 || (_Values$filter = Values.filter(function (r) {
|
|
|
return r.category_name !== '未分配目录';
|
|
|
})) === null || _Values$filter === void 0 ? void 0 : _Values$filter.map(function (v, index) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
|
|
|
style: {
|
|
|
display: 'block'
|
|
|
},
|
|
|
value: v.category_id,
|
|
|
children: v.category_name
|
|
|
}), Radios((v === null || v === void 0 ? void 0 : v.third_category) || [])]
|
|
|
});
|
|
|
});
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
|
|
|
centered: true,
|
|
|
title: "\u79FB\u52A8\u5230",
|
|
|
open: classroomList.actionTabs.key === '移动目录' ? true : false,
|
|
|
okText: "\u786E\u5B9A",
|
|
|
cancelText: "\u53D6\u6D88",
|
|
|
width: 400,
|
|
|
bodyStyle: {
|
|
|
minHeight: 200
|
|
|
},
|
|
|
onOk: function onOk() {
|
|
|
return form.submit();
|
|
|
},
|
|
|
onCancel: function onCancel() {
|
|
|
dispatch({
|
|
|
type: 'classroomList/setActionTabs',
|
|
|
payload: {}
|
|
|
});
|
|
|
},
|
|
|
children: detailLeftMenus.course_modules && /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z, {
|
|
|
form: form,
|
|
|
initialValues: {
|
|
|
// ['link']: actionTabs.data.link,
|
|
|
},
|
|
|
onFinish: ( /*#__PURE__*/function () {
|
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee(Values) {
|
|
|
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/courses/".concat(params.id, "/move_to_category.json"), {
|
|
|
method: 'post',
|
|
|
body: objectSpread2_default()(objectSpread2_default()({}, Values), {}, {
|
|
|
video_ids: actionTabs.data.id
|
|
|
})
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context.sent;
|
|
|
if (res.status === 0) {
|
|
|
message/* default */.ZP.success('操作成功');
|
|
|
dispatch({
|
|
|
type: 'classroomList/setActionTabs',
|
|
|
payload: {}
|
|
|
});
|
|
|
dispatch({
|
|
|
type: 'classroomList/setUpdateData',
|
|
|
payload: Math.random()
|
|
|
});
|
|
|
dispatch({
|
|
|
type: 'classroomList/getClassroomLeftMenus',
|
|
|
payload: {
|
|
|
id: params === null || params === void 0 ? void 0 : params.id
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return function (_x) {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}()),
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "",
|
|
|
name: "new_category_id",
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入!'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default.Group */.ZP.Group, {
|
|
|
children: Radios(detailLeftMenus === null || detailLeftMenus === void 0 || (_detailLeftMenus$cour = detailLeftMenus.course_modules) === null || _detailLeftMenus$cour === void 0 ? void 0 : _detailLeftMenus$cour.filter(function (v) {
|
|
|
return v.type === "video";
|
|
|
})[0]['second_category'])
|
|
|
})
|
|
|
})
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var MoveCatalog = ((0,_umi_production_exports.connect)(function (_ref3) {
|
|
|
var classroomList = _ref3.classroomList,
|
|
|
loading = _ref3.loading;
|
|
|
return {
|
|
|
classroomList: classroomList,
|
|
|
loading: loading
|
|
|
};
|
|
|
})(MoveCatalog_EditAttendance));
|
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Video/components/AddCategory.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var AddCategory_TreeNode = tree_select/* default.TreeNode */.Z.TreeNode;
|
|
|
var AddCategory_EditAttendance = function EditAttendance(_ref) {
|
|
|
var classroomList = _ref.classroomList,
|
|
|
loading = _ref.loading,
|
|
|
dispatch = _ref.dispatch;
|
|
|
var params = (0,_umi_production_exports.useParams)();
|
|
|
params['id'] = params['coursesId'];
|
|
|
var detailLeftMenus = classroomList.detailLeftMenus,
|
|
|
actionTabs = classroomList.actionTabs;
|
|
|
var videoData = detailLeftMenus.course_modules && detailLeftMenus.course_modules.filter(function (v) {
|
|
|
return v.type === 'video';
|
|
|
});
|
|
|
var _Form$useForm = es_form/* default */.Z.useForm(),
|
|
|
_Form$useForm2 = slicedToArray_default()(_Form$useForm, 1),
|
|
|
form = _Form$useForm2[0];
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
|
|
|
centered: true,
|
|
|
title: "\u65B0\u5EFA\u5B50\u76EE\u5F55",
|
|
|
open: classroomList.actionTabs.key === '新建子目录' ? true : false,
|
|
|
okText: "\u786E\u5B9A",
|
|
|
cancelText: "\u53D6\u6D88",
|
|
|
bodyStyle: {
|
|
|
minHeight: 130
|
|
|
},
|
|
|
onOk: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
var formValue, res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
;
|
|
|
_context.t0 = (objectSpread2_default());
|
|
|
_context.t1 = {};
|
|
|
_context.next = 5;
|
|
|
return form.validateFields();
|
|
|
case 5:
|
|
|
_context.t2 = _context.sent;
|
|
|
formValue = (0, _context.t0)(_context.t1, _context.t2);
|
|
|
_context.next = 9;
|
|
|
return (0,fetch/* default */.ZP)("/api/course_modules/".concat(videoData[0].id, "/add_second_category.json"), {
|
|
|
method: 'post',
|
|
|
body: objectSpread2_default()({}, formValue)
|
|
|
});
|
|
|
case 9:
|
|
|
res = _context.sent;
|
|
|
if (res.status === 0) {
|
|
|
message/* default */.ZP.success('修改成功');
|
|
|
dispatch({
|
|
|
type: 'classroomList/setActionTabs',
|
|
|
payload: {}
|
|
|
});
|
|
|
dispatch({
|
|
|
type: 'classroomList/setUpdateData',
|
|
|
payload: Math.random()
|
|
|
});
|
|
|
}
|
|
|
case 11:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
})),
|
|
|
onCancel: function onCancel() {
|
|
|
dispatch({
|
|
|
type: 'classroomList/setActionTabs',
|
|
|
payload: {}
|
|
|
});
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z, {
|
|
|
form: form,
|
|
|
initialValues: defineProperty_default()(defineProperty_default()({}, 'name', ''), 'link', ''),
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u5B50\u76EE\u5F55\u540D\u79F0",
|
|
|
name: "name",
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入!'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
|
|
|
maxLength: 60
|
|
|
})
|
|
|
})
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var AddCategory = ((0,_umi_production_exports.connect)(function (_ref4) {
|
|
|
var classroomList = _ref4.classroomList,
|
|
|
loading = _ref4.loading;
|
|
|
return {
|
|
|
classroomList: classroomList,
|
|
|
loading: loading
|
|
|
};
|
|
|
})(AddCategory_EditAttendance));
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/card/index.js + 4 modules
|
|
|
var card = __webpack_require__(18889);
|
|
|
;// CONCATENATED MODULE: ./src/assets/images/video/default.png
|
|
|
var default_namespaceObject = "data:image/png;base64,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";
|
|
|
// EXTERNAL MODULE: ./src/assets/images/video/play.png
|
|
|
var play = __webpack_require__(36193);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react-copy-to-clipboard@5.0.2@react-copy-to-clipboard/lib/index.js
|
|
|
var lib = __webpack_require__(56102);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Video/Items/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var Itemsmodules = ({"flex_box_center":"flex_box_center___pyP1D","flex_space_between":"flex_space_between___I466c","flex_box_vertical_center":"flex_box_vertical_center___jio7d","flex_box_center_end":"flex_box_center_end___dwYOB","flex_box_column":"flex_box_column___OglHp","wrap":"wrap___CB76m","mask":"mask___OFMeI","playIconWrap":"playIconWrap___qgHXl","playIcon":"playIcon___bV87f","linkWrap":"linkWrap___T2hZF","link":"link___cwP_L","imgWrap":"imgWrap___V2WRr","cardBottom":"cardBottom___lpKQb","bottomTitle":"bottomTitle___L4GzG","timeWrap":"timeWrap___okx_C","time":"time___IoUOF","bottomActionWrap":"bottomActionWrap___PdPWh","peopleWrap":"peopleWrap____eq2u","actionIcon":"actionIcon___TDO4d"});
|
|
|
// EXTERNAL MODULE: ./src/components/Video/Modal/index.tsx + 1 modules
|
|
|
var Modal = __webpack_require__(6670);
|
|
|
// EXTERNAL MODULE: ./node_modules/_js-base64@2.6.4@js-base64/base64.js
|
|
|
var base64 = __webpack_require__(24334);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Video/Items/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var DEFAULT_VIDEO_WIDTH_IN_MD = "90%"; // 400
|
|
|
var DEFAULT_VIDEO_HEIGHT_IN_MD = "55%"; // 400
|
|
|
|
|
|
var Items = function Items(_ref) {
|
|
|
var _detailLeftMenus$cour, _classroomList$detail;
|
|
|
var data = _ref.data,
|
|
|
isReview = _ref.isReview,
|
|
|
dispatch = _ref.dispatch,
|
|
|
userid = _ref.userid,
|
|
|
classroomList = _ref.classroomList,
|
|
|
_ref$onDelete = _ref.onDelete,
|
|
|
onDelete = _ref$onDelete === void 0 ? function () {} : _ref$onDelete,
|
|
|
_ref$logWatchHistory = _ref.logWatchHistory,
|
|
|
logWatchHistory = _ref$logWatchHistory === void 0 ? function () {} : _ref$logWatchHistory;
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
visible = _useState2[0],
|
|
|
setVisible = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)({}),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
currentVideo = _useState4[0],
|
|
|
setCurrentVideo = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(objectSpread2_default()({}, (0,_umi_production_exports.useParams)())),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
params = _useState6[0],
|
|
|
setParams = _useState6[1];
|
|
|
var detailLeftMenus = classroomList.detailLeftMenus;
|
|
|
var SecondCategory = detailLeftMenus === null || detailLeftMenus === void 0 || (_detailLeftMenus$cour = detailLeftMenus.course_modules) === null || _detailLeftMenus$cour === void 0 || (_detailLeftMenus$cour = _detailLeftMenus$cour.filter(function (item) {
|
|
|
return item.type === "video";
|
|
|
})[0].second_category) === null || _detailLeftMenus$cour === void 0 ? void 0 : _detailLeftMenus$cour.length;
|
|
|
params['id'] = params['coursesId'];
|
|
|
if (params['categoryId'] != 0) params['category_id'] = params['categoryId'];
|
|
|
var handleVideoClick = function handleVideoClick(item) {
|
|
|
if (item.link) {
|
|
|
return;
|
|
|
}
|
|
|
setVisible(true);
|
|
|
setCurrentVideo({
|
|
|
videoId: item.id,
|
|
|
course_id: params['coursesId'],
|
|
|
file_url: item.play_url || item.file_url,
|
|
|
copyUrl: getCopyText(item.play_url || item.file_url, item.cover_url),
|
|
|
allow_skip: item.allow_skip,
|
|
|
logWatchHistory: logWatchHistory
|
|
|
});
|
|
|
};
|
|
|
var getCopyText = function getCopyText(file_url, cover_url) {
|
|
|
var url = base64.Base64.decode(file_url);
|
|
|
if (file_url) {
|
|
|
return "<video src=\"".concat(url, "\" controls=\"true\" controlslist=\"nodownload\" width=\"").concat(DEFAULT_VIDEO_WIDTH_IN_MD, "\" height=\"").concat(DEFAULT_VIDEO_HEIGHT_IN_MD, "\" poster=\"").concat(cover_url, "\">\u60A8\u7684\u6D4F\u89C8\u5668\u4E0D\u652F\u6301 video \u6807\u7B7E\u3002</video>");
|
|
|
}
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
|
|
|
children: [classroomList === null || classroomList === void 0 || (_classroomList$detail = classroomList.detailVideoList) === null || _classroomList$detail === void 0 || (_classroomList$detail = _classroomList$detail.videos) === null || _classroomList$detail === void 0 ? void 0 : _classroomList$detail.map(function (item, key) {
|
|
|
var _item$cover_url;
|
|
|
var imgUrl = item !== null && item !== void 0 && item.cover_url ? item !== null && item !== void 0 && (_item$cover_url = item.cover_url) !== null && _item$cover_url !== void 0 && _item$cover_url.includes('https') ? item.cover_url : env/* default */.Z.API_SERVER + item.cover_url : default_namespaceObject;
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
className: Itemsmodules.wrap,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(card/* default */.Z, {
|
|
|
className: "animated fadeIn ".concat(Itemsmodules.cardWrap),
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(spin/* default */.Z, {
|
|
|
tip: "\u6B63\u5728\u8F6C\u7801\uFF0C\u8BF7\u7A0D\u7B49...",
|
|
|
spinning: !item.transcoded && !item.link,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
className: Itemsmodules.imgWrap,
|
|
|
onClick: function onClick() {
|
|
|
!isReview && handleVideoClick(item);
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
src: imgUrl
|
|
|
}), item.link && /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
className: Itemsmodules.linkWrap,
|
|
|
href: item.link,
|
|
|
onClick: /*#__PURE__*/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/watch_video_histories/click_link_histories.json", {
|
|
|
method: 'post',
|
|
|
body: {
|
|
|
video_link_id: item.id,
|
|
|
device: 'pc'
|
|
|
}
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context.sent;
|
|
|
case 3:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
})),
|
|
|
target: "_blank",
|
|
|
title: item.title,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: Itemsmodules.link,
|
|
|
children: "\u5916\u94FE"
|
|
|
})
|
|
|
}), !isReview && /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Itemsmodules.mask
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Itemsmodules.playIconWrap,
|
|
|
children: !item.link && /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
className: Itemsmodules.playIcon,
|
|
|
src: play
|
|
|
})
|
|
|
})]
|
|
|
})]
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Itemsmodules.cardBottom,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Itemsmodules.bottomTitle,
|
|
|
children: item.title
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Itemsmodules.timeWrap,
|
|
|
children: (item.total_time || parseInt(item.total_time) > 0) && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Itemsmodules.time,
|
|
|
children: "\u7D2F\u8BA1\u5B66\u4E60\u65F6\u957F\uFF1A".concat((0,util/* toTimeFormat */.li)(parseInt(item.total_time)))
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Itemsmodules.bottomActionWrap,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: Itemsmodules.peopleWrap,
|
|
|
children: !!item.people_num && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
title: "\u89C2\u770B\u4EBA\u6570",
|
|
|
placement: "top",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "icon-dianjiliang iconfont font12",
|
|
|
children: item.people_num
|
|
|
})
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
children: [(userid === item.user_id || !isReview && SecondCategory > 0 && (0,authority/* isAdminOrCreator */.aN)()) && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
title: "\u79FB\u52A8",
|
|
|
placement: "top",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "".concat(Itemsmodules.actionIcon, " icon-yidong iconfont"),
|
|
|
onClick: function onClick() {
|
|
|
dispatch({
|
|
|
type: 'classroomList/setActionTabs',
|
|
|
payload: {
|
|
|
key: '移动目录',
|
|
|
params: params,
|
|
|
data: item
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
style: {
|
|
|
marginTop: '1px',
|
|
|
display: 'inline-block'
|
|
|
}
|
|
|
})
|
|
|
}), (0,authority/* isAdminOrTeacher */.G5)() && !isReview && !item.link ? /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
title: "\u7EDF\u8BA1",
|
|
|
placement: "top",
|
|
|
children: (0,authority/* isAdminOrTeacher */.G5)() ? /*#__PURE__*/(0,jsx_runtime.jsxs)(_umi_production_exports.Link, {
|
|
|
to: "/classrooms/".concat(params.coursesId, "/video/").concat((data === null || data === void 0 ? void 0 : data.category_id) || (data === null || data === void 0 ? void 0 : data.course_module_id), "/statistics/").concat(item.course_video_id, "?title=").concat(item.title),
|
|
|
children: [" ", /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "icon-tongji1 iconfont ".concat(Itemsmodules.actionIcon),
|
|
|
style: {
|
|
|
marginTop: '1px',
|
|
|
display: 'inline-block'
|
|
|
}
|
|
|
})]
|
|
|
}) : null
|
|
|
}) : null, (0,authority/* isStudent */.dE)() && !isReview && !item.link ? /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
title: "\u7EDF\u8BA1",
|
|
|
placement: "top",
|
|
|
children: (0,authority/* isStudent */.dE)() ? /*#__PURE__*/(0,jsx_runtime.jsx)(_umi_production_exports.Link, {
|
|
|
className: "font16",
|
|
|
to: "/classrooms/".concat(params.coursesId, "/video/").concat((data === null || data === void 0 ? void 0 : data.category_id) || (data === null || data === void 0 ? void 0 : data.course_module_id), "/studentstatistics"),
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "icon-tongji1 iconfont ".concat(Itemsmodules.actionIcon),
|
|
|
style: {
|
|
|
marginTop: '1px',
|
|
|
display: 'inline-block'
|
|
|
}
|
|
|
})
|
|
|
}) : null
|
|
|
}) : null, (userid === item.user_id || (0,authority/* isAdminOrCreator */.aN)()) && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
title: "\u7F16\u8F91",
|
|
|
placement: "top",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "".concat(Itemsmodules.actionIcon, " icon-bianji1 iconfont"),
|
|
|
onClick: function onClick() {
|
|
|
dispatch({
|
|
|
type: 'classroomList/setActionTabs',
|
|
|
payload: {
|
|
|
key: item.link ? '增加外链' : '编辑视频',
|
|
|
params: params,
|
|
|
data: item //data有无数据判断是增加还是编辑外链视频
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
style: {
|
|
|
marginTop: '1px',
|
|
|
display: 'inline-block'
|
|
|
}
|
|
|
})
|
|
|
}), !isReview && !item.link && /*#__PURE__*/(0,jsx_runtime.jsx)(lib.CopyToClipboard, {
|
|
|
text: getCopyText(item.play_url || item.file_url, item.cover_url),
|
|
|
onCopy: function onCopy() {
|
|
|
return message/* default */.ZP.success('复制成功');
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
title: "\u590D\u5236\u94FE\u63A5",
|
|
|
placement: "top",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "".concat(Itemsmodules.actionIcon, " icon-fuzhi iconfont")
|
|
|
})
|
|
|
})
|
|
|
}), (userid === item.user_id || (0,authority/* isAdminOrCreatorOrOperation */.Rb)()) && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
title: "\u5220\u9664",
|
|
|
placement: "top",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "".concat(Itemsmodules.actionIcon, " icon-shanchu iconfont"),
|
|
|
onClick: function onClick() {
|
|
|
dispatch({
|
|
|
type: 'classroomList/setActionTabs',
|
|
|
payload: {
|
|
|
key: '删除',
|
|
|
params: params,
|
|
|
data: item
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
style: {
|
|
|
marginTop: '1px',
|
|
|
display: 'inline-block'
|
|
|
}
|
|
|
})
|
|
|
})]
|
|
|
})]
|
|
|
})]
|
|
|
})]
|
|
|
})
|
|
|
}, item.id + '-' + key);
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(Modal/* VideoModal */.K, objectSpread2_default()(objectSpread2_default()({}, currentVideo), {}, {
|
|
|
visible: visible,
|
|
|
width: 800,
|
|
|
onClose: function onClose() {
|
|
|
setVisible(false);
|
|
|
setCurrentVideo({});
|
|
|
}
|
|
|
}))]
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var Video_Items = ((0,_umi_production_exports.connect)(function (_ref3) {
|
|
|
var classroomList = _ref3.classroomList;
|
|
|
return {
|
|
|
classroomList: classroomList
|
|
|
};
|
|
|
})(Items));
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/toConsumableArray.js
|
|
|
var toConsumableArray = __webpack_require__(37205);
|
|
|
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Video/HtmlDrag/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var HtmlDragmodules = ({"root":"root___egCyx","title":"title___CK8yp"});
|
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Video/HtmlDrag/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var HtmlDrag = function HtmlDrag(_ref) {
|
|
|
var _ref$dataSource = _ref.dataSource,
|
|
|
dataSource = _ref$dataSource === void 0 ? [] : _ref$dataSource,
|
|
|
count = _ref.count,
|
|
|
dispatch = _ref.dispatch;
|
|
|
var params = (0,_umi_production_exports.useParams)();
|
|
|
var _useState = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
data = _useState2[0],
|
|
|
setData = _useState2[1];
|
|
|
var dragged = (0,_react_17_0_2_react.useRef)(null);
|
|
|
var target = (0,_react_17_0_2_react.useRef)(null);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (!!dataSource) {
|
|
|
setData(toConsumableArray_default()(dataSource));
|
|
|
}
|
|
|
}, [dataSource]);
|
|
|
|
|
|
/**
|
|
|
* @function 数组重排序
|
|
|
*
|
|
|
*/
|
|
|
var handleData = function handleData() {
|
|
|
dragged.current.style.opacity = '1';
|
|
|
dragged.current.style.transform = 'scale(1)';
|
|
|
var from = dragged.current.dataset.id; // 拖动元素id
|
|
|
var to = target.current.dataset.id; // 放置目标id
|
|
|
if (from !== to) {
|
|
|
var newData = toConsumableArray_default()(data);
|
|
|
// 删除原位置拖动元素;指定位置插入拖动元素
|
|
|
newData.splice(to, 0, newData.splice(from, 1)[0]);
|
|
|
setData(newData);
|
|
|
dragged.current = target.current; // 改变dragged,便于
|
|
|
onSortEdit(data[from], Number(to) + 1);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @function 规定当元素被拖动时,会发生什么
|
|
|
* */
|
|
|
var onDragStart = function onDragStart(e) {
|
|
|
dragged.current = e.target;
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @function 元素被拖动到一个有效目标时触发的事件;第一个触发
|
|
|
* @description 元素被拖动到一个有效目标时,以下数据依次触发 dragenter,dragover,drop
|
|
|
* */
|
|
|
var onDragEnter = function onDragEnter(e) {
|
|
|
e.preventDefault(); // 阻止默认事件
|
|
|
if (e.target.tagName !== 'LI') {
|
|
|
return;
|
|
|
}
|
|
|
target.current = e.target;
|
|
|
target.current.style.opacity = '0.2';
|
|
|
target.current.style.transform = 'scale(1.1)';
|
|
|
handleData();
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @function 元素被拖动到一个有效目标时触发的事件;第二个触发
|
|
|
* @description
|
|
|
* 默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,
|
|
|
* 我们必须阻止对元素的默认处理方式。
|
|
|
* 这要通过调用 ondragover 事件的 event.preventDefault() 方法
|
|
|
* */
|
|
|
var onDragOver = function onDragOver(e) {
|
|
|
e.preventDefault();
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @function 元素被拖动到一个有效目标时触发的事件;第三个(最后)触发
|
|
|
* @description 元素被拖动到一个有效目标时,以下数据依次触发 dragenter,dragover,drop
|
|
|
* */
|
|
|
var onDrop = function onDrop(e) {
|
|
|
e.preventDefault();
|
|
|
dragged.current.style.opacity = '1';
|
|
|
dragged.current.style.transform = 'scale(1)';
|
|
|
};
|
|
|
var onSortEdit = /*#__PURE__*/function () {
|
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee(item, position) {
|
|
|
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/courses/".concat(params === null || params === void 0 ? void 0 : params.coursesId, "/sort_video.json"), {
|
|
|
method: 'put',
|
|
|
body: {
|
|
|
course_id: params.coursesId,
|
|
|
video_id: (item === null || item === void 0 ? void 0 : item.course_video_id) || (item === null || item === void 0 ? void 0 : item.id),
|
|
|
position: Number(position)
|
|
|
}
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context.sent;
|
|
|
return _context.abrupt("return", res);
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return function onSortEdit(_x, _x2) {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var listItems = data.map(function (item, index) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("li", {
|
|
|
"data-id": index,
|
|
|
style: {
|
|
|
background: item.bgColor
|
|
|
},
|
|
|
draggable: "true",
|
|
|
onDragStart: onDragStart,
|
|
|
onDragOver: onDragOver,
|
|
|
onDrop: onDrop,
|
|
|
onDragEnter: onDragEnter,
|
|
|
"data-item": JSON.stringify(item),
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
src: (item === null || item === void 0 ? void 0 : item.cover_url) || default_namespaceObject
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
title: item.title,
|
|
|
className: HtmlDragmodules.title,
|
|
|
children: item.title
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
|
|
|
className: "ml10 mb10",
|
|
|
children: ["\u7D2F\u8BA1\u5B66\u4E60\u65F6\u95F4", (0,util/* toTimeFormat */.li)(parseInt(item.total_time))]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
|
|
|
className: "ml10 mb10",
|
|
|
style: {
|
|
|
width: 100
|
|
|
},
|
|
|
placeholder: index + 1,
|
|
|
onBlur: ( /*#__PURE__*/function () {
|
|
|
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2(e) {
|
|
|
var reg, result;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
if (e.target.value) {
|
|
|
_context2.next = 2;
|
|
|
break;
|
|
|
}
|
|
|
return _context2.abrupt("return");
|
|
|
case 2:
|
|
|
reg = /^([1-9][0-9]*)$/;
|
|
|
if (reg.test(e.target.value)) {
|
|
|
_context2.next = 6;
|
|
|
break;
|
|
|
}
|
|
|
message/* default */.ZP.info('请输入大于0的正整数');
|
|
|
return _context2.abrupt("return");
|
|
|
case 6:
|
|
|
if (!(parseInt(e.target.value) > count)) {
|
|
|
_context2.next = 9;
|
|
|
break;
|
|
|
}
|
|
|
message/* default */.ZP.info('数字不能大于总数量');
|
|
|
return _context2.abrupt("return");
|
|
|
case 9:
|
|
|
_context2.next = 11;
|
|
|
return onSortEdit(item, e.target.value);
|
|
|
case 11:
|
|
|
result = _context2.sent;
|
|
|
if ((result === null || result === void 0 ? void 0 : result.status) === 0) {
|
|
|
dispatch({
|
|
|
type: 'classroomList/setUpdateData',
|
|
|
payload: Math.random()
|
|
|
});
|
|
|
}
|
|
|
case 13:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
}));
|
|
|
return function (_x3) {
|
|
|
return _ref3.apply(this, arguments);
|
|
|
};
|
|
|
}())
|
|
|
})]
|
|
|
}, index);
|
|
|
});
|
|
|
console.log(data, 2222);
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("aside", {
|
|
|
className: HtmlDragmodules.root,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("ul", {
|
|
|
className: "contain",
|
|
|
children: listItems
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var Video_HtmlDrag = (HtmlDrag);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Video/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var _excluded = ["classroomList", "globalSetting", "loading", "user", "dispatch"];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var SubMenu = menu/* default */.Z.SubMenu;
|
|
|
var Content = layout/* default */.Z.Content,
|
|
|
Sider = layout/* default */.Z.Sider;
|
|
|
var ShixunsListPage = function ShixunsListPage(_ref) {
|
|
|
var _detailVideoList$vide, _classroomList$detail;
|
|
|
var classroomList = _ref.classroomList,
|
|
|
globalSetting = _ref.globalSetting,
|
|
|
loading = _ref.loading,
|
|
|
user = _ref.user,
|
|
|
dispatch = _ref.dispatch,
|
|
|
props = objectWithoutProperties_default()(_ref, _excluded);
|
|
|
var param = (0,_umi_production_exports.useParams)();
|
|
|
var _useState = (0,_react_17_0_2_react.useState)({
|
|
|
page: 1,
|
|
|
limit: 15
|
|
|
}),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
params = _useState2[0],
|
|
|
setParams = _useState2[1];
|
|
|
var detailVideoList = classroomList.detailVideoList,
|
|
|
updateData = classroomList.updateData;
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)({}),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
selectArrs = _useState4[0],
|
|
|
setSelectArrs = _useState4[1];
|
|
|
params['id'] = param['coursesId'];
|
|
|
//排序or正常显示
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(true),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
isSort = _useState6[0],
|
|
|
setIsSort = _useState6[1];
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (updateData) {
|
|
|
console.log(params, updateData, 'params');
|
|
|
dispatch({
|
|
|
type: 'classroomList/getVideoList',
|
|
|
payload: objectSpread2_default()({}, params)
|
|
|
});
|
|
|
}
|
|
|
}, [updateData]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
console.log(params, updateData, 'params11');
|
|
|
if (param['categoryId'] != 0) params['category_id'] = param['categoryId'];
|
|
|
dispatch({
|
|
|
type: 'classroomList/setUpdateData',
|
|
|
payload: Math.random()
|
|
|
});
|
|
|
setTimeout(function () {
|
|
|
dispatch({
|
|
|
type: 'classroomList/setUpdateData',
|
|
|
payload: ''
|
|
|
});
|
|
|
}, 200);
|
|
|
}, [location.pathname]);
|
|
|
var onShowSizeChange = function onShowSizeChange(current, pageSize) {
|
|
|
params.page = current;
|
|
|
setParams(objectSpread2_default()({}, params));
|
|
|
dispatch({
|
|
|
type: 'classroomList/getVideoList',
|
|
|
payload: objectSpread2_default()({}, params)
|
|
|
});
|
|
|
};
|
|
|
var onMenuSelect = function onMenuSelect(v) {
|
|
|
if (v.key === 'all') {
|
|
|
_umi_production_exports.history.push("/classrooms/".concat(params.id, "/video"));
|
|
|
} else {
|
|
|
_umi_production_exports.history.push("/classrooms/".concat(params.id, "/live_video"));
|
|
|
}
|
|
|
};
|
|
|
var Menus = [{
|
|
|
name: '视频',
|
|
|
id: 'all',
|
|
|
total: detailVideoList === null || detailVideoList === void 0 ? void 0 : detailVideoList.videos_count
|
|
|
}, {
|
|
|
name: '直播',
|
|
|
id: 1,
|
|
|
total: detailVideoList === null || detailVideoList === void 0 ? void 0 : detailVideoList.lives_count
|
|
|
}];
|
|
|
var pollsStatus = {
|
|
|
1: '未发布',
|
|
|
2: '提交中',
|
|
|
3: '已截止',
|
|
|
4: '已结束'
|
|
|
};
|
|
|
var handleDelete = function handleDelete(id) {
|
|
|
modal/* default */.Z.confirm({
|
|
|
title: '提示',
|
|
|
centered: true,
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Videomodules.modal,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: "\u8BE5\u89C6\u9891\u5C06\u88AB\u5220\u9664\uFF0C\u4E0D\u53EF\u6062\u590D"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: "\u662F\u5426\u786E\u8BA4\u5220\u9664?"
|
|
|
})]
|
|
|
}),
|
|
|
okText: '确认',
|
|
|
cancelText: '取消',
|
|
|
onOk: function () {
|
|
|
var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
};
|
|
|
var handleLogWatchHistory = function handleLogWatchHistory(query) {
|
|
|
return dispatch({
|
|
|
type: 'userDetail/logWatchHistory',
|
|
|
payload: query
|
|
|
});
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("section", {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(TabMenu/* default */.Z, {
|
|
|
isLoading: false,
|
|
|
tabDataSource: Menus,
|
|
|
isAdmin: (0,authority/* isAdmin */.GJ)(),
|
|
|
onTabMenuClick: onMenuSelect,
|
|
|
defaultSelectedKeys: ['all'],
|
|
|
showControlButton: isSort && (0,authority/* isAdminOrTeacher */.G5)(),
|
|
|
buttonText: "\u4E0A\u4F20\u89C6\u9891",
|
|
|
buttonIcon: "icon-shangchuan3 font18",
|
|
|
extraNode: (0,authority/* isAdmin */.GJ)() && /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
|
|
|
align: "middle",
|
|
|
className: "mr20",
|
|
|
children: [isSort && (0,authority/* isAdmin */.GJ)() && /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "c-blue font16 mr20 current",
|
|
|
onClick: function onClick(e) {
|
|
|
dispatch({
|
|
|
type: 'classroomList/setActionTabs',
|
|
|
payload: {
|
|
|
key: '新建子目录',
|
|
|
params: params
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
title: "\u65B0\u5EFA\u5B50\u76EE\u5F55",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-xinjianmulu1 font14"
|
|
|
})
|
|
|
})
|
|
|
}), isSort && (0,authority/* isAdmin */.GJ)() && /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
onClick: function onClick() {
|
|
|
return _umi_production_exports.history.push("/classrooms/".concat(param.coursesId, "/video/").concat((detailVideoList === null || detailVideoList === void 0 ? void 0 : detailVideoList.category_id) || (detailVideoList === null || detailVideoList === void 0 ? void 0 : detailVideoList.course_module_id), "/statistics"));
|
|
|
},
|
|
|
className: "font14 mr20 c-blue font14 current",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-tongji4 font14 mr5"
|
|
|
}), "\u7EDF\u8BA1\u603B\u89C8"]
|
|
|
}), isSort && (0,authority/* isStudent */.dE)() && /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
onClick: function onClick() {
|
|
|
return _umi_production_exports.history.push("/classrooms/".concat(param.coursesId, "/video/").concat((detailVideoList === null || detailVideoList === void 0 ? void 0 : detailVideoList.category_id) || (detailVideoList === null || detailVideoList === void 0 ? void 0 : detailVideoList.course_module_id), "/studentstatistics"));
|
|
|
},
|
|
|
className: "font14 mr20 c-blue font14 current",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-tongji4 font14 mr5"
|
|
|
}), "\u7EDF\u8BA1\u603B\u89C8"]
|
|
|
}), isSort && (0,authority/* isAdmin */.GJ)() && /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
className: "c-blue font14 mr20 current",
|
|
|
onClick: function onClick(e) {
|
|
|
e.preventDefault();
|
|
|
dispatch({
|
|
|
type: 'classroomList/setActionTabs',
|
|
|
payload: {
|
|
|
key: '增加外链',
|
|
|
params: params
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-lianjie2 font14 mr5"
|
|
|
}), "\u589E\u52A0\u5916\u94FE"]
|
|
|
}), ((0,authority/* isAdminOrTeacher */.G5)() || (0,authority/* isAssistant */.Rm)()) && /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
style: {
|
|
|
display: 'flex',
|
|
|
alignItems: 'center'
|
|
|
},
|
|
|
className: "c-blue font14 current",
|
|
|
onClick: function onClick() {
|
|
|
setIsSort(!isSort);
|
|
|
if (!isSort) {
|
|
|
dispatch({
|
|
|
type: 'classroomList/setUpdateData',
|
|
|
payload: Math.random()
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-tiaozhengpaixu2 mr5"
|
|
|
}), isSort ? '调整排序' : '结束排序']
|
|
|
})]
|
|
|
}),
|
|
|
onButtonClick: function onButtonClick() {
|
|
|
_umi_production_exports.history.push(param.categoryId ? "/classrooms/".concat(param.coursesId, "/video/").concat(user.userInfo.login, "/upload?categoryId=").concat(param.categoryId) : "/classrooms/".concat(param.coursesId, "/video/").concat(user.userInfo.login, "/upload"));
|
|
|
}
|
|
|
}), (detailVideoList === null || detailVideoList === void 0 ? void 0 : detailVideoList.videos_count) === 0 && /*#__PURE__*/(0,jsx_runtime.jsx)(NoData/* default */.Z, {}), !!(detailVideoList !== null && detailVideoList !== void 0 && (_detailVideoList$vide = detailVideoList.videos) !== null && _detailVideoList$vide !== void 0 && _detailVideoList$vide.length) && /*#__PURE__*/(0,jsx_runtime.jsx)(spin/* default */.Z, {
|
|
|
spinning: loading['classroomList/getVideoList'],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Videomodules.card,
|
|
|
children: [!!isSort && /*#__PURE__*/(0,jsx_runtime.jsx)(Video_Items, {
|
|
|
dispatch: dispatch,
|
|
|
data: objectSpread2_default()({}, detailVideoList),
|
|
|
userid: user.userInfo.user_id,
|
|
|
isReview: params.category === 'pending',
|
|
|
onDelete: handleDelete,
|
|
|
logWatchHistory: handleLogWatchHistory
|
|
|
}), !isSort && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
style: {
|
|
|
height: 20
|
|
|
}
|
|
|
}), !isSort && /*#__PURE__*/(0,jsx_runtime.jsx)(Video_HtmlDrag, {
|
|
|
dataSource: detailVideoList === null || detailVideoList === void 0 ? void 0 : detailVideoList.videos,
|
|
|
count: classroomList === null || classroomList === void 0 || (_classroomList$detail = classroomList.detailVideoList) === null || _classroomList$detail === void 0 ? void 0 : _classroomList$detail.videos_count,
|
|
|
dispatch: dispatch
|
|
|
})]
|
|
|
})
|
|
|
}), isSort && /*#__PURE__*/(0,jsx_runtime.jsx)("aside", {
|
|
|
className: "tc mb50 mt30",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(pagination/* default */.Z, {
|
|
|
hideOnSinglePage: true,
|
|
|
showSizeChanger: false,
|
|
|
onChange: onShowSizeChange,
|
|
|
defaultCurrent: 1,
|
|
|
pageSize: 15,
|
|
|
current: params.page || 1,
|
|
|
total: detailVideoList === null || detailVideoList === void 0 ? void 0 : detailVideoList.videos_count
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(DelTasks, {}), /*#__PURE__*/(0,jsx_runtime.jsx)(Edit, {
|
|
|
data: selectArrs
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(VideoEdit, {}), /*#__PURE__*/(0,jsx_runtime.jsx)(MoveCatalog, {}), /*#__PURE__*/(0,jsx_runtime.jsx)(AddLink, {}), /*#__PURE__*/(0,jsx_runtime.jsx)(AddCategory, {}), /*#__PURE__*/(0,jsx_runtime.jsx)(VideoLinkEdit, {})]
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var Video = ((0,_umi_production_exports.connect)(function (_ref2) {
|
|
|
var classroomList = _ref2.classroomList,
|
|
|
loading = _ref2.loading,
|
|
|
user = _ref2.user,
|
|
|
globalSetting = _ref2.globalSetting;
|
|
|
return {
|
|
|
user: user,
|
|
|
classroomList: classroomList,
|
|
|
globalSetting: globalSetting,
|
|
|
loading: loading.effects
|
|
|
};
|
|
|
})(ShixunsListPage));
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 51130:
|
|
|
/*!*****************************************************************************!*\
|
|
|
!*** ./src/pages/Classrooms/Lists/components/TabMenu/index.tsx + 1 modules ***!
|
|
|
\*****************************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ components_TabMenu; }
|
|
|
});
|
|
|
|
|
|
// 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/row/index.js
|
|
|
var row = __webpack_require__(95237);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/col/index.js
|
|
|
var col = __webpack_require__(43604);
|
|
|
// 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/dropdown/index.js + 1 modules
|
|
|
var dropdown = __webpack_require__(38854);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/components/TabMenu/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var TabMenumodules = ({"tabMenuContainer":"tabMenuContainer___uf5IP","control":"control___GheLs","iconH":"iconH___Wzw_r","selectBtn":"selectBtn___mfEnI"});
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/components/TabMenu/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var TabMenu = function TabMenu(_ref) {
|
|
|
var isLoading = _ref.isLoading,
|
|
|
addText = _ref.addText,
|
|
|
tabDataSource = _ref.tabDataSource,
|
|
|
isAdmin = _ref.isAdmin,
|
|
|
defaultSelectedKeys = _ref.defaultSelectedKeys,
|
|
|
onTabMenuClick = _ref.onTabMenuClick,
|
|
|
getDropdownMenu = _ref.getDropdownMenu,
|
|
|
showControlButton = _ref.showControlButton,
|
|
|
buttonText = _ref.buttonText,
|
|
|
_ref$buttonIcon = _ref.buttonIcon,
|
|
|
buttonIcon = _ref$buttonIcon === void 0 ? 'icon-tianjiadaohang' : _ref$buttonIcon,
|
|
|
extraNode = _ref.extraNode,
|
|
|
_ref$onButtonClick = _ref.onButtonClick,
|
|
|
onButtonClick = _ref$onButtonClick === void 0 ? function () {} : _ref$onButtonClick;
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: TabMenumodules.tabMenuContainer,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
flex: "1",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(menu/* default */.Z, {
|
|
|
onSelect: function onSelect(v) {
|
|
|
return !isLoading ? onTabMenuClick(v) : {};
|
|
|
},
|
|
|
mode: "horizontal",
|
|
|
selectedKeys: defaultSelectedKeys,
|
|
|
children: tabDataSource.map(function (item) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(menu/* default */.Z.Item, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "c-grey-666",
|
|
|
children: item.name
|
|
|
}), item.total !== undefined && isAdmin && /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "c-grey-999 ml20",
|
|
|
children: item.total || 0
|
|
|
})]
|
|
|
}, typeof item.index === 'number' ? item.index : item.id);
|
|
|
})
|
|
|
})
|
|
|
}), isAdmin && /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
className: "mr20",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: TabMenumodules.control,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: TabMenumodules.extra,
|
|
|
children: extraNode
|
|
|
}), showControlButton && /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
onClick: onButtonClick,
|
|
|
style: {
|
|
|
cursor: 'pointer'
|
|
|
},
|
|
|
className: TabMenumodules.selectBtn,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont ".concat(buttonIcon)
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: buttonText
|
|
|
})]
|
|
|
}), !!getDropdownMenu && /*#__PURE__*/(0,jsx_runtime.jsx)(dropdown/* default */.Z, {
|
|
|
className: "ml10",
|
|
|
dropdownRender: getDropdownMenu,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
className: TabMenumodules.selectBtn,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-tianjiadaohang"
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: addText ? addText : '创建试卷'
|
|
|
})]
|
|
|
})
|
|
|
})]
|
|
|
})
|
|
|
})]
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var components_TabMenu = (TabMenu);
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 44000:
|
|
|
/*!**********************************************************!*\
|
|
|
!*** ./node_modules/_antd@5.9.0@antd/es/layout/index.js ***!
|
|
|
\**********************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
/* harmony import */ var _layout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./layout */ 84966);
|
|
|
/* harmony import */ var _Sider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Sider */ 86737);
|
|
|
"use client";
|
|
|
|
|
|
|
|
|
|
|
|
const Layout = _layout__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .ZP;
|
|
|
Layout.Header = _layout__WEBPACK_IMPORTED_MODULE_0__/* .Header */ .h4;
|
|
|
Layout.Footer = _layout__WEBPACK_IMPORTED_MODULE_0__/* .Footer */ .$_;
|
|
|
Layout.Content = _layout__WEBPACK_IMPORTED_MODULE_0__/* .Content */ .VY;
|
|
|
Layout.Sider = _Sider__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z;
|
|
|
/* harmony default export */ __webpack_exports__.Z = (Layout);
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 36193:
|
|
|
/*!******************************************!*\
|
|
|
!*** ./src/assets/images/video/play.png ***!
|
|
|
\******************************************/
|
|
|
/***/ (function(module) {
|
|
|
|
|
|
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6CAYAAACI7Fo9AAAAAXNSR0IArs4c6QAAGwBJREFUeF7tnQnwLUV1xr9P0YioBNegiCjKKqICYRGI7GBkEUFW2dxCQEWRzfdUVBBEEnFBE0FQxAVEEbWirFouiGFRQBRxQ8Et5RJ34/aljvYzN4//e3d6pmeme/p01a0/9eg+fc7X/bs9d6bnNOHFFXAFJq8AJx+hB+gKuAJw0H0SuAIVKOCgVzDIHqIr4KD7HHAFKlDAQa9gkD1EV8BB9zngClSggINewSB7iK6Ag+5zwBWoQAEHvYJB9hBdAQd9AnNA0t0BrATg3uGv/feSz0L/ZlH/aqnPr5f1byT/OAGZqg7BQS9o+CU9DMDaANZZ6u8jeg7j2wC+CuDW2b8kv9tzv24+kQIOeiIhU5qRZOBuvADQ90vZTwJbP1/gC+A6kvbF4CUjBRz0DAZD0qMAbAZgm/BZMwO3urjwDQCfCJ9rSH6zizFv210BB727htEWJK0VwDa4nwxg3WgjZTX4CoBPArjGPiRvK8v98r110AcYQ0krANgTwPYB8A0G6DbnLm4O0F8B4IMk/5Czs1PwzUHvcRQlbRoAfxqAx/TYVcmmvwbg4gD850sOJGffHfTEoyNpVQAGtq3g2yU2P3VzVxrwBj7J70892CHjc9ATqS3pqTOA/20is7Wa+e8Z4D9aqwgp43bQO6gp6eEADguAb9jBlDddtgI3hkv7c0je4UK1U8BBb6GbJNu0YoDb54EtTHiTeAV+BOAc+5C0zTteIhRw0CPEkvREAIcGwG1rqZfhFbCtugb8uSRvGL77Mnt00BuMm6QtA9wGuZd8FDg3rPCfycelPD1x0JczLpJ2DIDvk+fwuVdBgQsC8Je5Igsr4KAvoIukLQAcC2B3nzhFKXAJgNNIXl2U1wM466DPiCxplQC4QX63AfT3LtIr8CeDPQD/0/Tmy7TooIdxk3RQgHz9MofSvV5KgVsC7Oe5MvADHCTZ66DHAdjLJ8QkFbgIwGtJXjfJ6BoGVe2KLskysNglukH+Nw318mplKvA/BntY4S2zTnWlStAl7RsAf3x1I153wF8Mq/v7apOhKtAl3R/AKQCeW9tAe7z/T4G3ATiB5E9q0aUa0CXtAOBUALa7zYsrYLvqjid5eQ1SVAG6pJcCOLmGAfUYoxVYRPI10a0KazBp0MPLJ3apbu+He3EFlqWAJb6wS/nJviwzWdAlHRB+j9urpF5cgXkK2CuwBvu751Us8f9PDnRJ9wqAH1XigLjPoytwRgD+t6N7ktCBSYEuyR6XvRHAVgk1clP1KfBpAC8gaY/jJlEmA7okS5tsry2uMYmR8SDGVuB2yz1A0tJUF18mAboku9lmyQg8V1vxUzKrACx33WEk7WZd0aV40MNNt/OLHgV3PncFDiz9Jl3RoEt6FoCzc58l7t8kFHg2ybeXGkmxoEs6AsCbSxXe/S5SgSNJnlmi50WCLuloAKeXKLj7XLwCLyH5L6VFURzokhYBOKk0od3fSSmwmGRRW6qLAl3SiwEU9206qSnuwSxR4GiS/1qKHMWALmk/AO8pRVj3swoF9if53hIiLQJ0STsB+HgJgrqP1SmwM8lLc486e9AlbQPgqtyFdP+qVmBbkp/IWYGsQQ8npNi+Yy+uQO4KbEUy2xNjsgVd0qYArsl9dN0/V2BGgc1Ifj5HRbIEXdITAHwMwENyFM19cgWWocAPAexC8gu5KZQd6JIeC8BycdvRxF5cgdIUsCw1e5H8Uk6OZwW6JMuvfgUAO73UiytQqgL2W317kpZPPouSG+ivB+CZYbKYGu5ERwXOIPmijjaSNc8GdH/dNNmYuqF8FMjm9dYsQJe0Vrhk90SO+UxS96S7ApZw0i7hb+tuqpuFXED/oKdk7jaQ3jpbBS4muefY3o0Ouh+uMPYU8P4HUGD0QyJGBV3SjgCy3yc8wETwLqavwE4kLxsrzNFADwce2rlXfhbaWKPv/Q6pgJ31tsNYBzuOCfq/+6mmQ84z7ysDBd5G8nlj+DEK6OF88iLe4x1jULzPSSuwH8nBz2cfHHRJKwGwnUN2qooXV6A2Bez0ly1J/mrIwMcA/ZUAXj5kkN6XK5CZAq8i+YohfRoUdEkbh9Xc9rR7cQVqVcD2wNuqft1QAgwN+vvtzZ6hgvN+XIGMFbiI5N5D+TcY6JIOAvDOoQLzflyBAhQ4mOR5Q/g5COiS7PBDuwG3/hBBeR+uQCEK3BIu4e0wx17LUKCfAuD4XiNx465AmQqcSvKEvl3vHXRJm4fV/G59B+P2XYECFfhTWNU/16fvQ4D+IQC79xmE23YFClfgEpJ79BlDr6D7Syt9Dp3bnpgCvb700jfottVvn4kNiIfjCvShwAUk9+3DsNnsDXQ/fCF6yH4M4KPhY5lEvwfglwAeFj7PBmCPKL1MV4HeDoHoE/RzABw63TFJGpmdRvMckgb4MoukXQAcB+AfkvbuxnJR4FySh/XhTC+gS7J3zK/vw+EJ2oze9yzJ9knbp5fxm6DGJYW0EUl7dz1p6WWiSHozgCOSejpNY62foUraOsC+7TSlqTaqM0kemTr65KBLWgeAfSOtmNrZidm7yV7VJakucUlaHIBfoYsdb5uNAr+xrEskb03pUR+gvxbAsSmdnKitY0ieniI2SU8KsO+Qwp7bGF2B00javZhkJSnokiwvu63mD0zm4TQN/R7A6iR/kDI8SbaV0n67+2vAKYUd3taPwqpueeGTlNSg2yQ7MYln0zZyJ8leDquQtFmAfedpSzj56E4kaUlakpTUoN8I4HFJPJu2kRtIbtRniJLs55N98d67z37cdm8K3ERyw1TWk4Eu6akAPpLKsYnb+STJbfqOUdImAfZ/7Lsvt9+LAruStE1UnUtK0H2DTPPhGAT0Je5IOjoAf9/mLnrNDBRItoEmCeiSVgXwZQCWYMLLfAUGBd3cCZuY7FJ+t/nueY1MFLCEFOuR/H5Xf1KBbptjbJOMl2YKDA76zOpu588b8P6l3Gysxq51JMkzuzqRCvQrAGzX1ZmK2o8Geljd7SaPwf60ijQvNdQrSW7f1fnOoIfHOb1mx+gaZIbtRwV9ZnV/fgD+ARlq5C79nwKbk7ymiyApQPedcPEjkAXoYXV/bIDd03DHj+NQLTrvlOsEuqR7hJtwjx4q4on0kw3oM6v7PwfgHzwRjacUxtfDTTnbUdmqdAX9GQAuaNVz3Y2yAz2s7usG2D0rUH7zcx+SF7Z1qyvoZwN4VtvOK26XJegzq7sd7Ws36+yxqZc8FHg7Scsy1Kp0Bd2endsq4CVOgaxBD6v7WgH2/eNC89o9KfAVkuu1td0adEl2E+fmth1X3i570GdWd1tFbHVfrfIxyyH8DUh+qY0jXUD/JwBvbdOpt0ExoIfVfc0A+zN97EZV4HCS/9bGgy6g24GJnpW0jeooC/SZ1d2Sfdrq/oh2YXurjgqcR/LgNja6gP41AP5YrY3qhYIeVvc1AuyHtAvdW3VQ4OskH9OmfSvQJdmNmuWmJm7jTEVtirp0X2hcwjHYtro/qqJxyyHUtUneFutIW9DtBs1ZsZ15/b8qUDzoYXW3LDkGuz9iHW5yW/5/e6wdVdqC/i4AB0b15JVnFZgE6DO/3Q8IwLe6rPSpEaXA+SSjb4q2Bf12vyETNThLV54U6GF1t6OjXg7guZ2U8cbzFPg2SbtPElWiQZdknXwrqhevPHnQZ1Z3OyjQLuctv7+XfhR4JElbbBuXNqA/HcBFjXvwigspMLkVfTZISX8XVvfDffh7UWAvkh+IsdwG9EUATorpxOveRYFJgz6zuu8dVvf1fQ4kVWAxyZNjLLYB3W/ExSi8cN0qQLfQJT0orO7JzxPrPgzFWoi+IdcG9P8EYGmEvbRXoBrQZ1Z3+8lnN+s873/7ebOk5bUk/z7GTBvQfw7A0wbHqHzXutWBHlb3+wfYX9hNvupb/4Lk/WJUiAJdkj1CuTOmA6+7oAJVgj6zuu8RgH+Cz4/WCqxG8rtNW8eCbmdxX9nUuNdbpgJVgx5W95UD7C/2edJKge1IXtW0ZSzollesc47pps5NuF71oM+s7rsG4Dee8Hj3EdoRJN/S1HAs6G8EYCmCvXRTwEGf0U/SfQLsx3STtarWbyL5gqYRx4J+KYAdmxr3en7pHjMHJD0lAL9pTLtK615GcqemsceC/m0Aqzc17vUc9Ng5IGnFsMnmuNi2ldX/DsnGCUAagy7p7gD+UJmYfYXrl+5zlJVkq5U9d9+ir0GYgN0VSP6xSRwxoNtzu581Mep15irgoM+V6M+76u4ZVveXNqheY5WVSdq+lrklBnR7UaHz8a1zPaqjgoMeMc6S7JBBW923imhWQ9VVSf6gSaAxoFsmUDsaxkt3BRz0SA3DT0d7/fVlkU2nXP3RJL/RJMAY0G2P8o1NjHqduQo46HMlWriCpG0AnA7giS1NTKnZhiRvahJQDOibA7i6iVGvM1cBB32uRMuvIMnfogS2INnoyPIY0O130uUdx8eb/0UBBz3BTJD0MQA7JzBVqokdSF7RxPkY0HcH8KEmRr3OXAUc9LkSza8gaSMA182vOdkae5C8pEl0MaDvB+A9TYx6nbkKOOhzJWpWQdJ/ANilWe3J1dqf5HubRBUDuudyb6JoszoOejOd5taSZKmmz59bcZoVGud4jwHdkgWcMU29Bo/KQU8kuSTLR9fqhNFELoxp5iiSb2jiQAzotjspKiFdEwcqreOgJxp4STXv2FxE8jVNpHTQm6iUvo6DnkhTBz096H7pnmhy+uO1dEJKWg/ALeksFmWpl0t3vxmXbg74ip5IS0mWO/7CROZKM9PLzbj9Aby7NCUy9ddBTzQwkgxyg73GcgDJRo+8Y36j+4aZdFPJQU+gpaQdAFyWwFSpJnrZMONbYNNNBwc9gZaSvghgwwSmSjXRyxZYf6kl3XRw0DtqKelUALWnm+rlpRZ/TbXj5Jxp7qC31FLSkwPgNb/MskS9Xl5T9cQTLSfnAs0c9EgtJd0tZJmx5BNe/qJAL4knPJVUuunloEdoKWm7APnWEc1qqNpLKqmatxqmnjQOegNFJd0jAL64QfUaq/SSHNLTPaebSg76HC0l2UEhlhDySelkn5yl9OmeTSJJfoBDmrnioC9DR0n3CoCfkEbqyVrp5wCHALptTrBNCl66KeCgL6CfJEsgYav4Zt3kraL15SQbH4/WeGdcAN0PWUwzhxz0GR0lrRQAPzaNvFVY6fWQRT82Oc0cctCDjpKeGiDfJI201Vjp9dhke8zRKOtkNXK3C7R60MN75HaZfnQ7CatvtT3JK5uqEHvp/jAAdzY17vWWqUDVoEuyF6QMcj+EoT0kq5H8btPmUaCH3+l2qNt9m3bg9RZUoErQJa0SAD/K50UnBX5B0va1NC5tQL8WwMaNe/CKCylQHeiS9gyQ1/y2WSoariMZdU+jDeh+FE734aoGdEkPDIA/v7tsbiEocD7JZ8ao0Qb0RQBOiunE695FgSpAl7RXON/8sT4HkiqwmGRURuY2oNvgvT+p2/UZmzTokh4SVnF7HOslvQJ7k7woxmwb0B8B4PaYTrxuPSu6pH3CKr6uj3tvCqxB0rajNy7RoJtlSXb4+qMa9+IVl1Zgciu6pFUD4M/z4e5VgW+StNwQUaUt6GcDeFZUT155VoFJgS7JMgRbQoi1fJh7V+DtJC31elRpC3rNB9tFCbyMypMAXdJqAfDoiZdCxEptHEgyOu16W9Dtst0u3720U6B40CXZ4x1bxaMvI9tJ5q2CAmuS/GasGq1AD7/TvwJgndgOvf6fFSgWdEl2M9YAP9THcnAFbiXZ6iZnF9DfAuDwwUOdRodFgi7pkAD5GtMYhuKieCvJVo8su4B+MIB3FCdVHg4XBbok+6lmq/hBechXrReHkHxnm+i7gL42gFvbdOptyrl0l2RPV+xNs9V93EZXYB2SX23jRWvQw+/0mwH49sZ45bNf0SU9Jqzi9oTFy/gKfInkBm3d6Ar6WQD80Uq8+lmDLum5YRW3/ANe8lDgbJLPaetKV9Btu+P72nZecbssQZdkT1Hst/i+FY9NrqHvS/KCts51Bd0S7NtjNn+WGjcC2YEuyZ6g2G9xO5HHS14K2J6VdUn+vq1bnUAPv9NPA3BMWwcqbZcN6JLWD6v43pWORQlhv45kpwy5KUC3HNyfK0GtjHzMAnRJR4ZV/EEZaeOu3FWBzUle00WYzqCHVd2yUW7bxZHK2o4KuiQ7Att+i1t6Jy95K3AVScu+3KmkAv0IAG/u5EldjUcDXdILwyp+/7okLzbaI0me2dX7VKA/FMCXAazc1aFK2g8OuqQnhFXcUi17KUOBnwFYj+T3urqbBPRw+X6Ov+jQeDgGBV3Si8Mq7l/EjYcoi4rnkjwshScpQd8VwIdTOFWBjUFAl2Rpue2RmY2Nl/IU2I3kR1K4nQz0sKrfCMBu9HhZvgLRebljBZVkjzwN8vvEtvX6WShwE8lkOfBTg35i+B2YhVIZO3EHyV5eEpG0aQD8KRnH767NV+CVJI2nJCU16DZ5bwDwgCTeTdfI7+xtMJI/TBmipOPCF+2KKe26rcEV+LGdS0fyO6l6Tgp6uHz3nXLNRucYkqc3q7r8WpK2CKv4TinsuY3RFei8E27pCPoA3V6MsFXdV5Xlz5cbST6+65SS9NKwit+zqy1vn4UCvwmredJcD8lBD6u6bZ6xTTRelq/AhSTtDcDoImnLAPj20Y29Qc4KnEnStiYnLX2BvhGA65J6Ol1jJ5J8ZUx4kl4WIL97TDuvW4QCG5O8PrWnvYAeVvVzAVgyQS/zFbA8YC+fd/NFkv0Gtxtu28w36TUKVOAdJHvJrtsn6FsB+FSBYo/l8k8AXAXADs+7BYBte/wlADskwbYYWyYfS8jpZboKbE3y032E1xvoYVW3jBjP6MNxt+kKTEyB1vdrmujQN+h2qfnxJo54HVegcgV2JnlpXxr0CnpY1S8BsFtfAbhdV2ACCnyYZK9vFQ4Bum3m+AyA3vuawIB7CPUpIABbkry6z9AHgU/SKQCO7zMQt+0KFKrAqSRP6Nv3oUBfJazq6/UdkNt3BQpSwJK12Gr+0759HgT08Fvdzu1qdW5U3yK4fVdgJAUOJnneEH0PBnqA3Z4RP32IwLwPVyBzBT5Acq+hfBwa9E3CJby/gDHUCHs/OSpgrynbJfu1Qzk3KOhhVX8VANur7cUVqFWBV5O07D+DlTFAt9RG9rgtWZqcwdTyjlyB7gpYujVbzW1782BlcNDDqr4fgPcMFqV35Arko8D+JN87tDujgB5gfxuA1sfADi2U9+cKJFDgLJJ2JPXgZUzQ7aSQKwDYwQJeXIGpK/AFANuTtLcUBy+jgR5W9R0B9LaRf3A1vUNXYNkK7ETysrEEGhX0ALvlPDt5LAG8X1dgAAUWkXzNAP0ss4vRQQ+wfxDA08YUwvt2BXpS4GKSo59amwvoawO4HMDDexLbzboCYyhwB4AdSH51jM5n+8wC9LCqHwDg/LEF8f5dgYQKHEjy3QnttTaVDegB9tcDOKp1NN7QFchHgTNIvigXd3ID/V7hEt5ylntxBUpVwHZ+2iX7b3MJICvQw6pup5dcDGCNXERyP1yBCAVutxvLJL8Y0ab3qtmBHmC3vOUG+8q9K+AduALpFPhZgPwT6UymsZQl6AF2e9xmj928uAKlKLAnSVugsivZgh5gPxDAu7JTzR1yBe6qwDNJZvvUKGvQA+x2QslZPrNcgYwVeA7JszP2r4wUzJLsdMk35Syk+1atAs8naacHZ12yX9GXqCfpJQBel7Wa7lxtChxD8vQSgi4G9HAZvxjAq0sQ1n2cvAIvI3lSKVEWBXqA3Vf2UmbXdP0sZiVfMgTFgR5g933x04Uo98iy2b8eI1SRoAfYdwbwsZhgva4r0FGBXUgWeTpwsaAH2LcFcGXHwfPmrkATBbYjeVWTijnWKRr0APtWAD6Vo7ju02QU2Jrkp0uOpnjQA+ybAbBz2B9c8mC479kp8F8Adid5TXaeRTo0CdAD7E8EYPmy14rUwKu7AgspcBuA/UjeMAV5JgN6gH0DAG8F8KQpDI7HMJoCnwVwOMmbR/MgcceTAj3AbskrTgXwwsRaubk6FHgDgONzShqRQvbJgb5EFEn25tspAFZLIZTbmLwCdwI4Iec30LqMwGRBD6u7ZZe11X2PLiJ528kr8KGwio+erbUvpScN+szqvghAMfuS+xpst7ugAotJTv4AkSpAD6u7Hf9kq7uf9ebEmwJ2Fpr9Fh/tmKQhh6Ea0APsdrCjwe6nuA45y/LryxKZGOSjHHg4hhxVgT5zKW/nsx8LwDLOeqlHAcvMetoY55OPLXGVoIfV/T4B9uMA3HPsgfD+e1XgdwBeGyD/Za89ZWq8WtBnVvdNAvB7ZTpG7lY3BS4KgF/bzUzZrasHfQb4gwLw65c9pO59UOCWAPh5rgjKSA451EBJWmXmct6/BIcSPm0/mrlM/2la0+Va88m8wNhJ2gKA/XbfrdyhrdLzDxvkJK+uMvrlBO2gL0ccSTsBOAzAM3ziZK3AhQDOIXlp1l6O6JyD3kB8SZbcwoA/pEF1rzKcAu8IgBedFGIIuRz0CJUlbQTg0AD9ihFNvWo6BX5jcAM4l+T16cxO25KD3mJ8Ja0TYLdV/gEtTHiTeAV+HAC3S/Rb45vX3cJB7zD+klYPK/yeAB7XwZQ3XbYCN4UjtA3w77hQ7RRw0NvpdpdWkna1s7EBGPR+rns3Xe2ccTsy+2KSH+lmylubAg564nkg6aEzwFs6ai/NFbB0yksA/17zZl5zngIO+jyFOvx/SZvPQL9mB1NTbvqNGbg/N+VAx4zNQR9AfUn20oxd1ts78bYZx27m1VzsZpptarF3we3y3F468dKjAg56j+Iuy7Qky1ZrmWoNevtMfbW3VdvAts9np5RddYTp06pLB72VbGkbSbLcdlvPfOxufsnF7o7b6Tl//pCcbC62UgbJQc9wpCQ9EoBtzrFLfPsSsL/2sXfocyr2brddhtvHYLa/15P8Vk5Oui9+172oOSDJUlcvDb99ETy850DumAH5r1CTtBTJXgpQwFf0AgZpnouSVgBwbwArLfBZ6N/N5K+W+vx6gX+zOr8m+Yd5Pvj/z1sBBz3v8XHvXIEkCjjoSWR0I65A3go46HmPj3vnCiRRwEFPIqMbcQXyVsBBz3t83DtXIIkCDnoSGd2IK5C3Ag563uPj3rkCSRRw0JPI6EZcgbwVcNDzHh/3zhVIooCDnkRGN+IK5K3A/wKcox5kctBougAAAABJRU5ErkJggg==";
|
|
|
|
|
|
/***/ })
|
|
|
|
|
|
}]); |