// 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, noList: 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() { const submitTitle = this.data.submitTitle.trim(); const textvalue = this.data.textvalue.trim(); if (!submitTitle.length) { return wx.showToast({ icon: "error", title: "请填写笔记标题", }); } else if (!textvalue.length) { 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, }); }, changeNoList() { this.setData({ noList: true, }); }, // 获取笔记列表 async getNoteList() { if (!this.data.isMore) { this.setData({ loading: true, }); } this.setData({ noList: false, }); 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) => { if (!res.datas.length) { return this.setData({ loading: false, noList: true, noteList: res.datas, }); } // 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, noList: false, }); }); }, // 新建笔记接口 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如果为true,这就是输入框的内容 confirmColor: "#ff6c00", cancelColor: "#949494", 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, }); console.log(note.name, this.data.submitTitle); this.setData({ showNoteDialog: true, }); }, // 编辑笔记接口 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", }); }, }, });