{"version":3,"sources":["components/pythonShare/index.js"],"names":["PythonClass","props","_this","Object","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__","this","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__","call","initCommand","setState","command","concat","API","m","getParam","initPageStatus","entryMode","isShare","type","handleFetchInfo","id","http","get","home","params","then","res","_res$data","data","code","handleToSend","history","browser","isWeixin","push","copyToSuccess","antd_mobile_lib_toast__WEBPACK_IMPORTED_MODULE_1___default","a","info","isCopy","handleToExecute","isExecute","handleToHide","state","isWechat","_this$state","react__WEBPACK_IMPORTED_MODULE_7___default","createElement","Fragment","_common__WEBPACK_IMPORTED_MODULE_11__","title","arrow","PythonContent","Component","SelfAceEditor","react_ace__WEBPACK_IMPORTED_MODULE_10___default","mode","theme","readOnly","showPrintMargin","value","style","width","height","_props$data","head_img","nickname","code_lines","result","ques_name","course_name","course_id","video_name","labelName","className","onClick","src","alt","react_copy_to_clipboard__WEBPACK_IMPORTED_MODULE_9__","text","onCopy","react_router_dom__WEBPACK_IMPORTED_MODULE_8__","to"],"mappings":"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","file":"mrstatic/js/51.e12be435.chunk.js","sourcesContent":["import React, { Component } from 'react';\nimport { Link } from 'react-router-dom';\nimport {CopyToClipboard} from 'react-copy-to-clipboard';\nimport AceEditor from 'react-ace';\nimport { Toast } from \"antd-mobile\"\nimport {HeaderBar} from '@/common';\nimport { browser, http, getParam } from '@/utils';\nimport './index.scss';\nimport 'ace-builds/src-noconflict/mode-python';\nimport 'ace-builds/src-noconflict/theme-dracula';\n\nclass PythonClass extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n isWechat: browser.isWeixin,\n isShare: true,\n type: '1', // 1:课后习题,2:课堂习题\n entryMode: 0, // 0:扫码页,1:落地页,2:直接进入\n isExecute: false,\n isCopy: false,\n command: '',\n data: {}\n }\n }\n\n componentDidMount() {\n this.handleFetchInfo();\n this.initPageStatus();\n this.initCommand();\n }\n\n initCommand = () => {\n this.setState({\n command: `${API.m}/pythonShare?id=${getParam('id')}&type=${getParam('type')}&ques=${getParam('ques')}&from=python`\n })\n }\n\n initPageStatus = () => {\n if(getParam('from') === 'barcode') {\n this.setState({\n entryMode: 0\n });\n }\n if(getParam('from') === 'python') {\n this.setState({\n entryMode: 2\n });\n }\n if(getParam('type') === '1') {\n this.setState({\n isShare: true\n });\n }\n if(getParam('type') === '2') {\n this.setState({\n isShare: false\n });\n }\n this.setState({\n type: getParam('ques') || '1'\n });\n }\n\n handleFetchInfo = () => {\n const id = getParam('id') || 10;\n // http.get(`${API.home}/web/python/share/help/${id}`).then(res => {\n http.get(`${API.home}/m/it/share/show`, {\n params: {\n id\n }\n }).then(res => {\n const { code, data } = res.data;\n if(code === 200) {\n this.setState({\n data,\n });\n }\n })\n }\n\n handleToSend = () => {\n const { history } = this.props;\n if(browser.isWeixin) {\n this.setState({\n entryMode: 1\n });\n history.push(`/pythonShare?id=${getParam('id')}&type=${getParam('type')}&ques=${getParam('ques')}&from=python`);\n }\n }\n\n copyToSuccess = () => {\n Toast.info('已复制链接,快去粘贴发给好友吧~');\n this.setState({\n isCopy: true\n });\n }\n\n handleToExecute = () => {\n this.setState({\n isExecute: true\n });\n }\n\n handleToHide = () => {\n this.setState({\n entryMode: 2\n });\n }\n\n render() {\n const { isWechat, isShare, isExecute, type, entryMode, command, isCopy, data } = this.state;\n return (\n <>\n <HeaderBar\n title='Python基础语法'\n arrow={true}\n home={true}\n />\n <PythonContent\n isWechat={isWechat}\n isShare={isShare}\n type={type}\n isExecute={isExecute}\n entryMode={entryMode}\n isCopy={isCopy}\n command={command}\n data={data}\n handleToExecute={this.handleToExecute}\n handleToSend={this.handleToSend}\n copyToSuccess={this.copyToSuccess}\n handleToHide={this.handleToHide}\n />\n </>\n );\n }\n}\n\nfunction SelfAceEditor(props) {\n return (\n <AceEditor \n mode=\"python\"\n theme=\"dracula\"\n readOnly={true}\n showPrintMargin={false}\n value={props.code}\n style={{\n width: '100%',\n height: '100%'\n }}\n />\n )\n}\n\nfunction PythonContent(props) {\n const { \n isWechat, \n isShare, \n isExecute, \n type,\n entryMode, \n isCopy, \n command, \n data: { head_img, nickname, code_lines, code, result, ques_name, course_name, course_id, video_name },\n handleToSend, \n copyToSuccess, \n handleToExecute,\n handleToHide\n } = props;\n let labelName = '';\n if(type === '1') {\n labelName = `练习-${ques_name}`;\n }\n if(type === '2') {\n labelName = `课堂-${video_name}`;\n }\n\n return (\n <div className=\"python-container\">\n\n {/* 微信 */}\n {\n // (entryMode === 0 && isWechat) && \n // <div className=\"python-header\">\n // <p className=\"python-wechat__title\">请点击右上角分享</p>\n // <i className=\"iconfont iconyindao\"></i>\n // </div>\n }\n\n {/* 非微信 */}\n {\n // (entryMode === 0 && !isWechat) && \n // <div className=\"python-header\">\n // <p className=\"python-wechat__title\">\n // {isShare? '快分享给好友吧' : '快发给好友求助吧'}\n // </p>\n // </div>\n }\n\n {\n (entryMode === 1 && isWechat) && \n <div className=\"python-popup\" onClick={handleToHide}>\n <div className=\"python-header\">\n <p className=\"python-wechat__title\">请点击右上角分享</p>\n <i className=\"iconfont iconyindao\"></i>\n </div>\n </div>\n }\n <div className=\"python-content\">\n <div className=\"python-user\">\n <div className=\"python-user__portrait\">\n <img src={head_img} alt=\"\"/>\n </div>\n <h2 className=\"python-user__id\">{nickname}</h2>\n\n {/* 分享 */}\n {\n (entryMode === 0 && isShare) &&\n <p className=\"python-user__desc\">\n 完成了\n <span>【{labelName}】</span>\n </p>\n }\n {\n (entryMode !== 0 && isShare) &&\n <p className=\"python-user__desc\">\n 在\n <span>【{course_name}】</span>完成了<br />\n {labelName}\n </p>\n }\n\n {/* 求助 */}\n {\n (entryMode === 0 && !isShare) &&\n <p className=\"python-user__desc\">\n 在\n <span>【{labelName}】</span>\n 遇到了困难\n </p>\n }\n {\n (entryMode !== 0 && !isShare) &&\n <p className=\"python-user__desc\">\n 在\n <span>【{course_name}】</span>的<br />\n <span>{labelName}</span>遇到了困难\n </p>\n }\n </div>\n <h4 className=\"python-code__title\">\n {entryMode !== 0 && isShare && !isWechat? `这是Ta的第${code_lines}行代码` : '运行结果'}\n </h4>\n <div className=\"python-code__content\">\n <SelfAceEditor code={entryMode !== 0 && isShare && !isWechat? code : result} />\n </div>\n <h4 className=\"python-code__title\">{entryMode !== 0 && isShare && !isWechat? '运行结果' : '代码'}</h4>\n <div className=\"python-code__content\">\n {\n entryMode !== 0 && isShare && !isWechat\n ? <SelfAceEditor code={isExecute? result : ''} />\n : <SelfAceEditor code={code} />\n }\n {\n (entryMode !== 0 && isShare && !isWechat && !isExecute) &&\n <button className=\"python-button python-button__execute\" onClick={handleToExecute}>运行看看</button>\n }\n </div>\n </div>\n\n {\n (entryMode === 0 && isWechat) &&\n <button className=\"python-button python-button__study\" onClick={handleToSend}>\n {isShare? '分享给好友' : '发给好友求助'}\n </button>\n }\n\n {\n (entryMode === 0 && !isWechat && !isCopy) &&\n <CopyToClipboard\n text={command}\n onCopy={copyToSuccess}\n >\n <button className=\"python-button python-button__study\">\n {isShare? '分享给好友' : '发给好友求助'}\n </button>\n </CopyToClipboard>\n }\n\n {\n (entryMode === 0 && !isWechat && isCopy) &&\n <p className=\"python-button__tip\">已复制链接,快去粘贴发给好友吧~</p>\n }\n\n {\n entryMode !== 0 &&\n <Link className=\"python-button python-button__study\" to={`/python?id=${course_id}`}>我也要学Python</Link>\n }\n </div>\n );\n}\n\nexport default PythonClass;"],"sourceRoot":""}