From f4425543db1c8db8c47a34c53ef477e72cfe318e Mon Sep 17 00:00:00 2001
From: 闫增涛 <1829501689@qq.com>
Date: 星期一, 11 三月 2024 18:19:56 +0800
Subject: [PATCH] feat(答题器): 答题器

---
 pages/bookServices/detail/components/note/note.js |  302 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 298 insertions(+), 4 deletions(-)

diff --git a/pages/bookServices/detail/components/note/note.js b/pages/bookServices/detail/components/note/note.js
index 585c609..772e741 100644
--- a/pages/bookServices/detail/components/note/note.js
+++ b/pages/bookServices/detail/components/note/note.js
@@ -1,23 +1,317 @@
 // pages/bookServices/detail/components/note/note.js
+const app = getApp()
 Component({
   /**
    * 缁勪欢鐨勫睘鎬у垪琛�
    */
   properties: {
-
+    bookInfo: {
+      type: Object,
+      value: {}
+    }
   },
 
   /**
    * 缁勪欢鐨勫垵濮嬫暟鎹�
    */
   data: {
-
+    inputStyle: 'border: 2rpx solid rgba(220,220,220,1);border-radius: 12rpx; padding:16rpx',
+    placeholderstyle: 'font-size:28rpx',
+    flag: false, // 杈撳叆妗嗘槸鍚︽樉绀�
+    submitType: "new", //  鏂板缓 or 缂栬緫
+    showNoteDialog: false,
+    textvalue: '',
+    noteId: '',
+    showInput: false,
+    submitTitle: "",
+    pageCount: {
+      page: 1,
+      total: 0,
+    },
+    isMore: null,
+    noteList: [],
+    activeValues: 0,
+    loading: false,
   },
-
   /**
    * 缁勪欢鐨勬柟娉曞垪琛�
    */
   methods: {
-
+    onReachBottom() {
+      const flag = this.data.noteList.length < this.data.pageCount.total
+      if (flag) {
+        this.setData({
+          isMore: true,
+          "pageCount.page": this.data.pageCount.page + 1
+        })
+        this.getNoteList()
+      } else {
+        this.setData({
+          isMore: true
+        })
+        setTimeout(() => {
+          this.setData({
+            isMore: false
+          })
+        }, 100)
+      }
+    },
+    handleSubmitTitle() {
+      this.setData({
+        submitTitle: this.properties.bookInfo.name
+      })
+    },
+    openDialog() {
+      this.setData({
+        submitTitle: this.properties.bookInfo.name,
+        showNoteDialog: true
+      })
+    },
+    closeDialog() {
+      this.setData({
+        flag: false,
+        showNoteDialog: false,
+        submitTitle: '',
+        textvalue: "",
+      })
+    },
+    textareaChange(e) {
+      this.setData({
+        textvalue: e.detail.value
+      })
+    },
+    textareaBlur() {
+      console.log('澶卞幓鐒︾偣');
+    },
+    // 鏍囬杈撳叆妗嗗��
+    inputChange(e) {
+      this.setData({
+        submitTitle: e.detail.value
+      })
+    },
+    // 寮圭獥纭畾鎸夐挳
+    confirmSuggest() {
+      if (!this.data.submitTitle) {
+        return wx.showToast({
+          icon: 'error',
+          title: '璇峰~鍐欑瑪璁版爣棰�',
+        })
+      } else if (!this.data.textvalue) {
+        return wx.showToast({
+          icon: 'error',
+          title: '璇峰~鍐欑瑪璁板唴瀹�',
+        })
+      }
+      if (this.data.submitType == 'new') {
+        this.makeNote()
+      } else if (this.data.submitType == 'edit') {
+        this.updateNote()
+      }
+      this.setData({
+        showNoteDialog: false
+      })
+    },
+    handleChange(e) {
+      this.setData({
+        activeValues: e.detail.value
+      })
+    },
+    // 鏍煎紡鍖栫瑪璁版椂闂�
+    convertTimestamp(timestamp) {
+      const isoDate = new Date(timestamp)
+      const year = isoDate.getFullYear()
+      const month = String(isoDate.getMonth() + 1).padStart(2, '0')
+      const day = String(isoDate.getDate()).padStart(2, '0')
+      const hours = String(isoDate.getHours()).padStart(2, '0')
+      const minutes = String(isoDate.getMinutes()).padStart(2, '0')
+      const seconds = String(isoDate.getSeconds()).padStart(2, '0')
+      const formattedDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
+      return formattedDate
+    },
+    changeLoading() {
+      this.setData({
+        loading:true
+      })
+    },
+    // 鑾峰彇绗旇鍒楄〃
+    async getNoteList() {
+      // this.setData({
+      //   loading: true
+      // })
+      let topicId
+      await app.MG.ugc
+        .getProductUserSubmitTopic({
+          productId: this.properties.bookInfo.id,
+          appRefCode: app.config.appRefCode
+        })
+        .then((res) => {
+          if (res) {
+            topicId = res.id
+          } else {
+            return wx.showToast({
+              icon: "error",
+              title: '鏌ヨ澶辫触',
+            })
+          }
+        })
+      // loadings.value.bookResource = true
+      let query = {
+        start: 0,
+        size: this.data.pageCount.page * 5,
+        messageType: 'note',
+        sort: {
+          type: 'Desc',
+          field: 'CreateDate'
+        },
+        appRefCode: app.config.appRefCode,
+        topicIdOrRefCode: topicId + ''
+      }
+      await app.MG.ugc.getTopicMessageList(query).then((res) => {
+        // notePage.value.total = res.totalSize
+        res.datas.forEach((item) => {
+          item.compliceHover = false
+          item.deleteHover = false
+          item.createDate = this.convertTimestamp(item.createDate)
+        })
+        this.setData({
+          "pageCount.total": res.totalSize,
+          noteList: res.datas,
+          loading: false
+        })
+        console.log('绗旇鍒楄〃', res.datas);
+      })
+    },
+    // 鏂板缓绗旇鎺ュ彛
+    async makeNote() {
+      const token = wx.getStorageSync('jsek-token')
+      if (!token) {
+        return wx.getUserProfile({
+          desc: '鐢ㄦ埛鐧诲綍',
+          success: (res) => {
+            console.log(res);
+          }
+        })
+      }
+      let topicId
+      await app.MG.ugc
+        .getProductUserSubmitTopic({
+          productId: this.properties.bookInfo.id,
+          appRefCode: app.config.appRefCode
+        })
+        .then((res) => {
+          if (res) {
+            topicId = res.id
+          } else {
+            return wx.showToast({
+              icon: 'error',
+              title: '鏂板缓澶辫触',
+            })
+          }
+        })
+      let query = {
+        topicIdOrRefCode: topicId + '',
+        name: this.data.submitTitle,
+        content: this.data.textvalue,
+        type: 'note',
+        cmsTypeRefCode: '',
+        newDataListRequest: []
+      }
+      await app.MG.ugc.newTopicMessage(query).then((res) => {
+        wx.showToast({
+          title: '鏂板缓鎴愬姛',
+        })
+        this.closeDialog()
+        this.getNoteList()
+      })
+    },
+    // 鍒犻櫎绗旇
+    deleteNote(e) {
+      const id = e.currentTarget.dataset.id
+      const messageIds = []
+      messageIds.push(id)
+      wx.showModal({
+        title: '鎻愮ず',
+        content: '纭鍒犻櫎璇ョ瑪璁板悧锛�',//editable濡傛灉涓簍rue锛岃繖灏辨槸杈撳叆妗嗙殑鍐呭
+        editable: false,//鏄惁鏄剧ず杈撳叆妗�
+        placeholderText: '璇疯緭鍏ュ唴瀹瑰惂',//杈撳叆妗嗙殑榛樿鍐呭
+        success: (res) => {
+          if (res.confirm) {
+            app.MG.ugc
+              .delTopicMessage({ messageIds })
+              .then((res) => {
+                wx.showToast({
+                  title: '鍒犻櫎鎴愬姛',
+                })
+                // if ((notePage.value.total % 3) - 1 == 0) {
+                //   notePage.value.page -= 1
+                // }
+                this.getNoteList()
+              })
+          } else if (res.cancel) {
+            console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷')
+          }
+        }
+      })
+    },
+    // 鏍囬鏀瑰彉
+    changeTitle(e) {
+      this.setData({
+        flag: e.currentTarget.dataset.value
+      })
+    },
+    // 缂栬緫鎸夐挳
+    editNote(e) {
+      const note = e.currentTarget.dataset.note
+      this.setData({
+        submitType: "edit",
+        textvalue: note.content,
+        submitTitle: note.name,
+        noteId: note.id
+      })
+      this.openDialog()
+    },
+    // 缂栬緫绗旇鎺ュ彛
+    updateNote() {
+      const token = wx.getStorageSync('jsek-token')
+      if (!token) {
+        return wx.getUserProfile({
+          desc: '鐢ㄦ埛鐧诲綍',
+          success: (res) => {
+            console.log(res);
+          }
+        })
+      }
+      if (!this.data.submitTitle) {
+        return wx.showToast({
+          icon: 'error',
+          title: '璇峰~鍐欑瑪璁版爣棰�',
+        })
+      } else if (!this.data.textvalue) {
+        return wx.showToast({
+          icon: 'error',
+          title: '璇峰~鍐欑瑪璁板唴瀹�',
+        })
+      }
+      let query = {
+        id: this.data.noteId,
+        name: this.data.submitTitle,
+        description: 'string',
+        icon: 'string',
+        type: 'note',
+        content: this.data.textvalue,
+        newDataRequests: [],
+        updateDataRequests: []
+      }
+      app.MG.ugc.updateTopicMessage(query).then((res) => {
+        wx.showToast({
+          title: '缂栬緫鎴愬姛',
+        })
+        this.closeDialog()
+        this.getNoteList()
+      })
+      this.setData({
+        submitType: "new"
+      })
+    }
   }
 })

--
Gitblit v1.9.1