{"version":3,"sources":["components/mlShare/index.js"],"names":["MLClass","props","_this","Object","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__","this","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__","_Users_zhanghaozhe_server_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","state","browser","isWeixin","push","isGuide","wxShare","title","course_name","code_lines","formatTitle","desc","link","encodeURI","location","href","imgUrl","course_img","ques_name","video_name","copyToSuccess","antd_mobile_lib_toast__WEBPACK_IMPORTED_MODULE_1___default","a","info","isCopy","handleToExecute","isExecute","handleToHide","isWechat","_this2","_this$state","react__WEBPACK_IMPORTED_MODULE_7___default","createElement","Fragment","_common__WEBPACK_IMPORTED_MODULE_11__","arrow","PythonContent","labelName","Component","SelfAceEditor","react_ace__WEBPACK_IMPORTED_MODULE_10___default","mode","theme","readOnly","showPrintMargin","value","style","width","height","_props$data","head_img","nickname","result","course_id","className","onClick","backgroundImage","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/mlShare.c989b50c.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, wxShare } from '@/utils';\nimport './index.scss';\nimport 'ace-builds/src-noconflict/mode-python';\nimport 'ace-builds/src-noconflict/theme-dracula';\n\nclass MLClass 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:落地页\n isGuide: false, // 是否展示引导\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}/mlShare?id=${getParam('id')}&type=${getParam('type')}&ques=${getParam('ques')}&origin=ml`\n })\n }\n\n initPageStatus = () => {\n if(getParam('origin') === 'barcode') {\n this.setState({\n entryMode: 0\n });\n }\n if(getParam('origin') === 'ml') {\n this.setState({\n entryMode: 1\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}/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 = (params) => {\n const { history } = this.props;\n const { isShare } = this.state;\n if(browser.isWeixin) {\n history.push(`/mlShare?id=${getParam('id')}&type=${getParam('type')}&ques=${getParam('ques')}&origin=ml`);\n this.setState({\n isGuide: true\n });\n wxShare({\n title: isShare? `我已在【${params.course_name}】上运行了行代码了${params.code_lines}` : `我在${params.course_name}的${this.formatTitle(params)}遇到了困难`,\n desc: this.formatTitle(params),\n link: encodeURI(location.href),\n imgUrl: params.course_img,\n });\n }\n }\n\n formatTitle = (params) => {\n const { type } = this.state;\n if(type === '1') {\n return `练习-${params.ques_name}`;\n }\n if(type === '2') {\n return `课堂-${params.video_name}`;\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 isGuide: false\n });\n }\n\n render() {\n const { isWechat, isShare, isExecute, entryMode, command, isCopy, isGuide, data } = this.state;\n return (\n <>\n <HeaderBar\n title='机器学习小课 第一期'\n arrow={true}\n home={true}\n />\n <PythonContent\n isWechat={isWechat}\n isShare={isShare}\n isExecute={isExecute}\n entryMode={entryMode}\n isGuide={isGuide}\n isCopy={isCopy}\n command={command}\n data={data}\n labelName={this.formatTitle(data)}\n handleToExecute={this.handleToExecute}\n handleToSend={() => this.handleToSend(data)}\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 entryMode, \n isCopy, \n command, \n labelName,\n isGuide,\n data: { head_img, nickname, code_lines, code, result, course_name, course_id },\n handleToSend, \n copyToSuccess, \n handleToExecute,\n handleToHide\n } = props;\n return (\n <div className=\"python-container\">\n {\n isGuide && \n <div className=\"python-popup\" onClick={handleToHide}>\n <div className=\"python-header\">\n <p className=\"python-wechat__title\">请点击右上角分享</p>\n <i className=\"iconfont\"></i>\n </div>\n </div>\n }\n <div className=\"python-content\">\n <div className=\"python-user\">\n <i className=\"python-user__portrait\" style={{backgroundImage: `url(${head_img})`}}></i>\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 === 1 && 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 === 1 && !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 === 1 && isShare? `这是Ta的第${code_lines}行代码` : '运行结果'}\n </h4>\n <div className=\"python-code__content\">\n <SelfAceEditor code={entryMode === 1 && isShare? code : result} />\n </div>\n <h4 className=\"python-code__title\">\n {entryMode === 1 && isShare? '运行结果' : '代码'}\n </h4>\n <div className=\"python-code__content\">\n {\n entryMode === 1 && isShare\n ? <SelfAceEditor code={isExecute? result : ''} />\n : <SelfAceEditor code={code} />\n }\n {\n (entryMode === 1 && isShare && !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 === 1 &&\n <Link className=\"python-button python-button__study\" to={`/ml?id=${course_id}`}>我也要学 机器学习</Link>\n }\n </div>\n );\n}\n\nexport default MLClass;"],"sourceRoot":""}