From fa93e847216dfe1da8920aecfa37c37b887c0f29 Mon Sep 17 00:00:00 2001
From: litian <C21AF165>
Date: 星期一, 23 九月 2024 17:52:12 +0800
Subject: [PATCH] rwd

---
 packageBookService/pages/bookServices/detail/components/learnTask/index.js   |  170 +++++++++++++++++++++------
 packageBookService/pages/bookServices/detail/components/learnTask/index.wxss |   21 +++
 packageBookService/pages/bookServices/detail/components/learnTask/index.wxml |   22 ++-
 packageDomain/pages/resourceDetails/myVideo/index.js                         |   62 +++++++++
 packageDomain/pages/resourceDetails/myAudio/index.js                         |   59 +++++++++
 5 files changed, 278 insertions(+), 56 deletions(-)

diff --git a/packageBookService/pages/bookServices/detail/components/learnTask/index.js b/packageBookService/pages/bookServices/detail/components/learnTask/index.js
index 71b76f3..0607788 100644
--- a/packageBookService/pages/bookServices/detail/components/learnTask/index.js
+++ b/packageBookService/pages/bookServices/detail/components/learnTask/index.js
@@ -15,7 +15,7 @@
     name: '',
     school: '',
     class: '',
-    learnTime: '2',
+    learnTime: '0灏忔椂',
     taskShow: false,
     dataList: [], //浠诲姟鍗�
     tasksListData: [], //宸插~鍐欎换鍔″崟messsge
@@ -24,7 +24,7 @@
     userId: 0,
     userName: '',
     isUpdate: false,
-    taskId: 0, //榛樿閫変腑鐩綍id
+    taskId: '', //榛樿閫変腑鐩綍id
     autosize: {
       maxHeight: 120,
       minHeight: 80,
@@ -32,6 +32,8 @@
     disabled: false,
     dialogVisible: false,
     invitee: "",
+    teacherEvaluated: false,
+    evaluated: false
   },
   onShow() {
     var that = this;
@@ -55,7 +57,7 @@
         taskId: options.bookId,
         consumer: options.consumer,
         userId: options.userId,
-        userName: JSON.parse(wx.getStorageSync(app.config.userInfoKey)).name
+        userName: JSON.parse(wx.getStorageSync(app.config.userInfoKey)).nickName
       });
       if (options.consumer) {
         this.setData({
@@ -72,13 +74,44 @@
           disabled: false
         });
       }
+      console.log(options.consumer, 77)
       this.getResourceData()
+      this.getLearnTime()
     }
 
   },
 
+  getLearnTime() {
+    app.MG.identity
+      .getUserKey({
+        domain: 'cloudLearningTime',
+        keys: [this.data.bookId + '']
+      })
+      .then((res) => {
+        if (res.length > 0 && JSON.parse(res[0].value) && JSON.parse(res[0].value).length > 0) {
+          let time = JSON.parse(res[0].value)[0].learnTime
+          let minutes = Number(time) / (1000 * 60)
+          let hours = Number(time) / (1000 * 60 * 60)
+          if (minutes > 0 && minutes < 60) {
+            this.setData({
+              learnTime: Math.round(minutes) + '鍒嗛挓',
+            });
+          } else if (minutes > 60) {
+            this.setData({
+              learnTime: Math.round(hours) + '灏忔椂',
+            });
+          } else {
+            this.setData({
+              learnTime: '0灏忔椂',
+            });
+          }
+        }
+      })
+  },
+
   getResourceData() {
     this.setData({
+      menuList: [],
       loading: true,
     });
     let query = {
@@ -124,10 +157,12 @@
           }
           dataList.push(item)
         })
-        this.setData({
-          menuList: dataList,
-          loading: false,
-        });
+        setTimeout(() => {
+          this.setData({
+            menuList: dataList,
+            loading: false,
+          });
+        }, 500)
         if (this.data.taskId) {
           setTimeout(() => {
             this.data.menuList.forEach((item) => {
@@ -163,6 +198,11 @@
       this.getTasksList()
     })
   },
+  getTask(e) {
+    console.log(e)
+    let item = e.currentTarget.dataset.item
+    this.taskSelect(item)
+  },
 
   onVisibleChange(e) {
     this.setData({
@@ -191,7 +231,7 @@
       this.setData({
         tasksListData: res.datas,
       });
-      if (this.data.taskInfo) {
+      if (this.data.taskInfo.name) {
         this.taskSelect(this.data.taskInfo)
       }
     })
@@ -218,28 +258,27 @@
               });
               this.getChildTasksList()
               if (content.evaluate.length > 0) {
-                content.evaluate.forEach((element) => {
-                  if (this.data.consumer == 'classmate') {
-                    element.mateEvaluation = ''
-                  }
-                  if (this.data.consumer == 'teacher') {
-                    element.teacherEvaluation = ''
-                  }
-                })
+                // content.evaluate.forEach((element) => {
+                //   if (this.data.consumer == 'classmate') {
+                //     element.mateEvaluation = ''
+                //   }
+                //   if (this.data.consumer == 'teacher') {
+                //     element.teacherEvaluation = ''
+                //   }
+                // })
                 this.setData({
                   dataList: content.evaluate,
                 });
-
               }
             }
           } else {
-            this.goDetail(item)
+            return false
           }
         })
-
-      } else {
-        this.goDetail(item)
       }
+    }
+    if (this.data.dataList.length == 0) {
+      this.goDetail(item)
     }
   },
   goDetail(item) {
@@ -274,6 +313,7 @@
       }
       this.setData({
         dataList: res.datas.cmsDatas[0].datas,
+        taskShow: true,
       });
     })
   },
@@ -293,19 +333,50 @@
       if (res.datas.length > 0) {
         let list = []
         this.data.dataList.forEach((item) => {
+          item.teacherEvaluation = []
+          item.mateEvaluation = []
           res.datas.forEach((item1) => {
             let content = JSON.parse(item1.content)
-            if (content.teacherComment) {
+            if (content.teacherComment.length > 0) {
               content.teacherComment.forEach((item2) => {
                 if (item.id == item2.childTaskId) {
-                  item.teacherEvaluation.push(item2)
+                  item.mateEvaluation = [item2]
+                  if (this.data.consumer == 'teacher') {
+                    this.setData({
+                      evaluated: true
+                    });
+                  }
                 }
               })
             }
-            if (content.mateComment) {
+            if (item.teacherEvaluation && item.teacherEvaluation.length > 0) {
+              this.setData({
+                teacherEvaluated: true
+              });
+            }
+            if (content.mateComment.length > 0) {
               content.mateComment.forEach((item3) => {
                 if (item.id == item3.childTaskId) {
-                  item.mateEvaluation.push(item3)
+                  item.mateEvaluation = [...item.mateEvaluation, item3]
+                  console.log(item.mateEvaluation, 123)
+                  if (this.data.consumer == 'classmate') {
+                    if (item.mateEvaluation && item.mateEvaluation.length > 0) {
+                      let data = item.mateEvaluation.find(
+                        (item) => item.userId == this.data.userId
+                      )
+                      if (data) {
+                        this.setData({
+                          evaluated: true
+                        });
+                        item.mateEvaluation = [data]
+                      } else {
+                        this.setData({
+                          evaluated: false
+                        });
+                        item.mateEvaluation = ''
+                      }
+                    }
+                  }
                 }
               })
             }
@@ -363,6 +434,7 @@
   //鎻愪氦鑷繁濉啓
   inviteBtn() {
     let empty = false
+    console.log(this.data.dataList, 123)
     this.data.dataList.forEach((item) => {
       if (item.introspection == '' || item.completion == '' || item.selfEvaluation == '') {
         empty = true
@@ -422,6 +494,7 @@
   },
   updateSubmit() {
     let evaluate = []
+    console.log(this.data.dataList, 211)
     this.data.dataList.forEach((item) => {
       evaluate.push({
         id: item.id,
@@ -478,6 +551,14 @@
   },
 
   confirmBtn() {
+    if (this.data.invitee == 'teacher' && this.data.teacherEvaluated) {
+      wx.showToast({
+        title: "鏁欏笀宸茬粡璇勪环锛屼笉鑳藉啀閭�璇锋暀甯堣瘎浠凤紒",
+        icon: 'none',
+        duration: 1000
+      })
+      return false
+    }
     wx.showShareMenu({
       withShareTicket: true
     });
@@ -487,37 +568,44 @@
     let teacherEvaluationList = []
     this.data.dataList.forEach((item) => {
       if (this.data.consumer == 'classmate') {
-        if (item.mateEvaluation == '') {
-          wx.showToast({
-            title: "璇峰厛濉瘎浠�",
-            icon: 'none',
-            duration: 1000
-          })
-        } else {
+        if (item.mateEvaluation && item.mateEvaluation != '') {
           mateEvaluationList.push({
             childTaskId: item.id,
+            userId: this.data.userId,
             userName: this.data.userName,
             evaluation: item.mateEvaluation
           })
         }
       }
-
       if (this.data.consumer == 'teacher') {
-        if (item.teacherEvaluation == '') {
-          wx.showToast({
-            title: "璇峰厛濉瘎浠�",
-            icon: 'none',
-            duration: 1000
-          })
-        } else {
+        if (item.teacherEvaluation && item.teacherEvaluation != '') {
           teacherEvaluationList.push({
             childTaskId: item.id,
+            userId: this.data.userId,
             userName: this.data.userName,
             evaluation: item.teacherEvaluation
           })
         }
       }
     })
+    if (this.data.consumer == 'classmate') {
+      if (mateEvaluationList.length < this.data.dataList.length) {
+        wx.showToast({
+          title: "璇峰厛濉啓璇勪环",
+          icon: 'none',
+          duration: 1000
+        })
+      }
+    }
+    if (this.data.consumer == 'teacher') {
+      if (teacherEvaluationList.length < this.data.dataList.length) {
+        wx.showToast({
+          title: "璇峰厛濉啓璇勪环",
+          icon: 'none',
+          duration: 1000
+        })
+      }
+    }
     let content = {
       id: this.data.taskInfo.id,
       taskName: this.data.taskInfo.name,
@@ -565,7 +653,7 @@
   onShareAppMessage() {
     return {
       title: '璇勪环瀛︿範浠诲姟鍗�',
-      path: `packageBookService/pages/bookServices/detail/components/learnTask/index?bookId=${this.data.bookId}&consumer=${this.data.invitee}&taskId=${this.data.taskInfo.id}&userId=${this.data.userId}`,
+      path: `packageBookService/pages/bookServices/detail/components/learnTask/index?bookId=${this.data.bookId}&consumer=${this.data.invitee}&taskId=${this.data.taskInfo.id}&userId=${this.data.userId}&cmsPath=${this.data.cmsPath}`,
       imgUrl: 'https://jsek.bnuic.com/home/image/click-icon.png',
     }
   }
diff --git a/packageBookService/pages/bookServices/detail/components/learnTask/index.wxml b/packageBookService/pages/bookServices/detail/components/learnTask/index.wxml
index 86e10c6..6524d53 100644
--- a/packageBookService/pages/bookServices/detail/components/learnTask/index.wxml
+++ b/packageBookService/pages/bookServices/detail/components/learnTask/index.wxml
@@ -46,13 +46,15 @@
     <view class="item-box" wx:if="{{menuList.length > 0 && !loading}}">
       <view wx:for="{{menuList}}" wx:for-item="item" wx:for-index="index" wx:key="id" class="item">
         <view class="itemCon">
-          <view>
+          <div wx:if="{{!item.children}}" class="noChild"></div>
+          <view wx:if="{{item.children}}">
+            <t-icon name="chevron-down" size="48rpx" data-name="chevron-down"  />
           </view>
-          <view bind:tap="getTask" data-item="{{item}}">{{ item.name }}</view>
+          <view bind:tap="getTask" data-item="{{item}}" class="itemName">{{ item.name }}</view>
         </view>
         <view class="childBox" wx:if="{{item.children}}">
           <view wx:for="{{item.children}}" wx:for-item="item1" wx:for-index="index" wx:key="id" class="item">
-            <view bind:tap="getTask" data-item="{{item}}">{{ item1.name }}</view>
+            <view bind:tap="getTask" data-item="{{item1}}" class="itemName">{{ item1.name }}</view>
           </view>
         </view>
       </view>
@@ -98,7 +100,7 @@
                   <view class="box-list" wx:if="{{consumer == 'classmate' || !consumer}}">
                     <view class="lable">鍚屼即璇�:</view>
                     <view class="inputBox">
-                      <t-textarea placeholder="璇疯緭鍏ヨ瘎浠�" value="{{item.mateEvaluation}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onMateInput" data-index="{{index}}" wx:if="{{consumer == 'classmate'}}" />
+                      <t-textarea placeholder="璇疯緭鍏ヨ瘎浠�" value="{{item.mateEvaluation}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onMateInput" data-index="{{index}}" wx:if="{{consumer == 'classmate'  && !evaluated}}" />
                       <view wx:if="{{isUpdate && item.mateEvaluation.length > 0}}" class="rateList">
                         <view wx:for="{{item.mateEvaluation}}" wx:for-item="mateItem" wx:key="index" class="li">
                           <view class="userName">{{ mateItem.userName }}</view>
@@ -111,7 +113,7 @@
                   <view class="box-list" wx:if="{{consumer == 'teacher' || !consumer}}">
                     <view class="lable">鑰佸笀璇�:</view>
                     <view class="inputBox">
-                      <t-textarea placeholder="璇疯緭鍏ヨ瘎浠�" value="{{item.teacherEvaluation}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onTeacherInput" data-index="{{index}}" wx:if="{{consumer == 'teacher'}}" />
+                      <t-textarea placeholder="璇疯緭鍏ヨ瘎浠�" value="{{item.teacherEvaluation}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onTeacherInput" data-index="{{index}}" wx:if="{{consumer == 'teacher' && !evaluated}}" />
                       <view wx:if="{{isUpdate && item.teacherEvaluation.length > 0}}" class="rateList">
                         <view wx:for="{{item.teacherEvaluation}}" wx:for-item="mateItem" wx:key="index" class="li">
                           <view class="userName"><text></text>{{ mateItem.userName }}</view>
@@ -127,14 +129,14 @@
             <view wx:if="{{dataList.length == 0}}" class="empyt">
               <empty />
             </view>
-            <view class="buttonBox">
-              <t-button class="btn" theme="primary" bind:tap="submitComment" wx:if="{{consumer}}">
+            <view class="buttonBox" wx:if="{{dataList.length > 0}}">
+              <t-button class="btn" theme="primary" bind:tap="submitComment" wx:if="{{consumer && !evaluated}}">
                 <view slot="content" class="btn-content">鎻愪氦</view>
               </t-button>
-              <t-button class="btn" theme="primary" bind:tap="updateSubmit" wx:if="{{isUpdate && !consumer}}">
+              <t-button class="btn" theme="primary" bind:tap="updateSubmit" wx:if="{{isUpdate && !consumer && dataList.length > 0}}">
                 <view slot="content" class="btn-content">閭�璇疯瘎浠�</view>
               </t-button>
-              <t-button class="btn" theme="primary" bind:tap="inviteBtn" wx:if="{{!isUpdate && !consumer}}">
+              <t-button class="btn" theme="primary" bind:tap="inviteBtn" wx:if="{{!isUpdate && !consumer && dataList.length > 0}}">
                 <view slot="content" class="btn-content">閭�璇疯瘎浠�</view>
               </t-button>
             </view>
@@ -148,7 +150,7 @@
   <view class="info-center" style="top:{{height*0.3}}px;" wx:if="{{dialogVisible}}">
     <view class="block1">
       <t-radio-group value="{{invitee}}" borderless t-class="box" class="radioBox" bind:change="onInviteeChange">
-        <t-radio block="{{false}}" label="鍚屼即" value="mate" class="radio" />
+        <t-radio block="{{false}}" label="鍚屼即" value="classmate" class="radio" />
         <t-radio block="{{false}}" label="鑰佸笀" value="teacher" class="radio" />
       </t-radio-group>
     </view>
diff --git a/packageBookService/pages/bookServices/detail/components/learnTask/index.wxss b/packageBookService/pages/bookServices/detail/components/learnTask/index.wxss
index 42ffa45..ed792ca 100644
--- a/packageBookService/pages/bookServices/detail/components/learnTask/index.wxss
+++ b/packageBookService/pages/bookServices/detail/components/learnTask/index.wxss
@@ -72,6 +72,27 @@
   padding: 10rpx 0;
 }
 
+.itemCon {
+  display: flex;
+}
+
+.noChild {
+  width: 50rpx;
+  height: 40rpx;
+}
+
+.itemName {
+  width: 100%;
+  background: #f1f1f1;
+  padding: 10rpx;
+}
+
+.childBox {
+  margin-left: 80rpx;
+  margin-top: 10rpx;
+  overflow: hidden;
+}
+
 .block {
   position: relative;
   width: 90vw;
diff --git a/packageDomain/pages/resourceDetails/myAudio/index.js b/packageDomain/pages/resourceDetails/myAudio/index.js
index 624b1dc..24b9ccb 100644
--- a/packageDomain/pages/resourceDetails/myAudio/index.js
+++ b/packageDomain/pages/resourceDetails/myAudio/index.js
@@ -57,7 +57,10 @@
     buyIdList: [],
     buyList: [],
     learnClassData: null,
-    bookDetail: null
+    bookDetail: null,
+    learnStartTime: 0,
+    learnTimeList: [],
+    learnTimeData: 0
   },
 
   format(time) {
@@ -126,7 +129,13 @@
       this.resourceDetailsData()
       this.getNoteList()
     }
-    if (options.formPath == 'jsek_cloudLearning') this.getBookInfo(options.bookId)
+    if (options.formPath == 'jsek_cloudLearning') {
+      this.setData({
+        learnStartTime: Date.now(),
+      })
+      this.getLearnTime()
+    }
+    this.getBookInfo(options.bookId)
   },
 
   /**
@@ -187,6 +196,10 @@
       this.count(duration)
     }
     this.setPlayerList()
+    if (this.data.fromPath == 'jsek_cloudLearning') {
+      let cloudDuration = this.data.pauseTime - this.data.learnStartTime
+      this.cloudCount(cloudDuration)
+    }
   },
   count(timeStr) {
     const data = {
@@ -207,6 +220,48 @@
     console.log('缁熻', data)
     app.MG.job.newJobWithApiNewEvent(data).then((res) => {})
   },
+
+  getLearnTime() {
+    app.MG.identity
+      .getUserKey({
+        domain: 'cloudLearningTime',
+        keys: [this.data.bookId]
+      })
+      .then((res) => {
+        if (res.length > 0) {
+          if (JSON.parse(res[0].value) && JSON.parse(res[0].value).length > 0) {
+            this.setData({
+              learnTimeList: JSON.parse(res[0].value),
+              learnTimeData: JSON.parse(res[0].value)[0].learnTime,
+            })
+          } else {
+            this.setData({
+              learnTimeList: [],
+              learnTimeData: 0
+            })
+          }
+        }
+      })
+  },
+  cloudCount(timeStr) {
+    let time = Number(this.data.learnTimeData) + Number(timeStr)
+    this.setData({
+      learnTimeList: [{
+        learnTime: time
+      }],
+    })
+    app.MG.identity
+      .setUserKey({
+        setKeyRequests: [{
+          domain: 'cloudLearningTime',
+          key: this.data.bookId,
+          value: JSON.stringify(this.data.learnTimeList)
+        }]
+      })
+      .then((res) => {
+        console.log(timeStr, '瀛︿範鏃堕暱')
+      })
+  },
   // 鑾峰彇鍥句功璇︽儏
   getBookInfo(id) {
     const query = {
diff --git a/packageDomain/pages/resourceDetails/myVideo/index.js b/packageDomain/pages/resourceDetails/myVideo/index.js
index c4906d2..41f8562 100644
--- a/packageDomain/pages/resourceDetails/myVideo/index.js
+++ b/packageDomain/pages/resourceDetails/myVideo/index.js
@@ -3,6 +3,7 @@
 import {
   loginInfo
 } from '../../../../assets/js/login';
+import moment from 'moment'
 Page({
 
   /**
@@ -54,7 +55,10 @@
     buyIdList: [],
     buyList: [],
     learnClassData: null,
-    bookDetail: null
+    bookDetail: null,
+    learnStartTime: 0,
+    learnTimeList: [],
+    learnTimeData: 0
   },
   // 鏍煎紡鍖栫瑪璁版椂闂�
   convertTimestamp(timestamp) {
@@ -110,7 +114,13 @@
     } else {
       this.resourceDetailsData()
     }
-    if (options.formPath == 'jsek_cloudLearning') this.getBookInfo(options.bookId)
+    if (options.formPath == 'jsek_cloudLearning') {
+      this.setData({
+        learnStartTime: Date.now(),
+      })
+      this.getLearnTime()
+    }
+    this.getBookInfo(options.bookId)
   },
 
   /**
@@ -149,7 +159,53 @@
       this.count(duration)
     }
     this.setPlayerList()
+    if (this.data.fromPath == 'jsek_cloudLearning') {
+      let cloudDuration = this.data.pauseTime - this.data.learnStartTime
+      this.cloudCount(cloudDuration)
+    }
   },
+  getLearnTime() {
+    app.MG.identity
+      .getUserKey({
+        domain: 'cloudLearningTime',
+        keys: [this.data.bookId]
+      })
+      .then((res) => {
+        if (res.length > 0) {
+          if (JSON.parse(res[0].value) && JSON.parse(res[0].value).length > 0) {
+            this.setData({
+              learnTimeList: JSON.parse(res[0].value),
+              learnTimeData: JSON.parse(res[0].value)[0].learnTime,
+            })
+          } else {
+            this.setData({
+              learnTimeList: [],
+              learnTimeData: 0
+            })
+          }
+        }
+      })
+  },
+  cloudCount(timeStr) {
+    let time = Number(this.data.learnTimeData) + Number(timeStr)
+    this.setData({
+      learnTimeList: [{
+        learnTime: time
+      }],
+    })
+    app.MG.identity
+      .setUserKey({
+        setKeyRequests: [{
+          domain: 'cloudLearningTime',
+          key: this.data.bookId,
+          value: JSON.stringify(this.data.learnTimeList)
+        }]
+      })
+      .then((res) => {
+        console.log(timeStr, '瀛︿範鏃堕暱')
+      })
+  },
+
 
   // 鑾峰彇鍥句功璇︽儏
   getBookInfo(id) {
@@ -570,7 +626,7 @@
       res.datas.forEach((item) => {
         // item.compliceHover = false
         // item.deleteHover = false
-        item.createDate = this.convertTimestamp(item.createDate)
+        item.createDate = moment(item.createDate).format('YYYY-MM-DD HH:mm:ss')
       })
       this.setData({
         "pageCount.total": res.totalSize,

--
Gitblit v1.9.1