You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1435 lines
65 KiB
1435 lines
65 KiB
"use strict";
|
|
(self["webpackChunk"] = self["webpackChunk"] || []).push([[30067],{
|
|
|
|
/***/ 50861:
|
|
/*!*************************************************!*\
|
|
!*** ./src/pages/Message/index.tsx + 8 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 */ pages_Message; }
|
|
});
|
|
|
|
// 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/toConsumableArray.js
|
|
var toConsumableArray = __webpack_require__(37205);
|
|
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
|
|
// 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/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/objectDestructuringEmpty.js
|
|
var objectDestructuringEmpty = __webpack_require__(70236);
|
|
var objectDestructuringEmpty_default = /*#__PURE__*/__webpack_require__.n(objectDestructuringEmpty);
|
|
// 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/modal/index.js + 16 modules
|
|
var es_modal = __webpack_require__(43418);
|
|
// 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/popover/index.js
|
|
var popover = __webpack_require__(60324);
|
|
// 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/space/index.js + 3 modules
|
|
var space = __webpack_require__(81327);
|
|
;// CONCATENATED MODULE: ./src/pages/Message/index.less?modules
|
|
// extracted by mini-css-extract-plugin
|
|
/* harmony default export */ var Messagemodules = ({"flex_box_center":"flex_box_center___Ja97S","flex_space_between":"flex_space_between___RJu4E","flex_box_vertical_center":"flex_box_vertical_center___jhPTF","flex_box_center_end":"flex_box_center_end___ZtezU","flex_box_column":"flex_box_column___MqeI4","wrap":"wrap___k3OOZ","head":"head___h6t3O","empty":"empty___S6QaM","content":"content___sMZPl","left":"left___J41Si","title":"title___GUZvZ","add":"add___zhwIv","leftBar":"leftBar___u_UUF","li":"li___Hnrra","active":"active___N4MxL","right":"right___eLWWO","rightBar":"rightBar___fMTLo","center":"center____NDzP","tabs":"tabs___jdS5u","cut":"cut___w1Pz_","action":"action___QkQ0f","tagBtn":"tagBtn___g2gHo","actActive":"actActive___ESHzD","answers":"answers___dVktP","btn":"btn___BnDvU","disableBtn":"disableBtn___WYJSQ","open_md":"open_md___Qcc2e","tip_container":"tip_container___cApBC","container_text":"container_text___riFvY","btn_send":"btn_send___jN38z","hide":"hide___wZuLt","md-container":"md-container___Am7nQ","unsolved":"unsolved___z4SON","box":"box____EpoE","hot":"hot___oUwVX","animation":"animation___YQjk7","stop":"stop___R1QBJ","disabledElement":"disabledElement___jKwzo","text":"text___Si2da","md_editor":"md_editor___vGEmh"});
|
|
;// CONCATENATED MODULE: ./src/pages/Message/index.less
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
// EXTERNAL MODULE: ./src/utils/fetch.ts
|
|
var fetch = __webpack_require__(85750);
|
|
// EXTERNAL MODULE: ./src/.umi-production/exports.ts
|
|
var _umi_production_exports = __webpack_require__(75936);
|
|
// EXTERNAL MODULE: ./src/utils/util.tsx
|
|
var util = __webpack_require__(66621);
|
|
// EXTERNAL MODULE: ./src/utils/env.ts + 1 modules
|
|
var env = __webpack_require__(20817);
|
|
// EXTERNAL MODULE: ./src/components/ui-customization/reset.less?modules
|
|
var resetmodules = __webpack_require__(93611);
|
|
// EXTERNAL MODULE: ./node_modules/_dayjs@1.11.13@dayjs/dayjs.min.js
|
|
var dayjs_min = __webpack_require__(61186);
|
|
var dayjs_min_default = /*#__PURE__*/__webpack_require__.n(dayjs_min);
|
|
;// CONCATENATED MODULE: ./src/pages/Message/img/pt0.png
|
|
var pt0_namespaceObject = __webpack_require__.p + "static/pt0.03c22983.png";
|
|
// EXTERNAL MODULE: ./src/components/markdown-editor/index.tsx + 10 modules
|
|
var markdown_editor = __webpack_require__(66148);
|
|
// EXTERNAL MODULE: ./src/components/RenderHtml/index.tsx + 2 modules
|
|
var RenderHtml = __webpack_require__(18747);
|
|
// EXTERNAL MODULE: ./node_modules/_react-copy-to-clipboard@5.0.2@react-copy-to-clipboard/lib/index.js
|
|
var lib = __webpack_require__(56102);
|
|
// EXTERNAL MODULE: ./node_modules/_html2pdf.js@0.10.2@html2pdf.js/dist/html2pdf.js
|
|
var html2pdf = __webpack_require__(65022);
|
|
var html2pdf_default = /*#__PURE__*/__webpack_require__.n(html2pdf);
|
|
;// CONCATENATED MODULE: ./src/pages/Message/fileExporter.ts
|
|
|
|
|
|
|
|
|
|
|
|
var wrapCodeInTags = function wrapCodeInTags(str) {
|
|
var codePattern = /```[a-z]*\n([\s\S]*?)```/g;
|
|
return str.replace(codePattern, function (match, code) {
|
|
return "<code>".concat(code.trim(), "</code>");
|
|
});
|
|
};
|
|
var exportFile = function exportFile(content, fileName, fileType) {
|
|
var mimeTypeMap = {
|
|
markdown: 'text/markdown',
|
|
html: 'text/html'
|
|
};
|
|
var blob = new Blob([content], {
|
|
type: mimeTypeMap[fileType]
|
|
});
|
|
var url = URL.createObjectURL(blob);
|
|
var a = document.createElement('a');
|
|
a.href = url;
|
|
a.download = fileName;
|
|
a.click();
|
|
URL.revokeObjectURL(url); // 释放URL对象
|
|
};
|
|
var formatTimestamp = function formatTimestamp(timestamp) {
|
|
return dayjs_min_default()(timestamp).format("YYYY-MM-DD HH:mm:ss");
|
|
};
|
|
var generateHtmlContent = function generateHtmlContent(data, myUserName, userName) {
|
|
return data.map(function (e, i) {
|
|
return "\n ".concat(i !== 0 ? "\n <div class=\"message\">\n <p class=\"user-name\">".concat(myUserName, "<span class=\"timestamp\">").concat(formatTimestamp(e.updated_at), "</span></p>\n <pre class=\"code\">").concat(wrapCodeInTags(e.question), "</pre>\n </div>") : '', "\n <div class=\"message\">\n <p class=\"user-name\">").concat(userName, "<span class=\"timestamp\">").concat(formatTimestamp(e.updated_at), "</span></p>\n <pre class=\"code\">").concat(wrapCodeInTags(e.answer), "</pre>\n </div>\n ");
|
|
}).join('');
|
|
};
|
|
var generateMarkdownContent = function generateMarkdownContent(data, myUserName, userName) {
|
|
return data.map(function (e, i) {
|
|
return "".concat(i !== 0 ? "".concat(myUserName, "\n").concat(formatTimestamp(e.updated_at), "\n").concat(e.question, "\n\n") : '').concat(userName, "\n").concat(formatTimestamp(e.updated_at), "\n").concat(e.answer, "\n\n");
|
|
}).join('');
|
|
};
|
|
var exportConversation = /*#__PURE__*/function () {
|
|
var _ref = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee(rightData, options) {
|
|
var htmlContent, mdContent, pdfId, currentHtml, modal, pdfContainer, exportPdfElement, opt;
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
while (1) switch (_context.prev = _context.next) {
|
|
case 0:
|
|
htmlContent = generateHtmlContent(rightData.data, rightData.my_user_name, rightData.user_name);
|
|
mdContent = generateMarkdownContent(rightData.data, rightData.my_user_name, rightData.user_name);
|
|
pdfId = "export-id-".concat(String(Math.random()).slice(-6));
|
|
currentHtml = "\n <!DOCTYPE html>\n <html lang=\"en\">\n <head>\n <meta charset=\"UTF-8\">\n <style>\n .wrap {\n font-family: Arial, sans-serif;\n line-height: 1.6;\n color: #333;\n padding: 20px 20px 0 20px;\n background-color: #f9f9f9;\n position:fixed;\n left: 0;\n top: 0;\n z-index: 100;\n width: 100vw;\n height: 100vh;\n overflow: auto;\n box-sizing: border-box;\n }\n .message {\n margin-bottom: 20px;\n padding: 10px;\n border-radius: 5px;\n background-color: #fff;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n }\n .user-name {\n font-weight: bold;\n color: #333;\n margin: 0;\n }\n .timestamp {\n display: block;\n font-size: 0.8em;\n color: #666;\n margin-top: 5px;\n }\n pre.code {\n background-color: #f5f5f5;\n padding: 10px;\n border-radius: 5px;\n overflow-x: auto;\n white-space: pre-wrap;\n word-wrap: break-word;\n margin: 10px 0 0;\n }\n </style>\n </head>\n <body>\n <div class='wrap' id=".concat(pdfId, ">\n ").concat(htmlContent, "\n </div>\n </body>\n </html>\n ");
|
|
if (!(options.key === 'html')) {
|
|
_context.next = 8;
|
|
break;
|
|
}
|
|
exportFile(currentHtml, "\u4E0E".concat(rightData.user_name, "\u5BF9\u8BDD\u5185\u5BB9.html"), 'html');
|
|
_context.next = 26;
|
|
break;
|
|
case 8:
|
|
if (!(options.key === 'markdown')) {
|
|
_context.next = 12;
|
|
break;
|
|
}
|
|
exportFile(mdContent, "\u4E0E".concat(rightData.user_name, "\u5BF9\u8BDD\u5185\u5BB9.md"), 'markdown');
|
|
_context.next = 26;
|
|
break;
|
|
case 12:
|
|
if (!(options.key === 'pdf')) {
|
|
_context.next = 26;
|
|
break;
|
|
}
|
|
modal = es_modal/* default */.Z.info({
|
|
icon: null,
|
|
width: 460,
|
|
title: '提示',
|
|
content: '正在导出PDF中...',
|
|
maskClosable: false,
|
|
keyboard: false,
|
|
okButtonProps: {
|
|
style: {
|
|
display: 'none'
|
|
}
|
|
}
|
|
});
|
|
pdfContainer = document.createElement('div'); //导出pdf去掉阴影快了10倍以上
|
|
pdfContainer.innerHTML = currentHtml.replaceAll('box-shadow', '// box-shadow');
|
|
document.body.appendChild(pdfContainer);
|
|
exportPdfElement = document.getElementById(pdfId);
|
|
if (exportPdfElement) {
|
|
_context.next = 21;
|
|
break;
|
|
}
|
|
console.error('PDF 元素未找到');
|
|
return _context.abrupt("return");
|
|
case 21:
|
|
exportPdfElement.style.width = 'auto';
|
|
exportPdfElement.style.height = 'auto';
|
|
exportPdfElement.style.position = 'initial';
|
|
opt = {
|
|
html2canvas: {
|
|
letterRendering: true,
|
|
useCORS: true,
|
|
allowTaint: false
|
|
},
|
|
jsPDF: {
|
|
unit: 'in',
|
|
format: 'letter',
|
|
orientation: 'portrait'
|
|
},
|
|
pagebreak: {
|
|
mode: ['avoid-all']
|
|
}
|
|
};
|
|
html2pdf_default()().set(opt).from(exportPdfElement).toPdf().get('pdf').save("\u4E0E".concat(rightData.user_name, "\u5BF9\u8BDD\u5185\u5BB9.pdf"))["finally"](function () {
|
|
modal.destroy();
|
|
document.body.removeChild(pdfContainer);
|
|
// 完成后移除临时元素
|
|
});
|
|
case 26:
|
|
case "end":
|
|
return _context.stop();
|
|
}
|
|
}, _callee);
|
|
}));
|
|
return function exportConversation(_x, _x2) {
|
|
return _ref.apply(this, arguments);
|
|
};
|
|
}();
|
|
;// CONCATENATED MODULE: ./src/pages/Message/Answer/index.less?modules
|
|
// extracted by mini-css-extract-plugin
|
|
/* harmony default export */ var Answermodules = ({"cursor":"cursor___XqlqI"});
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
;// CONCATENATED MODULE: ./src/pages/Message/Answer/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
var Answer = function Answer(_ref) {
|
|
var text = _ref.text,
|
|
_ref$open = _ref.open,
|
|
open = _ref$open === void 0 ? false : _ref$open,
|
|
onTextChange = _ref.onTextChange;
|
|
var _useState = (0,_react_17_0_2_react.useState)(''),
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
displayedText = _useState2[0],
|
|
setDisplayedText = _useState2[1];
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(0),
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
currentIndex = _useState4[0],
|
|
setCurrentIndex = _useState4[1];
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(true),
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
isTypingComplete = _useState6[0],
|
|
setIsTypingComplete = _useState6[1];
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
if (open) {
|
|
if (currentIndex < text.length) {
|
|
setIsTypingComplete(false);
|
|
var timer = setTimeout(function () {
|
|
setDisplayedText(function (prev) {
|
|
return prev + text[currentIndex];
|
|
});
|
|
setCurrentIndex(currentIndex + 1);
|
|
onTextChange();
|
|
}, 50); // 每个字符的显示速度
|
|
return function () {
|
|
return clearTimeout(timer);
|
|
};
|
|
} else {
|
|
setIsTypingComplete(true); // 打字完成
|
|
onTextChange();
|
|
}
|
|
} else {
|
|
setDisplayedText(text);
|
|
setCurrentIndex(0);
|
|
setIsTypingComplete(true);
|
|
}
|
|
}, [currentIndex, text, open]);
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
|
|
value: displayedText + (isTypingComplete ? '' : "<span class='".concat(Answermodules.cursor, "'></span>"))
|
|
});
|
|
};
|
|
/* harmony default export */ var Message_Answer = (Answer);
|
|
;// CONCATENATED MODULE: ./src/pages/Message/MultilevelMenu/index.less?modules
|
|
// extracted by mini-css-extract-plugin
|
|
/* harmony default export */ var MultilevelMenumodules = ({"menuWrap":"menuWrap___GDodS","menuMask":"menuMask___dldKr","menu":"menu___OrkS3","itemTwo":"itemTwo___gOXTT","item":"item___XhZWJ","itemDisabled":"itemDisabled___pRoiI","menuWrapRight":"menuWrapRight___Tgo4N"});
|
|
// EXTERNAL MODULE: ./src/components/ui-customization/index.tsx + 32 modules
|
|
var ui_customization = __webpack_require__(7655);
|
|
// 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/pages/Message/MultilevelMenu/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var MultilevelMenu = function MultilevelMenu(_ref) {
|
|
var _ref$disabled = _ref.disabled,
|
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
_ref$recoverDisabled = _ref.recoverDisabled,
|
|
recoverDisabled = _ref$recoverDisabled === void 0 ? false : _ref$recoverDisabled,
|
|
onFileType = _ref.onFileType,
|
|
onRecover = _ref.onRecover,
|
|
onEmpty = _ref.onEmpty;
|
|
var _useState = (0,_react_17_0_2_react.useState)(false),
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
visible = _useState2[0],
|
|
setVisible = _useState2[1];
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(false),
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
isFarFromRight = _useState4[0],
|
|
setIsFarFromRight = _useState4[1];
|
|
var aRef = (0,_react_17_0_2_react.useRef)(null);
|
|
var items = [{
|
|
key: 'html',
|
|
label: '导出成HTML'
|
|
}, {
|
|
key: 'markdown',
|
|
label: '导出成Markdown'
|
|
}, {
|
|
key: 'pdf',
|
|
label: '导出成PDF'
|
|
}];
|
|
var handleMouseEnter = function handleMouseEnter() {
|
|
if (disabled) return;
|
|
if (aRef.current) {
|
|
var rect = aRef.current.getBoundingClientRect();
|
|
var distanceFromRight = window.innerWidth - rect.right;
|
|
setIsFarFromRight(distanceFromRight > 300);
|
|
}
|
|
setVisible(true);
|
|
};
|
|
console.log(isFarFromRight);
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
ref: aRef,
|
|
className: _classnames_2_5_1_classnames_default()(MultilevelMenumodules.menuWrap, isFarFromRight && MultilevelMenumodules.menuWrapRight),
|
|
onMouseEnter: handleMouseEnter,
|
|
onMouseLeave: function onMouseLeave() {
|
|
return setVisible(false);
|
|
},
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(ui_customization/* CustomButton */.op, {
|
|
disabled: disabled,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
className: "iconfont icon-gengduo6 font12 mr5"
|
|
}), "\u66F4\u591A\u64CD\u4F5C"]
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
className: MultilevelMenumodules.menuMask,
|
|
style: {
|
|
display: visible ? 'block' : 'none'
|
|
},
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
className: MultilevelMenumodules.menu,
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: MultilevelMenumodules.itemOne,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: MultilevelMenumodules.item,
|
|
style: {
|
|
cursor: 'auto'
|
|
},
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
children: "\u5BFC\u51FA\u5BF9\u8BDD"
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
className: MultilevelMenumodules.itemTwo,
|
|
children: items.map(function (e) {
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
onClick: function onClick() {
|
|
setVisible(false);
|
|
onFileType(e);
|
|
},
|
|
className: MultilevelMenumodules.item,
|
|
children: e.label
|
|
}, e.key);
|
|
})
|
|
})]
|
|
}), recoverDisabled ? /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
className: MultilevelMenumodules.itemDisabled,
|
|
children: "\u6062\u590D\u5BF9\u8BDD"
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
onClick: function onClick(e) {
|
|
setVisible(false);
|
|
onRecover(e);
|
|
},
|
|
className: MultilevelMenumodules.item,
|
|
children: "\u6062\u590D\u5BF9\u8BDD"
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
onClick: function onClick(e) {
|
|
setVisible(false);
|
|
onEmpty(e);
|
|
},
|
|
className: MultilevelMenumodules.item,
|
|
children: "\u6E05\u7A7A\u5BF9\u8BDD"
|
|
})]
|
|
})
|
|
})
|
|
})]
|
|
});
|
|
};
|
|
/* harmony default export */ var Message_MultilevelMenu = (MultilevelMenu);
|
|
;// CONCATENATED MODULE: ./src/pages/Message/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Message = function Message(_ref) {
|
|
var _rightData$data$, _rightData$data, _rightData$data2;
|
|
objectDestructuringEmpty_default()(_ref);
|
|
var _getJsonFromUrl = (0,util/* getJsonFromUrl */.oP)(),
|
|
id = _getJsonFromUrl.id,
|
|
position = _getJsonFromUrl.position;
|
|
var _useState = (0,_react_17_0_2_react.useState)(true),
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
loading = _useState2[0],
|
|
setLoading = _useState2[1];
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(false),
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
btnDisable = _useState4[0],
|
|
setBtnDisable = _useState4[1];
|
|
var placementRef = (0,_react_17_0_2_react.useRef)("bottomRight");
|
|
var mouseOutRef = (0,_react_17_0_2_react.useRef)();
|
|
var _useState5 = (0,_react_17_0_2_react.useState)({}),
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
openPop = _useState6[0],
|
|
setOpenPop = _useState6[1];
|
|
var _useState7 = (0,_react_17_0_2_react.useState)(Number(id)),
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
active = _useState8[0],
|
|
setActive = _useState8[1];
|
|
var _useState9 = (0,_react_17_0_2_react.useState)([]),
|
|
_useState10 = slicedToArray_default()(_useState9, 2),
|
|
leftList = _useState10[0],
|
|
setLeftList = _useState10[1];
|
|
var _useState11 = (0,_react_17_0_2_react.useState)(1),
|
|
_useState12 = slicedToArray_default()(_useState11, 2),
|
|
barBottomIndex = _useState12[0],
|
|
setBarBottomIndex = _useState12[1];
|
|
var _useState13 = (0,_react_17_0_2_react.useState)(Number(position)),
|
|
_useState14 = slicedToArray_default()(_useState13, 2),
|
|
challengeId = _useState14[0],
|
|
setChallengeId = _useState14[1];
|
|
var saveChallengeId = (0,_react_17_0_2_react.useRef)(Number(position));
|
|
var _useState15 = (0,_react_17_0_2_react.useState)([]),
|
|
_useState16 = slicedToArray_default()(_useState15, 2),
|
|
challengeList = _useState16[0],
|
|
setChallengeList = _useState16[1];
|
|
var _useState17 = (0,_react_17_0_2_react.useState)(false),
|
|
_useState18 = slicedToArray_default()(_useState17, 2),
|
|
load = _useState18[0],
|
|
setLoad = _useState18[1];
|
|
var _useState19 = (0,_react_17_0_2_react.useState)(true),
|
|
_useState20 = slicedToArray_default()(_useState19, 2),
|
|
leftLoad = _useState20[0],
|
|
setLeftLoad = _useState20[1];
|
|
var rightBar = (0,_react_17_0_2_react.useRef)(null);
|
|
var loadData = (0,_react_17_0_2_react.useRef)(1);
|
|
var _useState21 = (0,_react_17_0_2_react.useState)({}),
|
|
_useState22 = slicedToArray_default()(_useState21, 2),
|
|
rightData = _useState22[0],
|
|
setRightData = _useState22[1];
|
|
var _useState23 = (0,_react_17_0_2_react.useState)(''),
|
|
_useState24 = slicedToArray_default()(_useState23, 2),
|
|
value = _useState24[0],
|
|
setValue = _useState24[1];
|
|
var _useState25 = (0,_react_17_0_2_react.useState)(false),
|
|
_useState26 = slicedToArray_default()(_useState25, 2),
|
|
visible = _useState26[0],
|
|
setVisible = _useState26[1];
|
|
var _useState27 = (0,_react_17_0_2_react.useState)(false),
|
|
_useState28 = slicedToArray_default()(_useState27, 2),
|
|
showMd = _useState28[0],
|
|
setShowMd = _useState28[1];
|
|
var _useSearchParams = (0,_umi_production_exports.useSearchParams)(),
|
|
_useSearchParams2 = slicedToArray_default()(_useSearchParams, 1),
|
|
searchParams = _useSearchParams2[0];
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
(0,_umi_production_exports.getDvaApp)()._store.dispatch({
|
|
type: 'globalSetting/footerToggle',
|
|
payload: false
|
|
});
|
|
return function () {
|
|
(0,_umi_production_exports.getDvaApp)()._store.dispatch({
|
|
type: 'globalSetting/footerToggle',
|
|
payload: true
|
|
});
|
|
};
|
|
}, []);
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
getData();
|
|
}, []);
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
rightBar.current.scrollTop = rightBar.current.scrollHeight;
|
|
}, [barBottomIndex]);
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
var dom = document.getElementById('wechat_QR_code_ids');
|
|
dom.classList.add('hide');
|
|
return function () {
|
|
dom.classList.remove('hide');
|
|
};
|
|
}, []);
|
|
var getData = /*#__PURE__*/function () {
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
var res, result, _result$data, findId;
|
|
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/chats.json", {
|
|
method: 'post',
|
|
body: {
|
|
to_user_id: id
|
|
}
|
|
});
|
|
case 2:
|
|
res = _context.sent;
|
|
if (!((res === null || res === void 0 ? void 0 : res.status) === 0)) {
|
|
_context.next = 8;
|
|
break;
|
|
}
|
|
_context.next = 6;
|
|
return (0,fetch/* default */.ZP)("/api/chats.json", {
|
|
method: 'get',
|
|
params: {
|
|
to_user_id: id,
|
|
challenge_id: Number(position) || ''
|
|
}
|
|
});
|
|
case 6:
|
|
result = _context.sent;
|
|
if (result !== null && result !== void 0 && result.data) {
|
|
setLeftLoad(false);
|
|
setLeftList((result === null || result === void 0 ? void 0 : result.data) || []);
|
|
findId = result === null || result === void 0 || (_result$data = result.data) === null || _result$data === void 0 || (_result$data = _result$data.find(function (e) {
|
|
return e.to_user_id === Number(id);
|
|
})) === null || _result$data === void 0 ? void 0 : _result$data.id;
|
|
setActive(findId);
|
|
getChallengeData(findId);
|
|
getRightData(findId, position);
|
|
}
|
|
case 8:
|
|
case "end":
|
|
return _context.stop();
|
|
}
|
|
}, _callee);
|
|
}));
|
|
return function getData() {
|
|
return _ref2.apply(this, arguments);
|
|
};
|
|
}();
|
|
var getChallengeData = /*#__PURE__*/function () {
|
|
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2(itemId) {
|
|
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/chats/challenge_list.json", {
|
|
method: 'get',
|
|
params: {
|
|
id: itemId,
|
|
challenge_id: challengeId || ''
|
|
}
|
|
});
|
|
case 2:
|
|
res = _context2.sent;
|
|
if (res !== null && res !== void 0 && res.challenges) {
|
|
setChallengeList([{
|
|
id: 0,
|
|
subject: "全部"
|
|
}].concat(toConsumableArray_default()(res.challenges)) || []);
|
|
}
|
|
case 4:
|
|
case "end":
|
|
return _context2.stop();
|
|
}
|
|
}, _callee2);
|
|
}));
|
|
return function getChallengeData(_x) {
|
|
return _ref3.apply(this, arguments);
|
|
};
|
|
}();
|
|
var getLeftData = /*#__PURE__*/function () {
|
|
var _ref4 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3(itemId, challenge_id) {
|
|
var res;
|
|
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
|
|
while (1) switch (_context3.prev = _context3.next) {
|
|
case 0:
|
|
_context3.next = 2;
|
|
return (0,fetch/* default */.ZP)("/api/chats.json", {
|
|
method: 'get',
|
|
params: {
|
|
to_user_id: itemId,
|
|
challenge_id: challenge_id || ''
|
|
}
|
|
});
|
|
case 2:
|
|
res = _context3.sent;
|
|
if (res !== null && res !== void 0 && res.data) {
|
|
setLeftList((res === null || res === void 0 ? void 0 : res.data) || []);
|
|
}
|
|
setLeftLoad(false);
|
|
case 5:
|
|
case "end":
|
|
return _context3.stop();
|
|
}
|
|
}, _callee3);
|
|
}));
|
|
return function getLeftData(_x2, _x3) {
|
|
return _ref4.apply(this, arguments);
|
|
};
|
|
}();
|
|
var getRightData = /*#__PURE__*/function () {
|
|
var _ref5 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4(itemId, challenge_id, isBottom) {
|
|
var res, _leftList$find, findId;
|
|
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
|
|
while (1) switch (_context4.prev = _context4.next) {
|
|
case 0:
|
|
setLoading(true);
|
|
_context4.next = 3;
|
|
return (0,fetch/* default */.ZP)("/api/chats/".concat(itemId, ".json"), {
|
|
method: 'get',
|
|
params: {
|
|
challenge_id: Number(challenge_id) || ''
|
|
}
|
|
});
|
|
case 3:
|
|
res = _context4.sent;
|
|
if (res !== null && res !== void 0 && res.data) {
|
|
if (isBottom) {
|
|
res.data[res.data.length - 1].open = true;
|
|
}
|
|
setRightData(objectSpread2_default()({}, res) || {});
|
|
setLoad(true);
|
|
setBtnDisable(false);
|
|
findId = leftList === null || leftList === void 0 || (_leftList$find = leftList.find(function (e) {
|
|
return e.id === itemId;
|
|
})) === null || _leftList$find === void 0 ? void 0 : _leftList$find.to_user_id; //在这里改变传参:
|
|
if (window.location.host === "gpt.educoder.net") {
|
|
if (searchParams.get('homeworkId')) {
|
|
_umi_production_exports.history.replace("/chatgpt?id=0&position=0&homeworkId=".concat(searchParams.get('homeworkId')));
|
|
} else {
|
|
_umi_production_exports.history.replace("/chatgpt?id=0&position=0");
|
|
}
|
|
} else {
|
|
if (searchParams.get('homeworkId')) {
|
|
_umi_production_exports.history.replace("/chatgpt?id=".concat(findId || id, "&position=").concat(challenge_id, "&homeworkId=").concat(searchParams.get('homeworkId')));
|
|
} else {
|
|
_umi_production_exports.history.replace("/chatgpt?id=".concat(findId || id, "&position=").concat(challenge_id));
|
|
}
|
|
}
|
|
if (isBottom) {
|
|
setBarBottomIndex(Math.random());
|
|
getLeftData(findId, challenge_id);
|
|
}
|
|
}
|
|
setLoading(false);
|
|
case 6:
|
|
case "end":
|
|
return _context4.stop();
|
|
}
|
|
}, _callee4);
|
|
}));
|
|
return function getRightData(_x4, _x5, _x6) {
|
|
return _ref5.apply(this, arguments);
|
|
};
|
|
}();
|
|
var handleChange = function handleChange(e) {
|
|
var _e$trim;
|
|
setValue(e);
|
|
// 判断是否为纯空格
|
|
if ((e === null || e === void 0 || (_e$trim = e.trim()) === null || _e$trim === void 0 ? void 0 : _e$trim.length) === 0) {
|
|
return;
|
|
}
|
|
};
|
|
var handleLeftChange = function handleLeftChange(itemId) {
|
|
loadData.current = loadData.current + 1;
|
|
setActive(itemId);
|
|
setChallengeId(0);
|
|
setValue('');
|
|
setBtnDisable(false);
|
|
getRightData(itemId, 0);
|
|
getChallengeData(itemId);
|
|
};
|
|
// 点击发送触发
|
|
var handleSummit = /*#__PURE__*/function () {
|
|
var _ref6 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee5() {
|
|
var _newRightData$data;
|
|
var now, newRightData, index, res;
|
|
return regeneratorRuntime_default()().wrap(function _callee5$(_context5) {
|
|
while (1) switch (_context5.prev = _context5.next) {
|
|
case 0:
|
|
if (!(value.trim().length === 0)) {
|
|
_context5.next = 3;
|
|
break;
|
|
}
|
|
message/* default */.ZP.error("不能输入纯空格");
|
|
return _context5.abrupt("return");
|
|
case 3:
|
|
if (value) {
|
|
_context5.next = 6;
|
|
break;
|
|
}
|
|
message/* default */.ZP.warning('请输入你要问的问题');
|
|
return _context5.abrupt("return");
|
|
case 6:
|
|
setBtnDisable(true);
|
|
now = dayjs_min_default()().format('YYYY-MM-DDTHH:mm:ss.SSSZ');
|
|
newRightData = objectSpread2_default()({}, rightData);
|
|
newRightData === null || newRightData === void 0 || (_newRightData$data = newRightData.data) === null || _newRightData$data === void 0 || _newRightData$data.push({
|
|
id: 0,
|
|
updated_at: now,
|
|
question: value,
|
|
answer: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
className: Messagemodules.animation,
|
|
children: "\u8001\u5E08\u6B63\u5728\u56DE\u7B54\u4E2D\uFF0C\u8BF7\u7A0D\u540E"
|
|
})
|
|
});
|
|
setRightData(newRightData);
|
|
setBarBottomIndex(barBottomIndex + 1);
|
|
setValue('');
|
|
loadData.current = loadData.current + 1;
|
|
index = loadData.current;
|
|
_context5.next = 17;
|
|
return (0,fetch/* default */.ZP)("/api/chats/get_answer", {
|
|
method: 'post',
|
|
body: {
|
|
chat_id: active,
|
|
to_user_id: id,
|
|
question: value,
|
|
challenge_id: challengeId || '',
|
|
time: now
|
|
}
|
|
});
|
|
case 17:
|
|
res = _context5.sent;
|
|
if (!(index !== loadData.current)) {
|
|
_context5.next = 20;
|
|
break;
|
|
}
|
|
return _context5.abrupt("return");
|
|
case 20:
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
|
|
getRightData(active, challengeId, true);
|
|
}
|
|
case 21:
|
|
case "end":
|
|
return _context5.stop();
|
|
}
|
|
}, _callee5);
|
|
}));
|
|
return function handleSummit() {
|
|
return _ref6.apply(this, arguments);
|
|
};
|
|
}();
|
|
var handleOk = function handleOk() {
|
|
getRightData(active, challengeId);
|
|
getLeftData(id, challengeId);
|
|
setVisible(false);
|
|
};
|
|
var handleAction = /*#__PURE__*/function () {
|
|
var _ref7 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee6(itemId, satisfied) {
|
|
var content,
|
|
obj,
|
|
res,
|
|
_args6 = arguments;
|
|
return regeneratorRuntime_default()().wrap(function _callee6$(_context6) {
|
|
while (1) switch (_context6.prev = _context6.next) {
|
|
case 0:
|
|
content = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : '';
|
|
setLoading(true);
|
|
obj = {};
|
|
if (searchParams.get('homeworkId')) {
|
|
obj = {
|
|
id: itemId,
|
|
satisfied: satisfied,
|
|
content: content,
|
|
homework_common_id: searchParams.get('homeworkId')
|
|
};
|
|
} else {
|
|
obj = {
|
|
id: itemId,
|
|
satisfied: satisfied,
|
|
content: content
|
|
};
|
|
}
|
|
_context6.next = 6;
|
|
return (0,fetch/* default */.ZP)("/api/chats/praise.json", {
|
|
method: 'post',
|
|
body: obj
|
|
});
|
|
case 6:
|
|
res = _context6.sent;
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
|
|
getRightData(active, challengeId);
|
|
}
|
|
case 8:
|
|
case "end":
|
|
return _context6.stop();
|
|
}
|
|
}, _callee6);
|
|
}));
|
|
return function handleAction(_x7, _x8) {
|
|
return _ref7.apply(this, arguments);
|
|
};
|
|
}();
|
|
var handleKeyDown = function handleKeyDown(event) {
|
|
if (event.shiftKey && event.keyCode === 13) {
|
|
// 判断是否同时按下了Shift和Enter键
|
|
return;
|
|
}
|
|
if (event.keyCode === 13) {
|
|
event.preventDefault(); // 禁止换行操作
|
|
handleSummit();
|
|
}
|
|
};
|
|
var handleDelete = /*#__PURE__*/function () {
|
|
var _ref8 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee8(itemId) {
|
|
return regeneratorRuntime_default()().wrap(function _callee8$(_context8) {
|
|
while (1) switch (_context8.prev = _context8.next) {
|
|
case 0:
|
|
es_modal/* default */.Z.confirm({
|
|
icon: null,
|
|
centered: true,
|
|
okText: '确定',
|
|
cancelText: '取消',
|
|
title: '提示',
|
|
content: '请确认是否将该问答内容进行删除?',
|
|
onOk: function () {
|
|
var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee7() {
|
|
var res;
|
|
return regeneratorRuntime_default()().wrap(function _callee7$(_context7) {
|
|
while (1) switch (_context7.prev = _context7.next) {
|
|
case 0:
|
|
_context7.next = 2;
|
|
return (0,fetch/* default */.ZP)("/api/chats/delete_one.json", {
|
|
method: 'delete',
|
|
body: {
|
|
id: itemId
|
|
}
|
|
});
|
|
case 2:
|
|
res = _context7.sent;
|
|
if (res.status === 0) {
|
|
message/* default */.ZP.success('删除成功');
|
|
getRightData(active, challengeId);
|
|
}
|
|
case 4:
|
|
case "end":
|
|
return _context7.stop();
|
|
}
|
|
}, _callee7);
|
|
}));
|
|
function onOk() {
|
|
return _onOk.apply(this, arguments);
|
|
}
|
|
return onOk;
|
|
}()
|
|
});
|
|
case 1:
|
|
case "end":
|
|
return _context8.stop();
|
|
}
|
|
}, _callee8);
|
|
}));
|
|
return function handleDelete(_x9) {
|
|
return _ref8.apply(this, arguments);
|
|
};
|
|
}();
|
|
var handleForceStop = /*#__PURE__*/function () {
|
|
var _ref9 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee9() {
|
|
var res;
|
|
return regeneratorRuntime_default()().wrap(function _callee9$(_context9) {
|
|
while (1) switch (_context9.prev = _context9.next) {
|
|
case 0:
|
|
// loadData.current = loadData.current + 1;
|
|
// const newRightData = JSON.parse(JSON.stringify(rightData))
|
|
// newRightData.data[newRightData.data.length - 1]['answer'] = <div className={styles.stop}>{'(回答已停止生成)'}</div>
|
|
// setRightData(newRightData)
|
|
|
|
setLoading(true);
|
|
loadData.current = loadData.current + 1;
|
|
_context9.next = 4;
|
|
return (0,fetch/* default */.ZP)("/api/chats/stop_one.json", {
|
|
method: 'delete',
|
|
body: {
|
|
challenge_id: challengeId,
|
|
id: active
|
|
}
|
|
});
|
|
case 4:
|
|
res = _context9.sent;
|
|
if (res.status === 0) {
|
|
// message.success('停止成功')
|
|
getRightData(active, challengeId);
|
|
}
|
|
setLoading(false);
|
|
case 7:
|
|
case "end":
|
|
return _context9.stop();
|
|
}
|
|
}, _callee9);
|
|
}));
|
|
return function handleForceStop() {
|
|
return _ref9.apply(this, arguments);
|
|
};
|
|
}();
|
|
var magList = ["\u8BF7".concat(rightData === null || rightData === void 0 ? void 0 : rightData.user_name, "\u8001\u5E08\u5C1D\u8BD5\u518D\u56DE\u7B54\u4E00\u6B21"), '可能启用了机器人,请老师亲自回答'];
|
|
var handleExportFile = function handleExportFile(obj) {
|
|
exportConversation(rightData, obj);
|
|
};
|
|
var handleTextChange = function handleTextChange() {
|
|
// const element=rightBar.current;
|
|
// if(element.scrollHeight - element.scrollTop === element.clientHeight){
|
|
|
|
// }
|
|
};
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: Messagemodules.wrap,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: Messagemodules.head,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("b", {
|
|
children: "\u5B9E\u8BAD >"
|
|
}), "\u6559\u5B66\u8F85\u5BFC\uFF08beta\u7248\u672C\uFF09"]
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: Messagemodules.content,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(spin/* default */.Z, {
|
|
spinning: leftLoad,
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: Messagemodules.left,
|
|
onClick: function onClick() {
|
|
setShowMd(false);
|
|
},
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: Messagemodules.title,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
children: "\u95EE\u7B54\u5217\u8868"
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
className: _classnames_2_5_1_classnames_default()(Messagemodules.add, btnDisable && Messagemodules.disabledElement),
|
|
onClick: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee10() {
|
|
var res, newId;
|
|
return regeneratorRuntime_default()().wrap(function _callee10$(_context10) {
|
|
while (1) switch (_context10.prev = _context10.next) {
|
|
case 0:
|
|
if (!btnDisable) {
|
|
_context10.next = 2;
|
|
break;
|
|
}
|
|
return _context10.abrupt("return");
|
|
case 2:
|
|
setLeftLoad(true);
|
|
_context10.next = 5;
|
|
return (0,fetch/* default */.ZP)("/api/chats.json", {
|
|
method: 'post',
|
|
body: {
|
|
to_user_id: id,
|
|
new_chat: true
|
|
}
|
|
});
|
|
case 5:
|
|
res = _context10.sent;
|
|
if (!(res.status === 0)) {
|
|
_context10.next = 18;
|
|
break;
|
|
}
|
|
newId = res === null || res === void 0 ? void 0 : res.id;
|
|
if (!(newId === active)) {
|
|
_context10.next = 12;
|
|
break;
|
|
}
|
|
message/* default */.ZP.warning('当前已经在新对话窗口');
|
|
setLeftLoad(false);
|
|
return _context10.abrupt("return");
|
|
case 12:
|
|
_context10.next = 14;
|
|
return getLeftData(-1, 0);
|
|
case 14:
|
|
setActive(newId);
|
|
setChallengeId(0);
|
|
_context10.next = 18;
|
|
return getRightData(newId, 0);
|
|
case 18:
|
|
setLeftLoad(false);
|
|
case 19:
|
|
case "end":
|
|
return _context10.stop();
|
|
}
|
|
}, _callee10);
|
|
}))
|
|
})]
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
className: Messagemodules.leftBar,
|
|
children: leftList.map(function (e) {
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
onClick: function onClick() {
|
|
return handleLeftChange(e.id);
|
|
},
|
|
className: "".concat(Messagemodules.li, " ").concat(e.id === active ? Messagemodules.active : ''),
|
|
children: [e !== null && e !== void 0 && e.avatar ? /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
src: "".concat(env/* default */.Z.IMG_SERVER, "/images/").concat(e === null || e === void 0 ? void 0 : e.avatar)
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
src: pt0_namespaceObject
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("aside", {
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("b", {
|
|
title: e.user_name,
|
|
children: e.user_name
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
children: e.time
|
|
})]
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
children: e.last_message
|
|
})]
|
|
})]
|
|
}, e.id);
|
|
})
|
|
})]
|
|
})
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: Messagemodules.right,
|
|
children: [load && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
className: Messagemodules.title,
|
|
onClick: function onClick() {
|
|
setShowMd(false);
|
|
},
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("section", {
|
|
className: Messagemodules.center,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
children: ["\u4E0E", rightData === null || rightData === void 0 ? void 0 : rightData.user_name, "\u8001\u5E08\u6C9F\u901A\u4E2D\u2026"]
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: Messagemodules.tabs,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
className: "iconfont icon-lianjie3"
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
children: ["\u5F53\u524D\u5BF9\u8BDD\u5173\u8054\uFF1A", rightData !== null && rightData !== void 0 && rightData.challenge_name ? "".concat(rightData === null || rightData === void 0 || (_rightData$data$ = rightData.data[0]) === null || _rightData$data$ === void 0 || (_rightData$data$ = _rightData$data$.shixun) === null || _rightData$data$ === void 0 ? void 0 : _rightData$data$.name, " \u5B9E\u8BAD---\u7B2C").concat(rightData === null || rightData === void 0 ? void 0 : rightData.challenge_position, "\u5173") : '全部']
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
onClick: function onClick() {
|
|
if (btnDisable) return;
|
|
saveChallengeId.current = challengeId;
|
|
setVisible(true);
|
|
},
|
|
className: _classnames_2_5_1_classnames_default()(Messagemodules.cut, btnDisable && Messagemodules.disabledElement),
|
|
children: "\u5207\u6362"
|
|
})]
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(Message_MultilevelMenu, {
|
|
disabled: btnDisable,
|
|
recoverDisabled: !(rightData !== null && rightData !== void 0 && rightData.can_recycle),
|
|
onFileType: handleExportFile,
|
|
onRecover: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee11() {
|
|
var res;
|
|
return regeneratorRuntime_default()().wrap(function _callee11$(_context11) {
|
|
while (1) switch (_context11.prev = _context11.next) {
|
|
case 0:
|
|
setLoading(true);
|
|
_context11.next = 3;
|
|
return (0,fetch/* default */.ZP)("/api/chats/recycle.json", {
|
|
method: 'post',
|
|
body: {
|
|
challenge_id: challengeId,
|
|
id: active
|
|
}
|
|
});
|
|
case 3:
|
|
res = _context11.sent;
|
|
if (res.status === 0) {
|
|
message/* default */.ZP.success('恢复对话成功');
|
|
getLeftData(id, challengeId);
|
|
getRightData(active, challengeId);
|
|
}
|
|
setLoading(false);
|
|
case 6:
|
|
case "end":
|
|
return _context11.stop();
|
|
}
|
|
}, _callee11);
|
|
})),
|
|
onEmpty: function onEmpty() {
|
|
es_modal/* default */.Z.confirm({
|
|
icon: null,
|
|
centered: true,
|
|
okText: '确定',
|
|
cancelText: '取消',
|
|
title: '提示',
|
|
content: '请确认是否将当前对话窗口中的对话内容全部清空?',
|
|
onOk: function () {
|
|
var _onOk2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee12() {
|
|
var res;
|
|
return regeneratorRuntime_default()().wrap(function _callee12$(_context12) {
|
|
while (1) switch (_context12.prev = _context12.next) {
|
|
case 0:
|
|
_context12.next = 2;
|
|
return (0,fetch/* default */.ZP)("/api/chats/clean.json", {
|
|
method: 'delete',
|
|
body: {
|
|
challenge_id: challengeId,
|
|
id: active
|
|
}
|
|
});
|
|
case 2:
|
|
res = _context12.sent;
|
|
if (res.status === 0) {
|
|
message/* default */.ZP.success('清空对话成功');
|
|
getLeftData(id, challengeId);
|
|
getRightData(active, challengeId);
|
|
}
|
|
case 4:
|
|
case "end":
|
|
return _context12.stop();
|
|
}
|
|
}, _callee12);
|
|
}));
|
|
function onOk() {
|
|
return _onOk2.apply(this, arguments);
|
|
}
|
|
return onOk;
|
|
}()
|
|
});
|
|
}
|
|
})]
|
|
})
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
onClick: function onClick() {
|
|
setShowMd(false);
|
|
},
|
|
className: Messagemodules.rightBar,
|
|
ref: rightBar,
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(spin/* default */.Z, {
|
|
spinning: loading,
|
|
children: [!(rightData !== null && rightData !== void 0 && (_rightData$data = rightData.data) !== null && _rightData$data !== void 0 && _rightData$data.length) && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
className: Messagemodules.empty
|
|
}), rightData === null || rightData === void 0 || (_rightData$data2 = rightData.data) === null || _rightData$data2 === void 0 ? void 0 : _rightData$data2.map(function (e, i) {
|
|
var _e$shixun, _e$shixun2, _e$challenge;
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(_react_17_0_2_react.Fragment, {
|
|
children: [!!e.question && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: Messagemodules.li,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
src: "".concat(env/* default */.Z.IMG_SERVER, "/images/").concat(rightData === null || rightData === void 0 ? void 0 : rightData.my_avatar),
|
|
style: {
|
|
borderRadius: '50%',
|
|
width: 56,
|
|
height: 56
|
|
}
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("aside", {
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("b", {
|
|
children: rightData.my_user_name
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
children: dayjs_min_default()(e.updated_at).format("YYYY-MM-DD HH:mm")
|
|
})]
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
|
|
value: e.question
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: Messagemodules.action,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(lib.CopyToClipboard, {
|
|
text: e.question,
|
|
onCopy: function onCopy() {
|
|
return message/* default */.ZP.success('内容已复制到粘贴板中');
|
|
},
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: Messagemodules.tagBtn,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
className: "iconfont icon-fuzhi8"
|
|
}), "\u590D\u5236"]
|
|
})
|
|
}), !btnDisable && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
onClick: function onClick() {
|
|
return handleDelete(e.id);
|
|
},
|
|
className: Messagemodules.tagBtn,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
className: "iconfont icon-shanchu8"
|
|
}), "\u5220\u9664"]
|
|
})]
|
|
})]
|
|
})]
|
|
}), !!e.answer && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
style: i === 0 ? {
|
|
borderTop: 0
|
|
} : {},
|
|
className: "".concat(Messagemodules.li, " ").concat(Messagemodules.active),
|
|
children: [rightData !== null && rightData !== void 0 && rightData.avatar ? /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
src: "".concat(env/* default */.Z.IMG_SERVER, "/images/").concat(rightData === null || rightData === void 0 ? void 0 : rightData.avatar),
|
|
style: {
|
|
borderRadius: '50%',
|
|
width: 56,
|
|
height: 56
|
|
}
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
src: pt0_namespaceObject,
|
|
style: {
|
|
borderRadius: '50%',
|
|
width: 56,
|
|
height: 56
|
|
}
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("aside", {
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
style: {
|
|
display: "flex"
|
|
},
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("b", {
|
|
style: {
|
|
marginRight: "20px"
|
|
},
|
|
children: rightData.user_name
|
|
}), (_e$shixun = e.shixun) !== null && _e$shixun !== void 0 && _e$shixun.name ? /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
style: {
|
|
display: "flex",
|
|
alignItems: "center"
|
|
},
|
|
children: ["\u5F53\u524D\u5BF9\u8BDD\u5173\u8054\uFF1A", (_e$shixun2 = e.shixun) === null || _e$shixun2 === void 0 ? void 0 : _e$shixun2.name, " \u5B9E\u8BAD---\u7B2C", (_e$challenge = e.challenge) === null || _e$challenge === void 0 ? void 0 : _e$challenge.position, "\u5173"]
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
style: {
|
|
display: "flex",
|
|
alignItems: "center"
|
|
},
|
|
children: "\u5F53\u524D\u5BF9\u8BDD\u5173\u8054\uFF1A\u5168\u90E8"
|
|
})]
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
children: dayjs_min_default()(e.updated_at).format("YYYY-MM-DD HH:mm")
|
|
})]
|
|
}), e.id === 0 ? e.answer : /*#__PURE__*/(0,jsx_runtime.jsx)(Message_Answer, {
|
|
onTextChange: handleTextChange,
|
|
open: !!(e !== null && e !== void 0 && e.open),
|
|
text: e.answer
|
|
}), e.id === 0 && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
className: Messagemodules.action,
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
onClick: handleForceStop,
|
|
className: Messagemodules.tagBtn,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
className: "iconfont icon-tingzhishengcheng"
|
|
}), "\u505C\u6B62\u751F\u6210"]
|
|
})
|
|
}), (e === null || e === void 0 ? void 0 : e.id) !== 0 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: Messagemodules.action,
|
|
children: [!!e.question && /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
onClick: function onClick() {
|
|
value = e.question;
|
|
handleSummit();
|
|
},
|
|
className: Messagemodules.tagBtn,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
className: "iconfont icon-zhongxinshengcheng"
|
|
}), "\u91CD\u65B0\u751F\u6210"]
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(lib.CopyToClipboard, {
|
|
text: e.answer,
|
|
onCopy: function onCopy() {
|
|
return message/* default */.ZP.success('内容已复制到粘贴板中');
|
|
},
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: Messagemodules.tagBtn,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
className: "iconfont icon-fuzhi8"
|
|
}), "\u590D\u5236"]
|
|
})
|
|
}), !btnDisable && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
onClick: function onClick() {
|
|
return handleDelete(e.id);
|
|
},
|
|
className: Messagemodules.tagBtn,
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
className: "iconfont icon-shanchu8"
|
|
}), "\u5220\u9664"]
|
|
})]
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
style: {
|
|
marginLeft: 'auto'
|
|
},
|
|
onClick: function onClick() {
|
|
handleAction(e.id, e.satisfied === 1 ? -1 : 1);
|
|
},
|
|
className: "mr30 ".concat(e.satisfied === 1 ? Messagemodules.actActive : ''),
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
className: "iconfont icon-yijiejue"
|
|
}), "\u5DF2\u89E3\u51B3"]
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(popover/* default */.Z, {
|
|
autoAdjustOverflow: false,
|
|
destroyTooltipOnHide: true,
|
|
open: openPop[i],
|
|
getPopupContainer: function getPopupContainer(trigger) {
|
|
return trigger;
|
|
},
|
|
placement: placementRef.current,
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: Messagemodules.box,
|
|
onMouseLeave: function onMouseLeave(e) {
|
|
clearTimeout(mouseOutRef.current);
|
|
openPop[i] = false;
|
|
setOpenPop(objectSpread2_default()({}, openPop));
|
|
},
|
|
onMouseOver: function onMouseOver() {
|
|
clearTimeout(mouseOutRef.current);
|
|
},
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("p", {
|
|
children: "\u62B1\u6B49\u8BA9\u4F60\u5931\u671B\u4E86\uFF0C\u8BF7\u7EE7\u7EED\u5C1D\u8BD5\uFF1A"
|
|
}), magList.map(function (p, n) {
|
|
var isTrue = p === e.content;
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
// style={n === 0 ? { width: p.length * 17 } : {}}
|
|
onClick: function onClick() {
|
|
handleAction(e.id, isTrue ? -1 : 0, isTrue ? '' : p);
|
|
},
|
|
className: isTrue ? Messagemodules.hot : '',
|
|
children: p
|
|
}, p);
|
|
})]
|
|
}),
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
onMouseOver: function onMouseOver(e) {
|
|
clearTimeout(mouseOutRef.current);
|
|
if (window.innerHeight - e.target.getBoundingClientRect().top < 350) {
|
|
placementRef.current = "topRight";
|
|
} else {
|
|
placementRef.current = "bottomRight";
|
|
}
|
|
openPop = {};
|
|
openPop[i] = true;
|
|
setOpenPop(objectSpread2_default()({}, openPop));
|
|
},
|
|
onMouseOut: function onMouseOut(e) {
|
|
mouseOutRef.current = setTimeout(function () {
|
|
clearTimeout(mouseOutRef.current);
|
|
openPop[i] = false;
|
|
setOpenPop(objectSpread2_default()({}, openPop));
|
|
}, 800);
|
|
},
|
|
className: "".concat(Messagemodules.unsolved, " ").concat(e.satisfied === 0 ? Messagemodules.actActive : ''),
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
className: "iconfont icon-weijiejuezhengchang"
|
|
}), "\u672A\u89E3\u51B3"]
|
|
})
|
|
})]
|
|
})]
|
|
})]
|
|
})]
|
|
}, i);
|
|
})]
|
|
})
|
|
}), load && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: Messagemodules.answers,
|
|
children: [!showMd && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
className: Messagemodules.open_md,
|
|
onClick: function onClick() {
|
|
setShowMd(true);
|
|
},
|
|
children: "\u8BF7\u8F93\u5165\u4F60\u7684\u95EE\u9898"
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
className: showMd ? 'md_container' : 'md_container hide',
|
|
style: {
|
|
marginTop: 20
|
|
},
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(markdown_editor/* default */.Z, {
|
|
id: "discuss-input-editor",
|
|
miniToolbar: true,
|
|
watch: false,
|
|
noStorage: true,
|
|
defaultValue: value,
|
|
height: 240,
|
|
width: 1000,
|
|
onChange: handleChange,
|
|
className: Messagemodules.md_editor
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
className: Messagemodules.tip_container,
|
|
style: {
|
|
display: 'flex'
|
|
},
|
|
onClick: function onClick() {
|
|
setShowMd(false);
|
|
},
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
className: Messagemodules.btn_send,
|
|
onClick: handleSummit,
|
|
children: "\u53D1\u9001"
|
|
})
|
|
})]
|
|
})]
|
|
})]
|
|
})]
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_modal/* default */.Z, {
|
|
centered: true,
|
|
keyboard: false,
|
|
closable: false,
|
|
destroyOnClose: true,
|
|
onCancel: function onCancel() {
|
|
setChallengeId(saveChallengeId.current);
|
|
setVisible(false);
|
|
},
|
|
onOk: handleOk,
|
|
open: visible,
|
|
wrapClassName: resetmodules/* default */.Z.CustomCss,
|
|
title: "\u66F4\u6362\u5173\u8054",
|
|
width: "666px",
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default.Group */.ZP.Group, {
|
|
value: challengeId,
|
|
onChange: function onChange(k) {
|
|
return setChallengeId(k.target.value);
|
|
},
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(space/* default */.Z, {
|
|
direction: "vertical",
|
|
children: challengeList === null || challengeList === void 0 ? void 0 : challengeList.map(function (e) {
|
|
var _e$shixun3;
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
|
|
value: e.id,
|
|
children: e.id === 0 ? e.subject : "".concat((_e$shixun3 = e.shixun) === null || _e$shixun3 === void 0 ? void 0 : _e$shixun3.name, " \u5B9E\u8BAD---\u7B2C").concat(e === null || e === void 0 ? void 0 : e.challenge_position, "\u5173")
|
|
}, e.id);
|
|
})
|
|
})
|
|
})
|
|
})
|
|
})]
|
|
});
|
|
};
|
|
/* harmony default export */ var pages_Message = (Message);
|
|
|
|
/***/ }),
|
|
|
|
/***/ 93611:
|
|
/*!************************************************************!*\
|
|
!*** ./src/components/ui-customization/reset.less?modules ***!
|
|
\************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__) {
|
|
|
|
// extracted by mini-css-extract-plugin
|
|
/* harmony default export */ __webpack_exports__.Z = ({"flex_box_center":"flex_box_center___vG4eV","flex_space_between":"flex_space_between___qVVxe","flex_box_vertical_center":"flex_box_vertical_center___P8Z8s","flex_box_center_end":"flex_box_center_end___VMme3","flex_box_column":"flex_box_column___VMHwm","dropdownmenus":"dropdownmenus___oVzoj","popupClassNames":"popupClassNames___OcZq7","selectdown":"selectdown___mmcA8"});
|
|
|
|
/***/ })
|
|
|
|
}]); |