Browse Source

代码合并

sophieChenyx 6 years ago
parent
commit
c54ed8382e

+ 20 - 12
src/res/tpl/DownloadCollection.tpl

@@ -11,17 +11,20 @@
 			</ul>
 		</div>
 	</div>
+
+
 	<div id="dc-right-panel">
 		<div id="download-background" class="download-bg-wrapper">
+
 			<div class="download-bg-header">
+
 		        <div class="header">
 					<div class="row row-header">
 						<div class="one right-border">下载日期</div>
 						<div class="two right-border">课程名称</div>
 						<div class="three right-border">课名称</div>
-						<div class="four right-border">容量</div>
-						<div class="five right-border">下载状态</div>
-						<div class="six">操作</div>
+						<div class="four right-border">下载状态</div>
+						<div class="five">操作</div>
 					</div>
 		        </div>
 		        <div class="horizon-line first-line"></div>
@@ -34,53 +37,53 @@
 		        <div class="horizon-line"></div>
 		        <div class="horizon-line"></div>
 		  	</div>
+
 			<div class="back-row">
 				<div class="one"></div>
 				<div class="two"></div>
 				<div class="three"></div>
 				<div class="four"></div>
 				<div class="five"></div>
-				<div class="six"></div>
 			</div>
+
 			<div class="back-row">
 				<div class="one"></div>
 				<div class="two"></div>
 				<div class="three"></div>
 				<div class="four"></div>
 				<div class="five"></div>
-				<div class="six"></div>
 			</div>
+
 			<div class="back-row">
 				<div class="one"></div>
 				<div class="two"></div>
 				<div class="three"></div>
 				<div class="four"></div>
 				<div class="five"></div>
-				<div class="six"></div>
 			</div>
+
 			<div class="back-row">
 				<div class="one"></div>
 				<div class="two"></div>
 				<div class="three"></div>
 				<div class="four"></div>
 				<div class="five"></div>
-				<div class="six"></div>
 			</div>
+
 			<div class="back-row">
 				<div class="one"></div>
 				<div class="two"></div>
 				<div class="three"></div>
 				<div class="four"></div>
 				<div class="five"></div>
-				<div class="six"></div>
 			</div>
+
 			<div class="back-row">
 				<div class="one"></div>
 				<div class="two"></div>
 				<div class="three"></div>
 				<div class="four"></div>
 				<div class="five"></div>
-				<div class="six"></div>
 			</div>
 			<div class="back-row">
 				<div class="one"></div>
@@ -88,7 +91,6 @@
 				<div class="three"></div>
 				<div class="four"></div>
 				<div class="five"></div>
-				<div class="six"></div>
 			</div>
 			<div class="back-row">
 				<div class="one"></div>
@@ -96,7 +98,6 @@
 				<div class="three"></div>
 				<div class="four"></div>
 				<div class="five"></div>
-				<div class="six"></div>
 			</div>
 			<div class="back-row">
 				<div class="one"></div>
@@ -104,9 +105,16 @@
 				<div class="three"></div>
 				<div class="four"></div>
 				<div class="five"></div>
-				<div class="six"></div>
 			</div>
+
+			<div fe-role="Scroll" fe-cfg="scroll_dir:v,scroll_center:con,scroll_duration:0.2,scroll_easing:linear" class="content-wrapper" >
+				<div class="scroll-list scroll-lines-wrapper clearfix" id="download-status-table-wrapper"></div>
+			</div>
+
 		</div>
+
+
+
 	</div>
 	<!-- 返回按钮 -->
 	<div class="goback" fe-role="Widget">

+ 2 - 1
src/res/tpl/DownloadScene.tpl

@@ -7,6 +7,7 @@
 
   	<div class="background-wrapper">
 		<div class="background-header">
+
     		<div class="header">
 				<div class="row row-header">
 					<div class="one right-border">下载日期</div>
@@ -28,7 +29,6 @@
 			<div class="horizon-line"></div>
     	</div>
 
-
 		<div class="back-row">
 			<div class="one"></div>
 			<div class="two"></div>
@@ -101,6 +101,7 @@
     	<div fe-role="Scroll" fe-cfg="scroll_dir:v,scroll_center:con,scroll_duration:0.2,scroll_easing:linear" class="content-wrapper" >
 			<div class="scroll-list scroll-lines-wrapper clearfix" id="download-status-table-wrapper"></div>
 		</div>
+
 	</div>
 
 	<div class="goback" fe-role="Widget">

BIN
src/stage/index/assets/img/DownloadScene/download_del_btn.png


BIN
src/stage/index/assets/img/DownloadScene/download_enter_btn.png


+ 11 - 11
src/stage/index/scene/DelConfirmScene.js

@@ -22,17 +22,17 @@ class DelConfirmScene extends scene {
 				};
 				return;
 			}
-			if ('DownloadManagerScene' == data.parentScene) {
-        delName.innerHTML = `确认删除“${data.title}”吗?`;
-        this.moye.root.reRender();
-        // 默认光标指向取消按钮
-        this.moye.root.getWidgetById('cancle-btn').focus();
-        // 记录下课id
-        this.store = {
-          lessonId: data.lessonId,
-          parentScene: data.parentScene,
-        };
-        return;
+			if ('DownloadCollectionScene' == data.parentScene) {
+				delName.innerHTML = `确认删除“${data.title}”吗?`;
+				this.moye.root.reRender();
+				// 默认光标指向取消按钮
+				this.moye.root.getWidgetById('cancle-btn').focus();
+				// 记录下课id
+				this.store = {
+					lessonId: data.lessonId,
+					parentScene: data.parentScene,
+				};
+				return;
 			}
 
 		});

+ 131 - 91
src/stage/index/scene/DownloadCollectionScene.js

@@ -5,6 +5,7 @@ import CourseItem from '../../../component/CourseItem';
 import GoodsItem from '../../../component/GoodsItem';
 import ScrollEventPlugin from '../../../util/ScrollEventPlugin';
 import NotificationCenter from '../../../util/NotificationCenter';
+import WinBoxAPI from '../../../util/WinBoxAPI';
 import {CommandBus, CMD_TYPE} from '../../../util/CommandBus';
 
 class DownloadCollectionScene extends scene {
@@ -18,6 +19,35 @@ class DownloadCollectionScene extends scene {
         this.noContent = false;
     }
 
+    fetchDownloadList() {
+        APIClient.getUserDownloadList((isTrue, res) => {
+          // 判断响应内容
+          if (!isTrue || !res || !res.success) {
+            TVUtil.Toast.show('获取下载内容失败', 2000);
+            return;
+          };
+          // 遍历下载列表数据
+          const downloadedList = res.data || [];
+          let recs = [];
+          for (let i in downloadedList) {
+            recs.push(downloadedList[i]);
+            let item = downloadedList[i];
+            // 记录lessonId
+            this.lessonIds = [];
+            this.lessonIds.push(item['lessonId']);
+            // make a map of lessonId to courseId
+            this.lessonItems[item['lessonId']] = {
+                'lessonName':item['lessonName'],
+                'courseId':item['courseId'],
+                'downloadStatus':item['downloadStatus'],
+            }
+          }
+          let downloadStatusTableHtml = this.generateDownloadStatusTable({recs});
+          let downloadStatusTableWrapper = document.getElementById('download-status-table-wrapper');
+          downloadStatusTableWrapper.innerHTML = downloadStatusTableHtml;
+          this.moye.root.reRender();
+        })
+      }
     /**
     * @desc 为每一个标签绑定focus事件
     */
@@ -99,91 +129,93 @@ class DownloadCollectionScene extends scene {
     /**
     * @desc 生成下载列表
     */
-    generateDownloadStatusTable({recs}) {
-        let trAcc = '';
-        let count = 0;
-        for (let idx in recs){
-            let rec = recs[idx];
-            let feCfg = "";
-            if (0 == count){
-                feCfg = "default_focus:yes";
-            }
-            count += 1;
-
-            //downloadDate
-            let downloadDateStr = '2017-09-10';
-            if (rec.createTime){
-                let createDate = new Date();
-                createDate.setTime(rec.createTime);
-                downloadDateStr = Utils.dateFormat(createDate, 'yyyy-MM-dd');
-            }
-            let downloadStatus = rec['downloadStatus'];
-            let downloadDesc = '';
-
-            //storageUsage
-            let storageUsageStr = '';
-            if (rec.storageUsage){
-                storageUsageStr = '' + parseInt(rec.storageUsage/1000) + 'M';
-            }
-
-            //downloadStatus
-            switch (downloadStatus) {
-                case Consts.DOWNLOAD_STATUS_UNDOWNLOAD:
-                    downloadDesc = '未下载';
-                    break;
-                case Consts.DOWNLOAD_STATUS_ONGOING:
-                    // downloadDesc = '已下载'+rec['progress']*100 + '%';
-                    downloadDesc = '正在下载';
-                    break;
-                case Consts.DOWNLOAD_STATUS_SUCCESS:
-                    downloadDesc = '下载完成';
-                    break;
-                case Consts.DOWNLOAD_STATUS_FAILED:
-                    downloadDesc = '下载失败';
-                    break;
-                default:
-                    downloadDesc = '未下载';
-            }
-            if (!rec['lessonName'])
-            {
-                rec['lessonName'] = rec['courseName'];
-            }
-
-            trAcc += `<div id='lesson-download-record-${rec['lessonID']}' class="row" lesson_id="${rec['lessonID']}">
-                <div class="one">${downloadDateStr}</div>
-                <div class="two">${rec['courseName']}</div>
-                <div class="three">${rec['lessonName']}</div>
-                <div class="four">${storageUsageStr}</div>
-                <div class="five">${downloadDesc}</div>
-                <div class="six" >
-                  <div id="download-btn-wrapper" fe-fole="Switch">
-                    <img src="./assets/img/DownloadCollection/download_enter_btn.png" id="enter-btn-lesson-${rec['lessonID']}" class="download-enter-btn" fe-role="Widget" data-id="${rec['lessonID']}" />
-                    <img src="./assets/img/DownloadCollection/download_del_btn.png" id="del-btn-lesson-${rec['lessonID']}" class="download-del-btn" fe-role="Widget" data-id="${rec['lessonID']}" />
-                  </div>
-                </div>
-                </div>`
+   generateDownloadStatusTable({recs}) {
+    let trAcc = '';
+    let count = 0;
+    for (let idx in recs) {
+        let rec = recs[idx];
+        let feCfg = "";
+        if (0 == count){
+            feCfg = "default_focus:yes";
         }
-        const scrollList = `<div class="scroll-list scroll-lines-wrapper clearfix" id="download-status-table-wrapper">${trAcc}</div>`
-        return scrollList;
+        count += 1;
+
+        //downloadDate
+        let downloadDateStr = '2017-09-10';
+         if (rec.gmtModified) {
+            let createDate = new Date();
+            createDate.setTime(rec.gmtModified);
+            downloadDateStr = Utils.dateFormat(createDate, 'yyyy-MM-dd');
+        }
+        let downloadStatus = rec['downloadStatus'];
+        let downloadDesc = '';
+
+        //storageUsage
+        let storageUsageStr =  rec['resSize'] + '/' + rec['resTotal'];
+        // if (rec.storageUsage || 0){
+        //     storageUsageStr = '' + parseInt((rec.storageUsage || 0)/1000) + 'M';
+        // }
+
+        //downloadStatus
+        switch (downloadStatus) {
+        case Consts.DOWNLOAD_STATUS_UNDOWNLOAD:
+            downloadDesc = '未下载';
+            break;
+        case Consts.DOWNLOAD_STATUS_ONGOING:
+            downloadDesc = '正在下载';
+            break;
+        case Consts.DOWNLOAD_STATUS_SUCCESS:
+            downloadDesc = '下载完成';
+            break;
+        case Consts.DOWNLOAD_STATUS_FAILED:
+            downloadDesc = '下载失败';
+            break;
+        default:
+            downloadDesc = '未下载';
+        }
+        // 删除按钮是否可点击
+        let delDisable = downloadStatus === Consts.DOWNLOAD_STATUS_ONGOING ? true : false;
+        let feRole = delDisable ? '' : 'fe-role="Widget"';
+        let delImg = delDisable ? '<img src="./assets/img/DownloadScene/download_del_disable_btn.png" class="img-btn"/> '
+                      : '<img src="./assets/img/DownloadScene/download_del_btn.png" class="img-btn"/>'
+
+        if (!rec['lessonName']) {
+            rec['lessonName'] = rec['courseName'];
+        }
+        trAcc += `<div id='lesson-download-record-${rec['lessonId']}' class="row" lesson_id="${rec['lessonId']}">
+        <div class="one">${downloadDateStr}</div>
+        <div class="two">${rec['courseName']}</div>
+        <div class="three">${rec['lessonName']}</div>
+        <div class="four">${downloadDesc}(${storageUsageStr})</div>
+        <div class="five" >
+          <div id="download-btn-wrapper" fe-fole="Switch">
+            <div id="enter-btn-lesson-${rec['lessonId']}" class="download-enter-btn" fe-role="Widget" data-id="${rec['lessonId']}">
+              <img src="./assets/img/DownloadScene/download_enter_btn.png" class="img-btn"/>
+            </div>
+            <div id="del-btn-lesson-${rec['lessonId']}" class="download-del-btn" ${feRole} data-id="${rec['lessonId']}" >${delImg}</div>
+          </div>
+        </div>
+        </div>`
+    }
+
+    return `${trAcc}`;
     }
 
     /**
     * @desc 下载列表删除操作
     */
-    deleteDownloadItem(retData) {
-        //send delete cmd
-        let lessonID = retData.lessonID;
-        let {status, data} = CommandBus.execute({type:CMD_TYPE.DOWNLOAD_LESSON_DELETE, payload:{lessonID}});
-        //delete dom node
-
-        //if(0 == status){
-        let curNode = document.getElementById('lesson-download-record-'+lessonID);
+    deleteDownloadFile(lessonId, courseId) {
+      WinBoxAPI.deleteDownloadFile(lessonId, courseId, (isTrue, res) => {
+        if (!isTrue || !res || !res.success) {
+          TVUtil.Toast.show('本地文件删除失败', 2000);
+          return;
+        }
+        //删除dom节点
+        let curNode = document.getElementById('lesson-download-record-'+lessonId);
         curNode.parentNode.removeChild(curNode);
-        //}
-
         this.moye.root.reRender();
         //找兄弟结点
-        let findIdx = this.lessonIds.indexOf(lessonID);
+        let findIdx = this.lessonIds.indexOf(lessonId);
         if(-1 == findIdx){
             return;
         }
@@ -196,8 +228,9 @@ class DownloadCollectionScene extends scene {
             nextFocusLessonId = this.lessonIds[findIdx];
         }
         if(nextFocusLessonId){
-            this.moye.root.getWidgetById('del-btn-lesson-'+nextFocusLessonId).focus();
+          this.moye.root.getWidgetById('del-btn-lesson-'+nextFocusLessonId).focus();
         }
+      });
     }
 
     // ================= 收藏内容渲染逻辑 ==================
@@ -303,8 +336,8 @@ class DownloadCollectionScene extends scene {
     onCreate() {
         this.setContentView(require('../../../res/tpl/DownloadCollection.tpl'), {}, 'DownloadCollectionScene', {}, () => {
             //页面渲染完成异步回调
+            this.fetchDownloadList();
             this.initLeftTabOnFocus();
-            this.renderRightDownloadContent();
         });
     }
 
@@ -315,18 +348,22 @@ class DownloadCollectionScene extends scene {
         }
         // 点击删除
         if(e.target.con.classList.contains('download-del-btn')){
-            let lessonID = e.target.con.dataset.id;
-            let title = this.lessonItems[lessonID].lessonName;
+            let lessonId = e.target.con.dataset.id;
+            let title = this.lessonItems[lessonId].lessonName;
             let parentScene = 'DownloadCollectionScene';
-            this.showScene(require('./DelConfirmScene.js'), { parentScene, lessonID, title });
-        // 点击快速观看
-        } else if (e.target.con.classList.contains('download-enter-btn')) {
-            let lessonID = e.target.con.dataset.id;
-            let courseID = this.lessonItems[lessonID].courseID;
-            let lessonName = this.lessonItems[lessonID].lessonName;
-            this.showScene(require('./LessonScene.js'), {id:lessonID, courseId:courseID, title:lessonName});
-        // 点击courseItem
-        } else if (e.target.con.classList.contains('item')) {
+            this.showScene(require('./DelConfirmScene.js'), { parentScene, lessonId, title });
+            return;
+        } 
+        //点击快速进入
+        if (e.target.con.classList.contains('download-enter-btn')) {
+            let lessonId = e.target.con.dataset.id;
+            let courseId = this.lessonItems[lessonId].courseId;
+            let lessonName = this.lessonItems[lessonId].lessonName;
+            let downloadStatus = this.lessonItems[lessonId].downloadStatus;
+            this.showScene(require('./LessonScene.js'), {courseId, downloadStatus, id:lessonId, title:lessonName});
+        }
+        //点击收藏
+        if (e.target.con.classList.contains('item')) {
             let params = e.target.id.split('-');
             let id = params[1];
             this.showScene(require(`./CourseScene.js`), { id });
@@ -342,8 +379,11 @@ class DownloadCollectionScene extends scene {
     }
 
     onResume(retData) {
-        if (!retData) return;
-        this.deleteDownloadItem(retData);
+      if (!retData || !retData.isDelete) return;
+      //send delete cmd
+      let lessonId = retData.lessonId;
+      let courseId = this.lessonItems[lessonId]['courseId']
+      this.deleteDownloadFile(lessonId, courseId)
     }
 
     onPause() {

+ 0 - 1
src/stage/index/scene/DownloadManagerScene.js

@@ -171,7 +171,6 @@ class DownloadManagerScene extends scene {
 
     onResume(retData) {
       if (!retData || !retData.isDelete) return;
-      //send delete cmd
       let lessonId = retData.lessonId;
       let courseId = this.lessonItems[lessonId]['courseId']
       this.deleteDownloadFile(lessonId, courseId)

+ 1 - 1
src/stage/index/style/CLScene.less

@@ -66,7 +66,7 @@
 
     #cl-right-content-scroll {
         position: relative;
-        overflow: hidden;
+        overflow: scroll;
         width: 14.2rem;
         margin-top: 1rem;
         margin-left: 0.43rem;

+ 1 - 1
src/stage/index/style/CourseScene.less

@@ -305,7 +305,7 @@
 					}
 					.download-btn-lesson-icon-failed {
 						.download-btn-lesson-icon-ready;
-						background-image:url('assets/img/CourseScene/download_btn_icon_success.png');
+						background-image:url('assets/img/CourseScene/download_btn_list_failed.png');
 					}
 		        }//lesson-wrapper
 			}

+ 42 - 40
src/stage/index/style/DownloadCollection.less

@@ -56,7 +56,6 @@
         float: right;
         width: 15.5rem;
         height: 100%;
-
         // 2-1.下载table背景样式
         .download-bg-wrapper {
             z-index: 0;
@@ -70,10 +69,14 @@
 
             // table-header-background
             .download-bg-header {
-      			z-index: 0;
+                height: 0.9rem;
+                text-align: center;
+                position: absolute;
+                margin-top: 0;
+      			// z-index: 0;
       			background-color: #5a70d6;
-      			border-radius: 0rem 0.3rem 0rem 0rem;
-      			height: @tagHeight;
+      			// border-radius: 0rem 0.3rem 0rem 0rem;
+      			// height: @tagHeight;
             }
 
             // table-body-row-split-line
@@ -115,27 +118,22 @@
                 	.right-border;
                 }
                 .two {
-                	width: 3.37rem;
+                	width: 2.87rem;
                 	.right-border;
                 }
                 .three {
-                	width: 3.87rem;
+                	width: 4rem;
                 	.right-border;
                 }
                 .four {
-                	width: 1.5rem;
+                	width: 2.37rem;
                 	.right-border;
                 }
                 .five {
-                	width: 2rem;
-                	.right-border;
-                }
-                .six {
-                	width: 2.5rem;
+                	width: 3rem;
                 }
             }
         }
-
         // 2-2.下载table行样式
         .row {
 			z-index: 1;
@@ -155,41 +153,46 @@
 				border-right: 0.02rem solid #053864;
 			}
 			.one {
-				width: 2.02rem;
+				width: 2rem;
 				text-align: center;
 			}
 			.two {
-				width: 3.40rem;
+				width: 2.87rem;
 			}
 			.three {
-				width: 3.91rem;
+				width: 4rem;
 			}
 			.four {
-				width: 1.5rem;
-			}
-			.five {
-				width: 2.02rem;
+				width: 2.37rem;
 			}
-			.six {
-                width: 2.5rem;
-                padding: 0rem 0.1rem 0rem 0.2rem;
+			.five{
+                width: 3rem;
+                text-align: center;
                 #download-btn-wrapper {
                     // 第6列中快速进入按钮
+                    display: inline-block;
                     .download-enter-btn {
-                    	width: 1.25rem;
-                    	height: 0.4rem;
-                    	&.fe-focus {
-                			.custom-focus(0.032rem; #ffe100; 0; rgba(0,0,0,0.5));
-                			border-radius: 0.2rem 0.2rem 0.2rem 0.2rem;
-                    	}
+                        display: inline-block;
+                        width: 1.7rem;
+                        height: .6rem;
+                        border: .05rem solid transparent;
+                        .img-btn {
+                            height: 100%;
+                            width: 100%;
+                        }
+                        &.fe-focus {
+                    //		border: .05rem solid #ffe100;
+                    //		border-radius: .25rem;
+                        }
                     }
-                    // 第6列中删除按钮
                     .download-del-btn {
-                        width: 0.65rem;
-                        height: 0.4rem;
-                        &.fe-focus {
-                        	.custom-focus(0.032rem; #ffe100; 0; rgba(0,0,0,0.5));
-                        	border-radius: 0.2rem 0.2rem 0.2rem 0.2rem;
+                        display: inline-block;
+                        width: 1rem;
+                        height: .6rem;
+                        border: .05rem solid transparent;
+                        .img-btn{
+                            height: 100%;
+                            width: 100%;
                         }
                     }
                 }
@@ -208,16 +211,15 @@
         }
 
         // 2-4.表层数据
-      	.download-content-wrapper {
+      	.content-wrapper {
             z-index: 2;
             position: absolute;
-            margin-top: (@marginTop + @tagHeight);
+            margin-top: (@tagHeight);
           	width: 14.36rem;
           	height: 7.29rem;
           	text-align: center;
-            display: table;
-            overflow: hidden;
-
+            display: block;
+            overflow: auto;
     		.scroll-lines-wrapper {
       			z-index: 1;
             // margin-top: (@marginTop + @tagHeight);

+ 1 - 1
src/util/Consts.js

@@ -11,7 +11,7 @@ class Consts {
 }
 
 //node服务接口地址
-Consts.NODE_SERVER = 'http://127.0.0.1:8089';
+Consts.NODE_SERVER = 'http://127.0.0.1:9191';
 
 //图片/视频资源域名
 Consts.IMG_PATH = 'https://efunimgs.ai160.com';

+ 1 - 0
src/util/course.js

@@ -22,6 +22,7 @@ class Course {
 	static textList(data, auth) {
 		let content = '';
 		function listItem(data, seq, isFree) {
+			console.log('>>>>>>>>>>>>>>>>failed list00000')
 			let btnClass = 'download-btn-lesson-list-ready';
 			if (data.downloadStatus == Consts.DOWNLOAD_STATUS_ONGOING){
 				btnClass = 'download-btn-lesson-list-ongoing';