|
|
"use strict";
|
|
|
(self["webpackChunk"] = self["webpackChunk"] || []).push([[33356],{
|
|
|
|
|
|
/***/ 80354:
|
|
|
/*!************************************************************************************************************!*\
|
|
|
!*** ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/FolderOpenOutlined.js + 1 modules ***!
|
|
|
\************************************************************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ icons_FolderOpenOutlined; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/esm/extends.js
|
|
|
var esm_extends = __webpack_require__(26508);
|
|
|
// 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.3.1@@ant-design/icons-svg/es/asn/FolderOpenOutlined.js
|
|
|
// This icon file is generated automatically.
|
|
|
var FolderOpenOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z" } }] }, "name": "folder-open", "theme": "outlined" };
|
|
|
/* harmony default export */ var asn_FolderOpenOutlined = (FolderOpenOutlined);
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
|
var AntdIcon = __webpack_require__(91851);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/FolderOpenOutlined.js
|
|
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var FolderOpenOutlined_FolderOpenOutlined = function FolderOpenOutlined(props, ref) {
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
|
ref: ref,
|
|
|
icon: asn_FolderOpenOutlined
|
|
|
}));
|
|
|
};
|
|
|
if (false) {}
|
|
|
/* harmony default export */ var icons_FolderOpenOutlined = (/*#__PURE__*/_react_17_0_2_react.forwardRef(FolderOpenOutlined_FolderOpenOutlined));
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 34270:
|
|
|
/*!********************************************************************!*\
|
|
|
!*** ./src/pages/Classrooms/Lists/Assistant/index.tsx + 1 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 */ Assistant; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/regeneratorRuntime.js
|
|
|
var regeneratorRuntime = __webpack_require__(10574);
|
|
|
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/asyncToGenerator.js
|
|
|
var asyncToGenerator = __webpack_require__(39343);
|
|
|
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js
|
|
|
var slicedToArray = __webpack_require__(11006);
|
|
|
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
// EXTERNAL MODULE: ./node_modules/_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/tree/index.js + 8 modules
|
|
|
var tree = __webpack_require__(51218);
|
|
|
// EXTERNAL MODULE: ./src/components/ManageHead/index.tsx + 1 modules
|
|
|
var ManageHead = __webpack_require__(17256);
|
|
|
// EXTERNAL MODULE: ./src/utils/authority.ts
|
|
|
var authority = __webpack_require__(76107);
|
|
|
// EXTERNAL MODULE: ./src/utils/export.ts
|
|
|
var utils_export = __webpack_require__(64125);
|
|
|
// EXTERNAL MODULE: ./src/.umi-production/exports.ts + 8 modules
|
|
|
var _umi_production_exports = __webpack_require__(66660);
|
|
|
// EXTERNAL MODULE: ./src/pages/Classrooms/Lists/Teachers/components/ChangeAdmin.tsx
|
|
|
var ChangeAdmin = __webpack_require__(23913);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Assistant/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var Assistantmodules = ({"banner_spacing":"banner_spacing___olJ2m","tree_line_height":"tree_line_height___RdE5b","title":"title___Srrsx"});
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Assistant/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 实训作业
|
|
|
var ZhujiaoPage = function ZhujiaoPage(_ref) {
|
|
|
var teachers = _ref.teachers,
|
|
|
globalSetting = _ref.globalSetting,
|
|
|
classroomList = _ref.classroomList,
|
|
|
loading = _ref.loading,
|
|
|
dispatch = _ref.dispatch;
|
|
|
var params = (0,_umi_production_exports.useParams)();
|
|
|
// 图文作业
|
|
|
var _useState = (0,_react_17_0_2_react.useState)([{
|
|
|
title: '全选',
|
|
|
key: 'normal',
|
|
|
children: [{
|
|
|
title: '作业管理',
|
|
|
key: 'basic',
|
|
|
children: [{
|
|
|
title: '创建作业(可新建、重命名和编辑作业)',
|
|
|
key: 'can_create'
|
|
|
}, {
|
|
|
title: '发布和截止作业',
|
|
|
key: 'can_publish'
|
|
|
}, {
|
|
|
title: '开启补交',
|
|
|
key: 'can_late'
|
|
|
}, {
|
|
|
title: '开启匿评',
|
|
|
key: 'can_anonymous_comment'
|
|
|
}, {
|
|
|
title: '开启匿评申诉',
|
|
|
key: 'can_anonymous_appeal'
|
|
|
}, {
|
|
|
title: "立即截止(可将“进行中”的作业立即截止)",
|
|
|
key: 'can_stop'
|
|
|
}]
|
|
|
}, {
|
|
|
title: '作业评定',
|
|
|
key: 'setting',
|
|
|
children: [{
|
|
|
title: "查看学生作业",
|
|
|
key: 'can_view'
|
|
|
}, {
|
|
|
title: "评阅作业(可使用评阅、调分和一键点评功能)",
|
|
|
key: 'can_appraise'
|
|
|
}, {
|
|
|
title: "打回重做(可使用打回重做、一键打回功能)",
|
|
|
key: 'can_redo'
|
|
|
}]
|
|
|
}]
|
|
|
}]),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
tuwenTree = _useState2[0],
|
|
|
setTuWenTree = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
tuwenDefChecked = _useState4[0],
|
|
|
setTuWenDefChecked = _useState4[1];
|
|
|
// 实训作业
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)([{
|
|
|
title: '全选',
|
|
|
key: 'practice',
|
|
|
children: [{
|
|
|
title: '作业管理',
|
|
|
key: 'basic',
|
|
|
children: [{
|
|
|
title: '创建作业(可选用实验创建、重命名、编辑作业)',
|
|
|
key: 'can_create'
|
|
|
}, {
|
|
|
title: '发布和截止作业',
|
|
|
key: 'can_publish'
|
|
|
}, {
|
|
|
title: '开启补交',
|
|
|
key: 'can_late'
|
|
|
}, {
|
|
|
title: "立即截止(可将“进行中”的作业立即截止)",
|
|
|
key: 'can_stop'
|
|
|
}]
|
|
|
}, {
|
|
|
title: '作业评定',
|
|
|
key: 'setting',
|
|
|
children: [{
|
|
|
title: "查看学生作业",
|
|
|
key: 'can_view'
|
|
|
}, {
|
|
|
title: "评阅作业(可使用一键点评、追加点评功能)",
|
|
|
key: 'can_appraise'
|
|
|
}, {
|
|
|
title: "打回重做(可使用打回重做、一键打回功能)",
|
|
|
key: 'can_redo'
|
|
|
}]
|
|
|
}]
|
|
|
}]),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
shixunTree = _useState6[0],
|
|
|
setShiXunTree = _useState6[1];
|
|
|
var _useState7 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
shixunDefChecked = _useState8[0],
|
|
|
setShiXunDefChecked = _useState8[1];
|
|
|
// 分组作业
|
|
|
var _useState9 = (0,_react_17_0_2_react.useState)([{
|
|
|
title: '全选',
|
|
|
key: 'group',
|
|
|
children: [{
|
|
|
title: '作业管理',
|
|
|
key: 'basic',
|
|
|
children: [{
|
|
|
title: '创建作业(可新建、重命名、编辑作业和发布截止作业)',
|
|
|
key: 'can_create'
|
|
|
}, {
|
|
|
title: '发布和截止作业',
|
|
|
key: 'can_publish'
|
|
|
}, {
|
|
|
title: '开启补交',
|
|
|
key: 'can_late'
|
|
|
}, {
|
|
|
title: '开启匿评',
|
|
|
key: 'can_anonymous_comment'
|
|
|
}, {
|
|
|
title: '开启匿评申诉',
|
|
|
key: 'can_anonymous_appeal'
|
|
|
}, {
|
|
|
title: "立即截止(可将“进行中”的作业立即截止)",
|
|
|
key: 'can_stop'
|
|
|
}]
|
|
|
}, {
|
|
|
title: '作业评定',
|
|
|
key: 'setting',
|
|
|
children: [{
|
|
|
title: "查看学生作业",
|
|
|
key: 'can_view'
|
|
|
}, {
|
|
|
title: "评阅作业(可使用评阅、调分功能)",
|
|
|
key: 'can_appraise'
|
|
|
}]
|
|
|
}]
|
|
|
}]),
|
|
|
_useState10 = slicedToArray_default()(_useState9, 2),
|
|
|
fenzuTree = _useState10[0],
|
|
|
setFenZuTree = _useState10[1];
|
|
|
var _useState11 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState12 = slicedToArray_default()(_useState11, 2),
|
|
|
fenzuDefChecked = _useState12[0],
|
|
|
setFenZuDefChecked = _useState12[1];
|
|
|
// 编程作业
|
|
|
var _useState13 = (0,_react_17_0_2_react.useState)([{
|
|
|
title: '全选',
|
|
|
key: 'hack',
|
|
|
children: [{
|
|
|
title: '作业管理',
|
|
|
key: 'basic',
|
|
|
// disabled: false,
|
|
|
children: [{
|
|
|
title: '创建作业(可新建作业、重命名、编辑作业)',
|
|
|
key: 'can_create'
|
|
|
// disableCheckbox: false,
|
|
|
}, {
|
|
|
title: '发布和截止作业',
|
|
|
key: 'can_publish'
|
|
|
}, {
|
|
|
title: '开启补交',
|
|
|
key: 'can_late'
|
|
|
}, {
|
|
|
title: "立即截止(可将“进行中”的作业立即截止)",
|
|
|
key: 'can_stop'
|
|
|
}]
|
|
|
}, {
|
|
|
title: '作业评定',
|
|
|
key: 'setting',
|
|
|
children: [{
|
|
|
title: "查看学生作业",
|
|
|
key: 'can_view'
|
|
|
}, {
|
|
|
title: "作业排行榜",
|
|
|
key: 'can_exam_leaderboard'
|
|
|
}, {
|
|
|
title: "题目排行榜",
|
|
|
key: 'can_question_eaderboard'
|
|
|
}, {
|
|
|
title: "评阅作业(可使用点评作业、点评代码、调分功能)",
|
|
|
key: 'can_appraise'
|
|
|
}]
|
|
|
}]
|
|
|
}]),
|
|
|
_useState14 = slicedToArray_default()(_useState13, 2),
|
|
|
bianchengTree = _useState14[0],
|
|
|
setBianChengTree = _useState14[1];
|
|
|
var _useState15 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState16 = slicedToArray_default()(_useState15, 2),
|
|
|
bianchengDefChecked = _useState16[0],
|
|
|
setBianChengDefChecked = _useState16[1];
|
|
|
// 在线考试
|
|
|
var _useState17 = (0,_react_17_0_2_react.useState)([{
|
|
|
title: '全选',
|
|
|
key: 'exercise',
|
|
|
children: [{
|
|
|
title: '试卷管理',
|
|
|
key: 'basic',
|
|
|
children: [{
|
|
|
title: '创建试卷(可创建试卷、编辑试卷)',
|
|
|
key: 'can_create'
|
|
|
}, {
|
|
|
title: '发布和截止考试',
|
|
|
key: 'can_publish'
|
|
|
}, {
|
|
|
title: '开启补考',
|
|
|
key: 'can_late'
|
|
|
}, {
|
|
|
title: "结束考试(可将“进行中”的考试立即结束)",
|
|
|
key: 'can_stop'
|
|
|
}]
|
|
|
}, {
|
|
|
title: "试卷预览",
|
|
|
key: 'can_preview'
|
|
|
}, {
|
|
|
title: "强制交卷",
|
|
|
key: 'can_forcing_commit'
|
|
|
}, {
|
|
|
title: '试卷评定',
|
|
|
key: 'setting',
|
|
|
children: [{
|
|
|
title: "查看学生试卷",
|
|
|
key: 'can_view'
|
|
|
}, {
|
|
|
title: "评阅试卷(可使用评阅、集中批量批阅、组内顺序评阅功能)",
|
|
|
key: 'can_appraise'
|
|
|
}, {
|
|
|
title: "打回重做",
|
|
|
key: 'can_redo'
|
|
|
}, {
|
|
|
title: "延时",
|
|
|
key: 'can_delay'
|
|
|
}]
|
|
|
}]
|
|
|
}]),
|
|
|
_useState18 = slicedToArray_default()(_useState17, 2),
|
|
|
kaoshiTree = _useState18[0],
|
|
|
setKaoShiTree = _useState18[1];
|
|
|
var _useState19 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState20 = slicedToArray_default()(_useState19, 2),
|
|
|
kaoshiDefChecked = _useState20[0],
|
|
|
setKaoShiDefChecked = _useState20[1];
|
|
|
// 请求参数
|
|
|
var _useState21 = (0,_react_17_0_2_react.useState)({
|
|
|
"normal": {
|
|
|
"basic": {
|
|
|
"can_create": true,
|
|
|
"can_publish": true,
|
|
|
"can_late": true,
|
|
|
"can_stop": true,
|
|
|
"can_anonymous_comment": true,
|
|
|
"can_anonymous_appeal": true
|
|
|
},
|
|
|
"setting": {
|
|
|
"can_view": true,
|
|
|
"can_appraise": true,
|
|
|
"can_redo": true
|
|
|
}
|
|
|
},
|
|
|
"group": {
|
|
|
"basic": {
|
|
|
"can_create": true,
|
|
|
"can_publish": true,
|
|
|
"can_late": true,
|
|
|
"can_stop": true,
|
|
|
"can_anonymous_comment": true,
|
|
|
"can_anonymous_appeal": true
|
|
|
},
|
|
|
"setting": {
|
|
|
"can_view": true,
|
|
|
"can_appraise": true
|
|
|
}
|
|
|
},
|
|
|
"practice": {
|
|
|
"basic": {
|
|
|
"can_create": true,
|
|
|
"can_publish": true,
|
|
|
"can_late": true,
|
|
|
"can_stop": true
|
|
|
},
|
|
|
"setting": {
|
|
|
"can_view": true,
|
|
|
"can_appraise": true,
|
|
|
"can_redo": true
|
|
|
}
|
|
|
},
|
|
|
"hack": {
|
|
|
"basic": {
|
|
|
"can_create": true,
|
|
|
"can_publish": true,
|
|
|
"can_late": true,
|
|
|
"can_stop": true,
|
|
|
"can_delete": true
|
|
|
},
|
|
|
"setting": {
|
|
|
"can_view": true,
|
|
|
"can_appraise": true,
|
|
|
"can_exam_leaderboard": true,
|
|
|
"can_question_eaderboard": true
|
|
|
}
|
|
|
},
|
|
|
"exercise": {
|
|
|
"basic": {
|
|
|
"can_create": true,
|
|
|
"can_publish": true,
|
|
|
"can_late": true,
|
|
|
"can_stop": true
|
|
|
},
|
|
|
"can_preview": true,
|
|
|
"can_forcing_commit": true,
|
|
|
"setting": {
|
|
|
"can_view": true,
|
|
|
"can_appraise": true,
|
|
|
"can_redo": true,
|
|
|
"can_delay": true
|
|
|
}
|
|
|
}
|
|
|
}),
|
|
|
_useState22 = slicedToArray_default()(_useState21, 2),
|
|
|
permissions = _useState22[0],
|
|
|
setPermissions = _useState22[1];
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
console.log((0,authority/* isLogin */.bg)());
|
|
|
dispatch({
|
|
|
type: 'classroomList/getAssistantPermissions',
|
|
|
payload: {
|
|
|
course_id: params.course_id
|
|
|
}
|
|
|
});
|
|
|
}, [(0,authority/* isLogin */.bg)()]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (classroomList.AssistantObject.normal) {
|
|
|
var _Object$keys, _Object$keys2, _Object$keys3, _Object$keys4, _Object$keys5;
|
|
|
setTuWenDefChecked((_Object$keys = Object.keys(classroomList.AssistantObject.normal)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.map(function (i) {
|
|
|
if (classroomList.AssistantObject.normal[i] === true) return i;
|
|
|
}).filter(function (i) {
|
|
|
return !!i;
|
|
|
}));
|
|
|
setFenZuDefChecked((_Object$keys2 = Object.keys(classroomList.AssistantObject.group)) === null || _Object$keys2 === void 0 ? void 0 : _Object$keys2.map(function (i) {
|
|
|
if (classroomList.AssistantObject.group[i] === true) return i;
|
|
|
}).filter(function (i) {
|
|
|
return !!i;
|
|
|
}));
|
|
|
setShiXunDefChecked((_Object$keys3 = Object.keys(classroomList.AssistantObject.practice)) === null || _Object$keys3 === void 0 ? void 0 : _Object$keys3.map(function (i) {
|
|
|
if (classroomList.AssistantObject.practice[i] === true) return i;
|
|
|
}).filter(function (i) {
|
|
|
return !!i;
|
|
|
}));
|
|
|
setBianChengDefChecked((_Object$keys4 = Object.keys(classroomList.AssistantObject.hack)) === null || _Object$keys4 === void 0 ? void 0 : _Object$keys4.map(function (i) {
|
|
|
if (classroomList.AssistantObject.hack[i] === true) return i;
|
|
|
}).filter(function (i) {
|
|
|
return !!i;
|
|
|
}));
|
|
|
setKaoShiDefChecked((_Object$keys5 = Object.keys(classroomList.AssistantObject.exercise)) === null || _Object$keys5 === void 0 ? void 0 : _Object$keys5.map(function (i) {
|
|
|
if (classroomList.AssistantObject.exercise[i] === true) return i;
|
|
|
}).filter(function (i) {
|
|
|
return !!i;
|
|
|
}));
|
|
|
}
|
|
|
setPermissions(classroomList.AssistantObject);
|
|
|
}, [classroomList.AssistantObject]);
|
|
|
|
|
|
// 选中触发事件:
|
|
|
var _onCheck = /*#__PURE__*/function () {
|
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee(checkedKeys, name) {
|
|
|
var i;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
for (i in permissions[name]) {
|
|
|
permissions[name][i] = false;
|
|
|
}
|
|
|
;
|
|
|
checkedKeys.map(function (item) {
|
|
|
permissions[name][item] = !permissions[name][item];
|
|
|
});
|
|
|
_context.t0 = name;
|
|
|
_context.next = _context.t0 === 'normal' ? 6 : _context.t0 === 'group' ? 8 : _context.t0 === 'practice' ? 10 : _context.t0 === 'hack' ? 12 : _context.t0 === 'exercise' ? 14 : 16;
|
|
|
break;
|
|
|
case 6:
|
|
|
setTuWenDefChecked(checkedKeys);
|
|
|
return _context.abrupt("break", 16);
|
|
|
case 8:
|
|
|
setFenZuDefChecked(checkedKeys);
|
|
|
return _context.abrupt("break", 16);
|
|
|
case 10:
|
|
|
setShiXunDefChecked(checkedKeys);
|
|
|
return _context.abrupt("break", 16);
|
|
|
case 12:
|
|
|
setBianChengDefChecked(checkedKeys);
|
|
|
return _context.abrupt("break", 16);
|
|
|
case 14:
|
|
|
setKaoShiDefChecked(checkedKeys);
|
|
|
return _context.abrupt("break", 16);
|
|
|
case 16:
|
|
|
dispatch({
|
|
|
type: 'classroomList/setAssistantPermissions',
|
|
|
payload: {
|
|
|
permissions: {
|
|
|
permissions: permissions
|
|
|
},
|
|
|
course_id: params.course_id
|
|
|
}
|
|
|
});
|
|
|
message/* default */.ZP.success("操作成功"); //提示操作成功
|
|
|
case 18:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return function onCheck(_x, _x2) {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(ManageHead/* default */.Z, {
|
|
|
active: 3,
|
|
|
children: [(0,authority/* isAdminOrCreator */.aN)() && /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "font16 mr20 current c-blue",
|
|
|
onClick: function onClick() {
|
|
|
dispatch({
|
|
|
type: 'teachers/setActionTabs',
|
|
|
payload: {
|
|
|
key: "更换管理员"
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
children: "\u66F4\u6362\u7BA1\u7406\u5458"
|
|
|
}), (0,authority/* isAdmins */.eB)() && /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "font16 current c-blue",
|
|
|
onClick: function onClick(e) {
|
|
|
(0,utils_export/* ExportCourseStudentsInfo */.eV)(params);
|
|
|
},
|
|
|
children: "\u5BFC\u51FA\u5B66\u751F"
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(ChangeAdmin/* default */.Z, {}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
style: {
|
|
|
background: "#fafafa",
|
|
|
marginBottom: "20px"
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
style: {
|
|
|
padding: "20px",
|
|
|
background: "white"
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
style: {
|
|
|
background: "#fafafa",
|
|
|
padding: "10px",
|
|
|
color: "#605d5d"
|
|
|
},
|
|
|
children: ["\u52A9\u6559\u57FA\u7840\u7BA1\u7406\u6743\u9650\uFF1A", /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: "1\u3001\u73ED\u7EA7\u7BA1\u7406\uFF08\u53EF\u65B0\u5EFA\u548C\u5220\u9664\u5206\u73ED\u3001\u5206\u73ED\u91CD\u547D\u540D\u548C\u79FB\u52A8\u5B66\u751F\u5206\u73ED\uFF09;"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: "2\u3001\u5B66\u751F\u7BA1\u7406\uFF08\u53EF\u6DFB\u52A0\u548C\u5220\u9664\u5B66\u751F\uFF09;"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: "3\u3001\u4F5C\u4E1A\u5217\u8868\u7BA1\u7406\uFF08\u53EF\u65B0\u5EFA\u5B50\u76EE\u5F55\u3001\u79FB\u52A8\u4F5C\u4E1A\u5230\u76EE\u5F55\uFF09\u3002"
|
|
|
})]
|
|
|
})
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Assistantmodules.banner_spacing,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Assistantmodules.title,
|
|
|
children: "\u8BFE\u5802\u5B9E\u9A8C"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(tree/* default */.Z, {
|
|
|
selectable: false,
|
|
|
className: Assistantmodules.tree_line_height,
|
|
|
checkable: true,
|
|
|
checkedKeys: shixunDefChecked,
|
|
|
onCheck: function onCheck(checkedKeys) {
|
|
|
return _onCheck(checkedKeys, 'practice');
|
|
|
},
|
|
|
treeData: shixunTree
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Assistantmodules.banner_spacing,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Assistantmodules.title,
|
|
|
children: "\u56FE\u6587\u4F5C\u4E1A"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(tree/* default */.Z, {
|
|
|
selectable: false,
|
|
|
className: Assistantmodules.tree_line_height,
|
|
|
checkable: true,
|
|
|
checkedKeys: tuwenDefChecked,
|
|
|
onCheck: function onCheck(checkedKeys) {
|
|
|
return _onCheck(checkedKeys, 'normal');
|
|
|
},
|
|
|
treeData: tuwenTree
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Assistantmodules.banner_spacing,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Assistantmodules.title,
|
|
|
children: "\u5206\u7EC4\u4F5C\u4E1A"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(tree/* default */.Z, {
|
|
|
selectable: false,
|
|
|
className: Assistantmodules.tree_line_height,
|
|
|
checkable: true,
|
|
|
checkedKeys: fenzuDefChecked,
|
|
|
onCheck: function onCheck(checkedKeys) {
|
|
|
return _onCheck(checkedKeys, 'group');
|
|
|
},
|
|
|
treeData: fenzuTree
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Assistantmodules.banner_spacing,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Assistantmodules.title,
|
|
|
children: "\u7F16\u7A0B\u4F5C\u4E1A"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(tree/* default */.Z, {
|
|
|
selectable: false,
|
|
|
className: Assistantmodules.tree_line_height,
|
|
|
checkable: true,
|
|
|
checkedKeys: bianchengDefChecked,
|
|
|
onCheck: function onCheck(checkedKeys) {
|
|
|
return _onCheck(checkedKeys, 'hack');
|
|
|
},
|
|
|
treeData: bianchengTree
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Assistantmodules.banner_spacing,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Assistantmodules.title,
|
|
|
children: "\u5728\u7EBF\u8003\u8BD5"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(tree/* default */.Z, {
|
|
|
selectable: false,
|
|
|
className: Assistantmodules.tree_line_height,
|
|
|
checkable: true,
|
|
|
checkedKeys: kaoshiDefChecked,
|
|
|
onCheck: function onCheck(checkedKeys) {
|
|
|
return _onCheck(checkedKeys, 'exercise');
|
|
|
},
|
|
|
treeData: kaoshiTree
|
|
|
})]
|
|
|
})]
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var Assistant = ((0,_umi_production_exports.connect)(function (_ref3) {
|
|
|
var teachers = _ref3.teachers,
|
|
|
loading = _ref3.loading,
|
|
|
globalSetting = _ref3.globalSetting,
|
|
|
classroomList = _ref3.classroomList;
|
|
|
return {
|
|
|
teachers: teachers,
|
|
|
globalSetting: globalSetting,
|
|
|
classroomList: classroomList,
|
|
|
loading: loading.effects
|
|
|
};
|
|
|
})(ZhujiaoPage));
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 8378:
|
|
|
/*!*******************************************************************!*\
|
|
|
!*** ./node_modules/_antd@5.9.0@antd/es/style/motion/collapse.js ***!
|
|
|
\*******************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__) {
|
|
|
|
|
|
const genCollapseMotion = token => ({
|
|
|
[token.componentCls]: {
|
|
|
// For common/openAnimation
|
|
|
[`${token.antCls}-motion-collapse-legacy`]: {
|
|
|
overflow: 'hidden',
|
|
|
'&-active': {
|
|
|
transition: `height ${token.motionDurationMid} ${token.motionEaseInOut},
|
|
|
opacity ${token.motionDurationMid} ${token.motionEaseInOut} !important`
|
|
|
}
|
|
|
},
|
|
|
[`${token.antCls}-motion-collapse`]: {
|
|
|
overflow: 'hidden',
|
|
|
transition: `height ${token.motionDurationMid} ${token.motionEaseInOut},
|
|
|
opacity ${token.motionDurationMid} ${token.motionEaseInOut} !important`
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
/* harmony default export */ __webpack_exports__.Z = (genCollapseMotion);
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 51218:
|
|
|
/*!********************************************************************!*\
|
|
|
!*** ./node_modules/_antd@5.9.0@antd/es/tree/index.js + 8 modules ***!
|
|
|
\********************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ tree; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_rc-tree@5.7.12@rc-tree/es/index.js + 7 modules
|
|
|
var es = __webpack_require__(10253);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules
|
|
|
var toConsumableArray = __webpack_require__(42371);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/FileOutlined.js + 1 modules
|
|
|
var FileOutlined = __webpack_require__(87970);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/FolderOpenOutlined.js + 1 modules
|
|
|
var FolderOpenOutlined = __webpack_require__(80354);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/esm/extends.js
|
|
|
var esm_extends = __webpack_require__(26508);
|
|
|
// 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.3.1@@ant-design/icons-svg/es/asn/FolderOutlined.js
|
|
|
// This icon file is generated automatically.
|
|
|
var FolderOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z" } }] }, "name": "folder", "theme": "outlined" };
|
|
|
/* harmony default export */ var asn_FolderOutlined = (FolderOutlined);
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
|
var AntdIcon = __webpack_require__(91851);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/FolderOutlined.js
|
|
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var FolderOutlined_FolderOutlined = function FolderOutlined(props, ref) {
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
|
ref: ref,
|
|
|
icon: asn_FolderOutlined
|
|
|
}));
|
|
|
};
|
|
|
if (false) {}
|
|
|
/* harmony default export */ var icons_FolderOutlined = (/*#__PURE__*/_react_17_0_2_react.forwardRef(FolderOutlined_FolderOutlined));
|
|
|
// EXTERNAL MODULE: ./node_modules/_classnames@2.3.2@classnames/index.js
|
|
|
var _classnames_2_3_2_classnames = __webpack_require__(12124);
|
|
|
var _classnames_2_3_2_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_3_2_classnames);
|
|
|
// EXTERNAL MODULE: ./node_modules/_rc-tree@5.7.12@rc-tree/es/util.js
|
|
|
var util = __webpack_require__(35654);
|
|
|
// EXTERNAL MODULE: ./node_modules/_rc-tree@5.7.12@rc-tree/es/utils/treeUtil.js
|
|
|
var treeUtil = __webpack_require__(71430);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/config-provider/context.js
|
|
|
var context = __webpack_require__(36355);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.3.1@@ant-design/icons-svg/es/asn/HolderOutlined.js
|
|
|
// This icon file is generated automatically.
|
|
|
var HolderOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M300 276.5a56 56 0 1056-97 56 56 0 00-56 97zm0 284a56 56 0 1056-97 56 56 0 00-56 97zM640 228a56 56 0 10112 0 56 56 0 00-112 0zm0 284a56 56 0 10112 0 56 56 0 00-112 0zM300 844.5a56 56 0 1056-97 56 56 0 00-56 97zM640 796a56 56 0 10112 0 56 56 0 00-112 0z" } }] }, "name": "holder", "theme": "outlined" };
|
|
|
/* harmony default export */ var asn_HolderOutlined = (HolderOutlined);
|
|
|
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/HolderOutlined.js
|
|
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var HolderOutlined_HolderOutlined = function HolderOutlined(props, ref) {
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
|
ref: ref,
|
|
|
icon: asn_HolderOutlined
|
|
|
}));
|
|
|
};
|
|
|
if (false) {}
|
|
|
/* harmony default export */ var icons_HolderOutlined = (/*#__PURE__*/_react_17_0_2_react.forwardRef(HolderOutlined_HolderOutlined));
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/_util/motion.js
|
|
|
var _util_motion = __webpack_require__(62892);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tree/style/index.js
|
|
|
var tree_style = __webpack_require__(20648);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tree/utils/dropIndicator.js
|
|
|
"use client";
|
|
|
|
|
|
|
|
|
const offset = 4;
|
|
|
function dropIndicatorRender(props) {
|
|
|
const {
|
|
|
dropPosition,
|
|
|
dropLevelOffset,
|
|
|
prefixCls,
|
|
|
indent,
|
|
|
direction = 'ltr'
|
|
|
} = props;
|
|
|
const startPosition = direction === 'ltr' ? 'left' : 'right';
|
|
|
const endPosition = direction === 'ltr' ? 'right' : 'left';
|
|
|
const style = {
|
|
|
[startPosition]: -dropLevelOffset * indent + offset,
|
|
|
[endPosition]: 0
|
|
|
};
|
|
|
switch (dropPosition) {
|
|
|
case -1:
|
|
|
style.top = -3;
|
|
|
break;
|
|
|
case 1:
|
|
|
style.bottom = -3;
|
|
|
break;
|
|
|
default:
|
|
|
// dropPosition === 0
|
|
|
style.bottom = -3;
|
|
|
style[startPosition] = indent + offset;
|
|
|
break;
|
|
|
}
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement("div", {
|
|
|
style: style,
|
|
|
className: `${prefixCls}-drop-indicator`
|
|
|
});
|
|
|
}
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tree/utils/iconUtil.js + 2 modules
|
|
|
var iconUtil = __webpack_require__(1711);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tree/Tree.js
|
|
|
"use client";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const Tree = /*#__PURE__*/_react_17_0_2_react.forwardRef((props, ref) => {
|
|
|
const {
|
|
|
getPrefixCls,
|
|
|
direction,
|
|
|
virtual,
|
|
|
tree
|
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
|
const {
|
|
|
prefixCls: customizePrefixCls,
|
|
|
className,
|
|
|
showIcon = false,
|
|
|
showLine,
|
|
|
switcherIcon,
|
|
|
blockNode = false,
|
|
|
children,
|
|
|
checkable = false,
|
|
|
selectable = true,
|
|
|
draggable,
|
|
|
motion: customMotion,
|
|
|
style
|
|
|
} = props;
|
|
|
const prefixCls = getPrefixCls('tree', customizePrefixCls);
|
|
|
const rootPrefixCls = getPrefixCls();
|
|
|
const motion = customMotion !== null && customMotion !== void 0 ? customMotion : Object.assign(Object.assign({}, (0,_util_motion/* default */.Z)(rootPrefixCls)), {
|
|
|
motionAppear: false
|
|
|
});
|
|
|
const newProps = Object.assign(Object.assign({}, props), {
|
|
|
checkable,
|
|
|
selectable,
|
|
|
showIcon,
|
|
|
motion,
|
|
|
blockNode,
|
|
|
showLine: Boolean(showLine),
|
|
|
dropIndicatorRender: dropIndicatorRender
|
|
|
});
|
|
|
const [wrapSSR, hashId] = (0,tree_style/* default */.ZP)(prefixCls);
|
|
|
const draggableConfig = _react_17_0_2_react.useMemo(() => {
|
|
|
if (!draggable) {
|
|
|
return false;
|
|
|
}
|
|
|
let mergedDraggable = {};
|
|
|
switch (typeof draggable) {
|
|
|
case 'function':
|
|
|
mergedDraggable.nodeDraggable = draggable;
|
|
|
break;
|
|
|
case 'object':
|
|
|
mergedDraggable = Object.assign({}, draggable);
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
// Do nothing
|
|
|
}
|
|
|
|
|
|
if (mergedDraggable.icon !== false) {
|
|
|
mergedDraggable.icon = mergedDraggable.icon || /*#__PURE__*/_react_17_0_2_react.createElement(icons_HolderOutlined, null);
|
|
|
}
|
|
|
return mergedDraggable;
|
|
|
}, [draggable]);
|
|
|
const renderSwitcherIcon = nodeProps => /*#__PURE__*/_react_17_0_2_react.createElement(iconUtil/* default */.Z, {
|
|
|
prefixCls: prefixCls,
|
|
|
switcherIcon: switcherIcon,
|
|
|
treeNodeProps: nodeProps,
|
|
|
showLine: showLine
|
|
|
});
|
|
|
return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement(es/* default */.Z, Object.assign({
|
|
|
itemHeight: 20,
|
|
|
ref: ref,
|
|
|
virtual: virtual
|
|
|
}, newProps, {
|
|
|
// newProps may contain style so declare style below it
|
|
|
style: Object.assign(Object.assign({}, tree === null || tree === void 0 ? void 0 : tree.style), style),
|
|
|
prefixCls: prefixCls,
|
|
|
className: _classnames_2_3_2_classnames_default()({
|
|
|
[`${prefixCls}-icon-hide`]: !showIcon,
|
|
|
[`${prefixCls}-block-node`]: blockNode,
|
|
|
[`${prefixCls}-unselectable`]: !selectable,
|
|
|
[`${prefixCls}-rtl`]: direction === 'rtl'
|
|
|
}, tree === null || tree === void 0 ? void 0 : tree.className, className, hashId),
|
|
|
direction: direction,
|
|
|
checkable: checkable ? /*#__PURE__*/_react_17_0_2_react.createElement("span", {
|
|
|
className: `${prefixCls}-checkbox-inner`
|
|
|
}) : checkable,
|
|
|
selectable: selectable,
|
|
|
switcherIcon: renderSwitcherIcon,
|
|
|
draggable: draggableConfig
|
|
|
}), children));
|
|
|
});
|
|
|
if (false) {}
|
|
|
/* harmony default export */ var tree_Tree = (Tree);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tree/utils/dictUtil.js
|
|
|
|
|
|
var Record;
|
|
|
(function (Record) {
|
|
|
Record[Record["None"] = 0] = "None";
|
|
|
Record[Record["Start"] = 1] = "Start";
|
|
|
Record[Record["End"] = 2] = "End";
|
|
|
})(Record || (Record = {}));
|
|
|
function traverseNodesKey(treeData, callback) {
|
|
|
function processNode(dataNode) {
|
|
|
const {
|
|
|
key,
|
|
|
children
|
|
|
} = dataNode;
|
|
|
if (callback(key, dataNode) !== false) {
|
|
|
traverseNodesKey(children || [], callback);
|
|
|
}
|
|
|
}
|
|
|
treeData.forEach(processNode);
|
|
|
}
|
|
|
/** 计算选中范围,只考虑expanded情况以优化性能 */
|
|
|
function calcRangeKeys(_ref) {
|
|
|
let {
|
|
|
treeData,
|
|
|
expandedKeys,
|
|
|
startKey,
|
|
|
endKey
|
|
|
} = _ref;
|
|
|
const keys = [];
|
|
|
let record = Record.None;
|
|
|
if (startKey && startKey === endKey) {
|
|
|
return [startKey];
|
|
|
}
|
|
|
if (!startKey || !endKey) {
|
|
|
return [];
|
|
|
}
|
|
|
function matchKey(key) {
|
|
|
return key === startKey || key === endKey;
|
|
|
}
|
|
|
traverseNodesKey(treeData, key => {
|
|
|
if (record === Record.End) {
|
|
|
return false;
|
|
|
}
|
|
|
if (matchKey(key)) {
|
|
|
// Match test
|
|
|
keys.push(key);
|
|
|
if (record === Record.None) {
|
|
|
record = Record.Start;
|
|
|
} else if (record === Record.Start) {
|
|
|
record = Record.End;
|
|
|
return false;
|
|
|
}
|
|
|
} else if (record === Record.Start) {
|
|
|
// Append selection
|
|
|
keys.push(key);
|
|
|
}
|
|
|
return expandedKeys.includes(key);
|
|
|
});
|
|
|
return keys;
|
|
|
}
|
|
|
function convertDirectoryKeysToNodes(treeData, keys) {
|
|
|
const restKeys = (0,toConsumableArray/* default */.Z)(keys);
|
|
|
const nodes = [];
|
|
|
traverseNodesKey(treeData, (key, node) => {
|
|
|
const index = restKeys.indexOf(key);
|
|
|
if (index !== -1) {
|
|
|
nodes.push(node);
|
|
|
restKeys.splice(index, 1);
|
|
|
}
|
|
|
return !!restKeys.length;
|
|
|
});
|
|
|
return nodes;
|
|
|
}
|
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tree/DirectoryTree.js
|
|
|
"use client";
|
|
|
|
|
|
|
|
|
var __rest = undefined && undefined.__rest || function (s, e) {
|
|
|
var t = {};
|
|
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
|
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
|
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
|
}
|
|
|
return t;
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function getIcon(props) {
|
|
|
const {
|
|
|
isLeaf,
|
|
|
expanded
|
|
|
} = props;
|
|
|
if (isLeaf) {
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(FileOutlined/* default */.Z, null);
|
|
|
}
|
|
|
return expanded ? /*#__PURE__*/_react_17_0_2_react.createElement(FolderOpenOutlined/* default */.Z, null) : /*#__PURE__*/_react_17_0_2_react.createElement(icons_FolderOutlined, null);
|
|
|
}
|
|
|
function getTreeData(_ref) {
|
|
|
let {
|
|
|
treeData,
|
|
|
children
|
|
|
} = _ref;
|
|
|
return treeData || (0,treeUtil/* convertTreeToData */.zn)(children);
|
|
|
}
|
|
|
const DirectoryTree = (_a, ref) => {
|
|
|
var {
|
|
|
defaultExpandAll,
|
|
|
defaultExpandParent,
|
|
|
defaultExpandedKeys
|
|
|
} = _a,
|
|
|
props = __rest(_a, ["defaultExpandAll", "defaultExpandParent", "defaultExpandedKeys"]);
|
|
|
// Shift click usage
|
|
|
const lastSelectedKey = _react_17_0_2_react.useRef();
|
|
|
const cachedSelectedKeys = _react_17_0_2_react.useRef();
|
|
|
const getInitExpandedKeys = () => {
|
|
|
const {
|
|
|
keyEntities
|
|
|
} = (0,treeUtil/* convertDataToEntities */.I8)(getTreeData(props));
|
|
|
let initExpandedKeys;
|
|
|
// Expanded keys
|
|
|
if (defaultExpandAll) {
|
|
|
initExpandedKeys = Object.keys(keyEntities);
|
|
|
} else if (defaultExpandParent) {
|
|
|
initExpandedKeys = (0,util/* conductExpandParent */.r7)(props.expandedKeys || defaultExpandedKeys || [], keyEntities);
|
|
|
} else {
|
|
|
initExpandedKeys = props.expandedKeys || defaultExpandedKeys;
|
|
|
}
|
|
|
return initExpandedKeys;
|
|
|
};
|
|
|
const [selectedKeys, setSelectedKeys] = _react_17_0_2_react.useState(props.selectedKeys || props.defaultSelectedKeys || []);
|
|
|
const [expandedKeys, setExpandedKeys] = _react_17_0_2_react.useState(() => getInitExpandedKeys());
|
|
|
_react_17_0_2_react.useEffect(() => {
|
|
|
if ('selectedKeys' in props) {
|
|
|
setSelectedKeys(props.selectedKeys);
|
|
|
}
|
|
|
}, [props.selectedKeys]);
|
|
|
_react_17_0_2_react.useEffect(() => {
|
|
|
if ('expandedKeys' in props) {
|
|
|
setExpandedKeys(props.expandedKeys);
|
|
|
}
|
|
|
}, [props.expandedKeys]);
|
|
|
const onExpand = (keys, info) => {
|
|
|
var _a;
|
|
|
if (!('expandedKeys' in props)) {
|
|
|
setExpandedKeys(keys);
|
|
|
}
|
|
|
// Call origin function
|
|
|
return (_a = props.onExpand) === null || _a === void 0 ? void 0 : _a.call(props, keys, info);
|
|
|
};
|
|
|
const onSelect = (keys, event) => {
|
|
|
var _a;
|
|
|
const {
|
|
|
multiple
|
|
|
} = props;
|
|
|
const {
|
|
|
node,
|
|
|
nativeEvent
|
|
|
} = event;
|
|
|
const {
|
|
|
key = ''
|
|
|
} = node;
|
|
|
const treeData = getTreeData(props);
|
|
|
// const newState: DirectoryTreeState = {};
|
|
|
// We need wrap this event since some value is not same
|
|
|
const newEvent = Object.assign(Object.assign({}, event), {
|
|
|
selected: true
|
|
|
});
|
|
|
// Windows / Mac single pick
|
|
|
const ctrlPick = (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.ctrlKey) || (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.metaKey);
|
|
|
const shiftPick = nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.shiftKey;
|
|
|
// Generate new selected keys
|
|
|
let newSelectedKeys;
|
|
|
if (multiple && ctrlPick) {
|
|
|
// Control click
|
|
|
newSelectedKeys = keys;
|
|
|
lastSelectedKey.current = key;
|
|
|
cachedSelectedKeys.current = newSelectedKeys;
|
|
|
newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);
|
|
|
} else if (multiple && shiftPick) {
|
|
|
// Shift click
|
|
|
newSelectedKeys = Array.from(new Set([].concat((0,toConsumableArray/* default */.Z)(cachedSelectedKeys.current || []), (0,toConsumableArray/* default */.Z)(calcRangeKeys({
|
|
|
treeData,
|
|
|
expandedKeys,
|
|
|
startKey: key,
|
|
|
endKey: lastSelectedKey.current
|
|
|
})))));
|
|
|
newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);
|
|
|
} else {
|
|
|
// Single click
|
|
|
newSelectedKeys = [key];
|
|
|
lastSelectedKey.current = key;
|
|
|
cachedSelectedKeys.current = newSelectedKeys;
|
|
|
newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);
|
|
|
}
|
|
|
(_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, newSelectedKeys, newEvent);
|
|
|
if (!('selectedKeys' in props)) {
|
|
|
setSelectedKeys(newSelectedKeys);
|
|
|
}
|
|
|
};
|
|
|
const {
|
|
|
getPrefixCls,
|
|
|
direction
|
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
|
const {
|
|
|
prefixCls: customizePrefixCls,
|
|
|
className,
|
|
|
showIcon = true,
|
|
|
expandAction = 'click'
|
|
|
} = props,
|
|
|
otherProps = __rest(props, ["prefixCls", "className", "showIcon", "expandAction"]);
|
|
|
const prefixCls = getPrefixCls('tree', customizePrefixCls);
|
|
|
const connectClassName = _classnames_2_3_2_classnames_default()(`${prefixCls}-directory`, {
|
|
|
[`${prefixCls}-directory-rtl`]: direction === 'rtl'
|
|
|
}, className);
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(tree_Tree, Object.assign({
|
|
|
icon: getIcon,
|
|
|
ref: ref,
|
|
|
blockNode: true
|
|
|
}, otherProps, {
|
|
|
showIcon: showIcon,
|
|
|
expandAction: expandAction,
|
|
|
prefixCls: prefixCls,
|
|
|
className: connectClassName,
|
|
|
expandedKeys: expandedKeys,
|
|
|
selectedKeys: selectedKeys,
|
|
|
onSelect: onSelect,
|
|
|
onExpand: onExpand
|
|
|
}));
|
|
|
};
|
|
|
const ForwardDirectoryTree = /*#__PURE__*/_react_17_0_2_react.forwardRef(DirectoryTree);
|
|
|
if (false) {}
|
|
|
/* harmony default export */ var tree_DirectoryTree = (ForwardDirectoryTree);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tree/index.js
|
|
|
"use client";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const es_tree_Tree = tree_Tree;
|
|
|
es_tree_Tree.DirectoryTree = tree_DirectoryTree;
|
|
|
es_tree_Tree.TreeNode = es/* TreeNode */.O;
|
|
|
/* harmony default export */ var tree = (es_tree_Tree);
|
|
|
|
|
|
/***/ })
|
|
|
|
|
|
}]); |