From 199bb1862f45da260a5ed15002c5abc44f53a294 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Thu, 22 Aug 2019 14:24:00 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BD=BF=E7=94=A8downloadFile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/common/TextUtil.js | 4 ++-- .../src/modules/courses/members/studentsList.js | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/public/react/src/common/TextUtil.js b/public/react/src/common/TextUtil.js index 4c83131f1..013ea2a8f 100644 --- a/public/react/src/common/TextUtil.js +++ b/public/react/src/common/TextUtil.js @@ -1,4 +1,4 @@ -import { bytesToSize, getUrl2 } from 'educoder'; +import { bytesToSize, getUrl, getUrl2 } from 'educoder'; const $ = window.$ export function isImageExtension(fileName) { @@ -40,7 +40,7 @@ export function markdownToHTML(oldContent, selector) { } } function _doDownload(options) { - $.fileDownload("/api" + options.url, { + $.fileDownload(getUrl() + "/api" + options.url, { successCallback: options.successCallback, failCallback: options.failCallback }); diff --git a/public/react/src/modules/courses/members/studentsList.js b/public/react/src/modules/courses/members/studentsList.js index 2a510789e..5ec3acab5 100644 --- a/public/react/src/modules/courses/members/studentsList.js +++ b/public/react/src/modules/courses/members/studentsList.js @@ -8,7 +8,7 @@ import CourseLayoutcomponent from '../common/CourseLayoutComponent' import Titlesearchsection from '../common/titleSearch/TitleSearchSection' import ColorCountText from '../common/titleSearch/ColorCountText' -import { WordsBtn, trigger, on, off } from 'educoder' +import { WordsBtn, trigger, on, off, getUrl, downloadFile } from 'educoder' import Modals from "../../modals/Modals"; import axios from 'axios' import _ from 'lodash' @@ -150,7 +150,19 @@ class studentsList extends Component{ } }else { this.props.showNotification(`正在下载中`); - window.open("/api"+url, '_blank'); + + // getUrl() + "/api"+ + const fileUrl = url; + downloadFile({ + url: fileUrl, + successCallback: (url) => { + console.log('successCallback') + }, + failCallback: (responseHtml, url) => { + console.log('failCallback') + } + }) + // window.open(fileUrl, "_self");// , '_blank' } }).catch((error) => { console.log(error) From bae43137a537ecc503caf6d53af59d7d887f9c13 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Thu, 22 Aug 2019 15:26:12 +0800 Subject: [PATCH 2/5] slowdownload --- public/react/src/common/UrlTool.js | 8 +++++ .../modules/courses/members/studentsList.js | 4 +++ public/react/src/modules/tpm/TPMIndexHOC.js | 33 ++++++++++++++++--- 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/public/react/src/common/UrlTool.js b/public/react/src/common/UrlTool.js index fc2100694..aeb9a8d62 100644 --- a/public/react/src/common/UrlTool.js +++ b/public/react/src/common/UrlTool.js @@ -37,6 +37,14 @@ export function getUrl(path, goTest) { } return `${path ? path: ''}`; } +export function getStaticUrl() { + const local = TEST_HOST; + if (isDev) { + return local + } + // todo cdn + return '' +} export function getUrl2(path, goTest) { const local = 'http://localhost:3000' if (isDev) { diff --git a/public/react/src/modules/courses/members/studentsList.js b/public/react/src/modules/courses/members/studentsList.js index 5ec3acab5..76112692a 100644 --- a/public/react/src/modules/courses/members/studentsList.js +++ b/public/react/src/modules/courses/members/studentsList.js @@ -153,6 +153,10 @@ class studentsList extends Component{ // getUrl() + "/api"+ const fileUrl = url; + + this.props.slowDownload(fileUrl) + return; + downloadFile({ url: fileUrl, successCallback: (url) => { diff --git a/public/react/src/modules/tpm/TPMIndexHOC.js b/public/react/src/modules/tpm/TPMIndexHOC.js index 6149687bc..820451525 100644 --- a/public/react/src/modules/tpm/TPMIndexHOC.js +++ b/public/react/src/modules/tpm/TPMIndexHOC.js @@ -5,9 +5,9 @@ import PropTypes from 'prop-types'; import NewHeader from './NewHeader' import NewFooter from './NewFooter' import SiderBar from './SiderBar' -import { getUrl } from 'educoder' +import { getUrl, downloadFile } from 'educoder' import axios from 'axios'; - +import { Spin } from 'antd' import './TPMIndex.css' import LoginDialog from '../login/LoginDialog'; import AccountProfile from '../user/AccountProfile'; @@ -79,7 +79,9 @@ export function TPMIndexHOC(WrappedComponent) { coursedata: {}, isRender: false, - AccountProfiletype: false + AccountProfiletype: false, + + slowDownloading: false } } @@ -364,6 +366,22 @@ export function TPMIndexHOC(WrappedComponent) { DownloadOpenPdf=(type,url)=>{ type===true?window.open(url):window.location.href=url; } + slowDownload = (url, tip) => { + this._slowDownloadTip = tip || '正在生成文件,请稍后...'; + this.setState({ slowDownloading: true }) + const fileUrl = url; + downloadFile({ + url: fileUrl, + successCallback: (url) => { + this.setState({ slowDownloading: false }) + console.log('successCallback') + }, + failCallback: (responseHtml, url) => { + this.setState({ slowDownloading: false }) + console.log('failCallback') + } + }) + } render() { let{Headertop,Footerdown, isRender, AccountProfiletype}=this.state; const common = { @@ -387,7 +405,9 @@ export function TPMIndexHOC(WrappedComponent) { ShowOnlinePdf:(url)=>this.ShowOnlinePdf(url), DownloadFileA:(title,url)=>this.DownloadFileA(title,url), - DownloadOpenPdf:(type,url)=>this.DownloadOpenPdf(type,url) + DownloadOpenPdf:(type,url)=>this.DownloadOpenPdf(type,url), + + slowDownload: this.slowDownload } return (