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/8] =?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/8] 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 (
 		    	
@@ -425,6 +445,10 @@ export function TPMIndexHOC(WrappedComponent) {
 							}
 							`
 						}
+            
+
 						
 						
 								this.initCommonState(user)}
@@ -440,6 +464,7 @@ export function TPMIndexHOC(WrappedComponent) {
 						
+            
 		        
 		    );
 	  	}
From 639f07cea42d4d5216af386bba7f3ee265ddafa5 Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Thu, 22 Aug 2019 15:53:28 +0800
Subject: [PATCH 3/8] esc
---
 public/react/src/modules/tpm/TPMIndexHOC.js | 11 +++++++++++
 1 file changed, 11 insertions(+)
diff --git a/public/react/src/modules/tpm/TPMIndexHOC.js b/public/react/src/modules/tpm/TPMIndexHOC.js
index 820451525..146582f76 100644
--- a/public/react/src/modules/tpm/TPMIndexHOC.js
+++ b/public/react/src/modules/tpm/TPMIndexHOC.js
@@ -135,7 +135,18 @@ export function TPMIndexHOC(WrappedComponent) {
         })
       }
 
+      keyupListener = (e) => {
+        if (e.key === "Escape") {
+          this.setState({ slowDownloading: false })
+        }
+      }
+      componentWillUnmount() {
+        window.removeEventListener('keyup', this.keyupListener)
+      }
+      
 	    componentDidMount() {
+        window.addEventListener('keyup', this.keyupListener)
+
 	        if(this.props.match.path==="/"){
              document.title="创新源于实践";
             }else if(this.props.match.path==="/403"){
From 4d677358c0644c4370fd1ddd0ff9e062f1ee5c11 Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Thu, 22 Aug 2019 16:03:39 +0800
Subject: [PATCH 4/8] noti
---
 public/react/src/modules/courses/members/studentsList.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/public/react/src/modules/courses/members/studentsList.js b/public/react/src/modules/courses/members/studentsList.js
index 76112692a..8a1f1f5cc 100644
--- a/public/react/src/modules/courses/members/studentsList.js
+++ b/public/react/src/modules/courses/members/studentsList.js
@@ -149,7 +149,7 @@ class studentsList extends Component{
           })
         }
       }else {
-        this.props.showNotification(`正在下载中`);
+        // this.props.showNotification(`正在下载中`);
         
         // getUrl() + "/api"+
         const fileUrl = url;
From 2c3fd0aac9a8b602c8ec9f19c8fbd121d6a850c8 Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Tue, 27 Aug 2019 15:32:19 +0800
Subject: [PATCH 5/8] =?UTF-8?q?spin=20=E6=A0=B7=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 public/react/src/modules/tpm/TPMIndexHOC.js | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/public/react/src/modules/tpm/TPMIndexHOC.js b/public/react/src/modules/tpm/TPMIndexHOC.js
index 9091aac5b..f1c9d5253 100644
--- a/public/react/src/modules/tpm/TPMIndexHOC.js
+++ b/public/react/src/modules/tpm/TPMIndexHOC.js
@@ -421,7 +421,7 @@ export function TPMIndexHOC(WrappedComponent) {
             slowDownload: this.slowDownload
           }
 		    return (
-		    	
+		    	
             {isRender===true ? this.hideLoginDialog()}
               {...this.props}
@@ -454,9 +454,25 @@ export function TPMIndexHOC(WrappedComponent) {
 								-moz-box-shadow: 0px 0px 12px rgba(0,0,0,0.1);
 								box-shadow: 0px 0px 12px rgba(0,0,0,0.1);
 							}
+
+              .globalSpin {
+
+              }
+              .indexHOC > .ant-spin-nested-loading {
+                background: #000;
+              }
+
+              .globalSpin .ant-spin-text {
+                text-shadow: none !important;
+                color: #fff;
+              }
+              .globalSpin .ant-spin-dot-item {
+                background-color: #fff;
+              }
 							`
 						}
-            
 
From cbd349777d6bc13751c3d7daff7554938422ee08 Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Wed, 28 Aug 2019 09:14:19 +0800
Subject: [PATCH 6/8] focus
---
 public/react/src/modules/forums/MemoDetailMDEditor.js | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/public/react/src/modules/forums/MemoDetailMDEditor.js b/public/react/src/modules/forums/MemoDetailMDEditor.js
index 00a87274d..86b95e629 100644
--- a/public/react/src/modules/forums/MemoDetailMDEditor.js
+++ b/public/react/src/modules/forums/MemoDetailMDEditor.js
@@ -52,6 +52,7 @@ class MemoDetailMDEditor extends Component {
 						errorMsg: ''
 					})
 				})
+				commentMDEditor.cm.focus()
 			}, {
 				watch: false,
 				dialogLockScreen: false,
@@ -119,7 +120,7 @@ class MemoDetailMDEditor extends Component {
 			this.initMDEditor()
 		} else {
 			setTimeout(() => {
-				this.commentMDEditor.focus()
+				this.commentMDEditor.cm.focus()
 			}, 10)
 		}
 	}
From ed55567b4ec37d6ef294986d03ab5ef787bf380b Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Wed, 28 Aug 2019 09:31:29 +0800
Subject: [PATCH 7/8] title
---
 public/react/src/modules/courses/members/teacherList.js | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/public/react/src/modules/courses/members/teacherList.js b/public/react/src/modules/courses/members/teacherList.js
index e3fd4a98d..09108f043 100644
--- a/public/react/src/modules/courses/members/teacherList.js
+++ b/public/react/src/modules/courses/members/teacherList.js
@@ -126,7 +126,9 @@ function buildColumns(that) {
       sortOrder: sortedInfo.columnKey === 'graduation_group' && sortedInfo.order,
 
       render: text => (
-        
+         10 ? title : ''}`}
+        >
           {text}
         
       ),
From b5dd35302b8d8069f4de16670ada33fc23276d65 Mon Sep 17 00:00:00 2001
From: hjm <63528605@qq.com>
Date: Wed, 28 Aug 2019 11:18:04 +0800
Subject: [PATCH 8/8] =?UTF-8?q?=E5=AD=A6=E5=8F=B7=E5=88=97=E4=B9=9F?=
 =?UTF-8?q?=E5=8F=82=E4=B8=8E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 public/react/src/modules/courses/busyWork/CommonWorkList.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/public/react/src/modules/courses/busyWork/CommonWorkList.js b/public/react/src/modules/courses/busyWork/CommonWorkList.js
index d6c3d8946..a489e7c3d 100644
--- a/public/react/src/modules/courses/busyWork/CommonWorkList.js
+++ b/public/react/src/modules/courses/busyWork/CommonWorkList.js
@@ -108,7 +108,7 @@ function buildColumns(that, student_works, studentData) {
   }]
   if (!niPingAndIsStudent && isAdminOrStudent) {
     columns.push({
-      width: 88,
+      width: isStudent ? undefined : 88,
       title: '学号',
       dataIndex: 'student_id',
       key: 'student_id',
@@ -197,7 +197,7 @@ function buildColumns(that, student_works, studentData) {
       
     )},
   }, {
-    width: 106,
+    width: 106, // isStudent ? undefined : 106 ,  // 匿评中 只有这几列: 序号 姓名 提交状态 更新时间 匿评评分 操作
     title: '更新时间',
     dataIndex: 'update_time',
     key: 'update_time',