From 2abf00efb6d83426ad84342f17252a36aeb5a4e1 Mon Sep 17 00:00:00 2001
From: litian <C21AF165>
Date: 星期五, 27 九月 2024 16:09:29 +0800
Subject: [PATCH] rwd

---
 packageBookService/pages/bookServices/detail/components/learnTask/index.js |  337 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 235 insertions(+), 102 deletions(-)

diff --git a/packageBookService/pages/bookServices/detail/components/learnTask/index.js b/packageBookService/pages/bookServices/detail/components/learnTask/index.js
index 37f6086..76bbb34 100644
--- a/packageBookService/pages/bookServices/detail/components/learnTask/index.js
+++ b/packageBookService/pages/bookServices/detail/components/learnTask/index.js
@@ -7,6 +7,7 @@
   data: {
     height: '', //灞忓箷楂樺害
     bookId: '',
+    cmsPath: '',
     consumer: '',
     bookInfo: {},
     menuList: [],
@@ -14,7 +15,7 @@
     name: '',
     school: '',
     class: '',
-    learnTime: '2',
+    learnTime: '0灏忔椂',
     taskShow: false,
     dataList: [], //浠诲姟鍗�
     tasksListData: [], //宸插~鍐欎换鍔″崟messsge
@@ -23,7 +24,7 @@
     userId: 0,
     userName: '',
     isUpdate: false,
-    taskId: 0, //榛樿閫変腑鐩綍id
+    taskId: '', //榛樿閫変腑鐩綍id
     autosize: {
       maxHeight: 120,
       minHeight: 80,
@@ -31,6 +32,23 @@
     disabled: false,
     dialogVisible: false,
     invitee: "",
+    teacherEvaluated: false,
+    evaluated: false,
+    rowCol: [{
+        width: '50%',
+      },
+      {
+        width: '100%'
+      },
+      {
+        width: '80%'
+      },
+      {
+        width: '100%'
+      }, {
+        width: '100%'
+      },
+    ],
   },
   onShow() {
     var that = this;
@@ -48,18 +66,19 @@
    */
   onLoad(options) {
     if (options) {
-      console.log(options, 666)
       this.setData({
         bookId: options.bookId,
-        taskId: options.bookId,
+        cmsPath: options.cmsPath,
+        taskId: options.taskId,
         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({
+          cmsPath: options.cmsPath,
           bookId: options.bookId,
-          taskId: options.bookId,
+          taskId: options.taskId,
           consumer: options.consumer,
           userId: options.userId,
           disabled: true
@@ -71,19 +90,49 @@
         });
       }
       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 = {
       path: '*',
       queryType: '*',
       productId: this.data.bookId,
-      cmsPath: 'jsek_learningTasks',
+      cmsPath: this.data.cmsPath,
       // cmsType: '*',
       itemFields: {
         SysType: 'CmsFolder'
@@ -99,60 +148,77 @@
       });
       if (res.datas.cmsDatas[0].datas) {
         let list = res.datas.cmsDatas[0].datas
-        this.setData({
-          menuList: list,
-        });
+        let dataList = []
+        list.forEach((item) => {
+          if (item.childrenFolderCount > 0) {
+            let query = {
+              path: '*',
+              queryType: '*',
+              productId: this.data.bookId,
+              cmsPath: item.productLinkPath,
+              // cmsType: '*',
+              itemFields: {
+                SysType: 'CmsFolder'
+              },
+              pading: {
+                start: 0,
+                size: 99
+              }
+            }
+            app.MG.store.getProductDetail(query).then((res) => {
+              item.children = res.datas.cmsDatas[0].datas
+            })
+          }
+          dataList.push(item)
+        })
+        setTimeout(() => {
+          this.setData({
+            menuList: dataList,
+            loading: false,
+          });
+        }, 200)
         if (this.data.taskId) {
-          this.data.menuList.forEach((item) => {
-            if (item.id == this.data.taskId) {
+          setTimeout(() => {
+            this.data.menuList.forEach((item) => {
+              if (item.id == this.data.taskId) {
+                this.setData({
+                  taskInfo: item,
+                });
+              } else if (item.children) {
+                item.children.forEach((item1) => {
+                  if (item1.id == this.data.taskId) {
+                    this.setData({
+                      taskInfo: item1,
+                    });
+                  }
+                })
+              }
+            })
+          }, 200)
+        } else {
+          setTimeout(() => {
+            if (this.data.menuList[0].children) {
               this.setData({
-                taskInfo: item,
+                taskInfo: this.data.menuList[0].children[0],
+              });
+            } else {
+              this.setData({
+                taskInfo: this.data.menuList[0],
               });
             }
-          })
-        } else {
-          this.setData({
-            taskInfo: this.data.menuList[0],
-          });
+          }, 200)
         }
       }
-      this.getTasksList()
+      setTimeout(() => {
+        this.getTasksList()
+      }, 200)
     })
   },
-
   getTask(e) {
-    console.log(e, 123)
-    let data = e.currentTarget.dataset.item
-    if (data.childrenFolderCount > 0) {
-      let query = {
-        path: '*',
-        queryType: '*',
-        productId: this.data.bookId,
-        cmsPath: data.productLinkPath,
-        // cmsType: '*',
-        itemFields: {
-          SysType: 'CmsFolder'
-        },
-        pading: {
-          start: 0,
-          size: 99
-        }
-      }
-      app.MG.store.getProductDetail(query).then((res1) => {
-        this.data.menuList.forEach((item) => {
-          if (item.id == data.id) {
-            item.children = res1.datas.cmsDatas[0].datas
-          }
-        })
-      })
-    } else {
-      this.setData({
-        taskShow: true,
-      });
-    }
-    this.taskSelect(data)
-
+    let item = e.currentTarget.dataset.item
+    this.taskSelect(item)
   },
+
   onVisibleChange(e) {
     this.setData({
       taskShow: e.detail.visible,
@@ -180,7 +246,9 @@
       this.setData({
         tasksListData: res.datas,
       });
-      this.taskSelect(this.data.taskInfo)
+      if (this.data.taskInfo.name) {
+        this.taskSelect(this.data.taskInfo)
+      }
     })
   },
   taskSelect(item) {
@@ -192,12 +260,6 @@
       if (this.data.tasksListData.length > 0) {
         this.data.tasksListData.forEach((item1) => {
           let content = JSON.parse(item1.content)
-          this.setData({
-            name: content.userName,
-            school: content.school,
-            class: content.class,
-            learnTime: content.learnTime,
-          });
           if (content.id == this.data.taskInfo.id) {
             if (content.userId == this.data.userId) {
               this.setData({
@@ -207,33 +269,37 @@
                 school: content.school,
                 class: content.class,
                 learnTime: content.learnTime,
-                taskShow: true,
               });
+              if (this.data.name && this.data.school && this.data.class) {
+                this.setData({
+                  taskShow: true,
+                })
+              }
               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 {
+      }
+      if (this.data.dataList.length == 0) {
         this.goDetail(item)
       }
     }
+
   },
   goDetail(item) {
     this.setData({
@@ -265,9 +331,18 @@
           item.teacherEvaluation = ''
         })
       }
-      this.setData({
-        dataList: res.datas.cmsDatas[0].datas,
-      });
+      if (this.data.name && this.data.school && this.data.class) {
+        this.setData({
+          dataList: res.datas.cmsDatas[0].datas,
+          taskShow: true,
+        })
+      } else {
+        wx.showToast({
+          title: "璇峰厛濉啓涓汉淇℃伅",
+          icon: 'none',
+          duration: 1000
+        })
+      }
     })
   },
   getChildTasksList() {
@@ -286,19 +361,49 @@
       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.teacherEvaluation = [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]
+                  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 = ''
+                      }
+                    }
+                  }
                 }
               })
             }
@@ -312,16 +417,31 @@
     })
   },
 
+  // 涓汉淇℃伅濉啓
+  bindTnputBlur(e) {
+    this.setData({
+      name: e.detail.value
+    })
+  },
+  onSchoolInput(e) {
+    this.setData({
+      school: e.detail.value
+    })
+  },
+  bindClassBlur(e) {
+    this.setData({
+      class: e.detail.value
+    })
+  },
+
   //浠诲姟濉啓
   //鍙嶆��
   onIntrospectionInput(e) {
-    console.log(e)
     let index = e.target.dataset.index
     let data = 'dataList[' + index + '].introspection'
     this.setData({
       [data]: e.detail.value
     });
-    console.log(this.data.dataList)
   },
   //瀹屾垚鎯呭喌
   onCompletionInput(e) {
@@ -338,7 +458,6 @@
     this.setData({
       [data]: e.detail.value
     });
-    console.log(this.data.dataList)
   },
   //鍚屼即璇勪环
   onMateInput(e) {
@@ -461,7 +580,6 @@
     })
   },
   onInviteeChange(e) {
-    console.log(e)
     this.setData({
       invitee: e.detail.value
     });
@@ -475,47 +593,62 @@
   },
 
   confirmBtn() {
-    wx.showShareMenu({
-      withShareTicket: true
-    });
-    console.log(888)
+    if (this.data.invitee == 'teacher' && this.data.teacherEvaluated) {
+      wx.showToast({
+        title: "鏁欏笀宸茬粡璇勪环锛屼笉鑳藉啀閭�璇锋暀甯堣瘎浠凤紒",
+        icon: 'none',
+        duration: 1000
+      })
+    } else {
+      wx.showShareMenu({
+        withShareTicket: true
+      });
+    }
+
   },
   submitComment() {
     let mateEvaluationList = []
     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,
@@ -563,7 +696,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',
     }
   }

--
Gitblit v1.9.1