const app = getApp(); const licia = require('miniprogram-licia'); Page({ data: { active: 0, list: [] as any, HistoryId: '', pagination: { page: 1, pages: 1, count: 1, }, picTextStatus: 0, videoStatus: 0, config: {} as any, }, onLoad() { app.waitLogin({ type: [0, 1] }).then(() => { wx.ajax({ method: 'GET', url: '?r=zd/common/get-config', }).then((res) => { this.setData({ config: res, }); this.getConfig(); }); }); }, getConfig() { wx.ajax({ method: 'GET', url: '?r=zd/common/get-config', data: {}, }).then((res) => { this.setData({ picTextStatus: res.picTextStatus, videoStatus: res.videoStatus, active: res.picTextStatus == 0 ? 1 : 0, }); this.getList(); }); }, getList() { const { active, pagination } = this.data; if (active == 0) { this.getInfoList(); } else if (active == 1) { this.getVideoList(); } else if (active == 2) { this.getQuestionList(); } if (active == 0 && pagination.page == 1) { app.zdMpBehavior({ PageName: 'PG_PATIENTMYFAVORITES_KNOWLEDGEBASE' }); } if (active == 1 && pagination.page == 1) { app.zdMpBehavior({ PageName: 'PG_PATIENTMYFAVORITES_VIDEOCLASS' }); } if (active == 2 && pagination.page == 1) { app.zdMpBehavior({ PageName: 'PG_PATIENTMYFAVORITES_HEALTHQA' }); } }, getInfoList(newPage = 1) { wx.ajax({ method: 'GET', url: '?r=zd/pic-text/collection-list', data: { page: newPage, }, loading: true, }).then((res) => { res.list = res.list.map((item) => { return item; }); const list = res.page == 1 ? res.list : [...this.data.list, ...res.list]; this.setData({ list, pagination: { page: res.page, pages: res.pages, count: res.count, }, }); }); }, getVideoList(newPage = 1) { wx.ajax({ method: 'GET', url: '?r=zd/video/collection-list', data: { page: newPage, }, loading: true, }).then((res) => { res.list = res.list.map((item) => { return item; }); const list = res.page == 1 ? res.list : [...this.data.list, ...res.list]; this.setData({ list, pagination: { page: res.page, pages: res.pages, count: res.count, }, }); }); }, getQuestionList(newPage = 1) { wx.ajax({ method: 'GET', url: '?r=zd/health-question/collection-list', data: { page: newPage, }, loading: true, }).then((res) => { res.list = res.list.map((item) => { return item; }); const list = res.page == 1 ? res.list : [...this.data.list, ...res.list]; this.setData({ list, pagination: { page: res.page, pages: res.pages, count: res.count, }, }); }); }, handleStar(e) { const { id, index } = e.currentTarget.dataset; wx.ajax({ method: 'POST', url: '?r=zd/pic-text/compliment', data: { ContentId: id, }, loading: true, }).then(() => { this.setData({ [`list[${index}].IsCompliment`]: 1, [`list[${index}].ComplimentNum`]: Number(this.data.list[index].ComplimentNum) + 1, }); }); }, handleVideoStar(e: WechatMiniprogram.CustomEvent) { const { id, index } = e.currentTarget.dataset; wx.ajax({ method: 'POST', url: '?r=zd/video/compliment', data: { ContentId: id, }, loading: true, }).then(() => { this.setData({ [`list[${index}].ComplimentNum`]: Number(this.data.list[index].ComplimentNum) + 1, [`list[${index}].IsCompliment`]: 1, }); }); }, handleVideoPlay(e: WechatMiniprogram.CustomEvent) { const { id, index } = e.currentTarget.dataset; const { list } = this.data; list.map((item: any, i) => { if (item.play && i != index) { const ctx = wx.createVideoContext(`video${i}`); ctx.pause(); this.setData({ [`list[${index}].play`]: false, }); } }); this.setData({ [`list[${index}].play`]: true, }); wx.ajax({ method: 'POST', url: '?r=zd/video/view', data: { ContentId: id, }, }).then((res) => { this.setData({ HistoryId: res.HistoryId, }); }); }, handleVideo(e: WechatMiniprogram.CustomEvent) { const { index } = e.currentTarget.dataset; const context = wx.createVideoContext(`video${index}`); context.play(); }, handleVideoTime: licia.throttle(function (e: WechatMiniprogram.CustomEvent) { wx.ajax({ method: 'GET', url: '?r=zd/video/watch-duration', data: { HistoryId: this.data.HistoryId, WatchDuration: e.detail.currentTime, }, }).then((res) => { console.log('res: ', res); }); }, 5000), handleVideoPause(e: WechatMiniprogram.CustomEvent) { console.log(e); }, handleDetail(e: WechatMiniprogram.CustomEvent) { const { id } = e.currentTarget.dataset; if (this.data.config.picTextEbookStatus == 1) { const webviewUrl = encodeURIComponent( `${app.globalData.url}/zdcare/#/book?loginState=${app.globalData.loginState}&Id=${id}`, ); wx.navigateTo({ url: `/patient/pages/webview/index?url=${webviewUrl}`, }); } else { wx.navigateTo({ url: `/patient/pages/repositoryDetail/index?id=${id}`, }); } }, handleQuestionDetail(e) { const { id } = e.currentTarget.dataset; const webviewUrl = encodeURIComponent( `${app.globalData.url}/zdcare/#/info-detail?loginState=${app.globalData.loginState}&Id=${id}`, ); wx.navigateTo({ url: `/patient/pages/webview/index?url=${webviewUrl}`, }); }, handleVideoToggleSave(e: WechatMiniprogram.CustomEvent) { const { id, collect, index } = e.currentTarget.dataset; if (collect == 1) { wx.ajax({ method: 'POST', url: '?r=zd/video/cancel-collection', data: { ContentId: id, }, loading: true, }).then(() => { wx.showToast({ title: '取消收藏', icon: 'none', }); this.setData({ [`list[${index}].IsCollect`]: 0, [`list[${index}].CollectionPeopleNum`]: Number(this.data.list[index].CollectionPeopleNum) - 1, }); }); } else { wx.ajax({ method: 'POST', url: '?r=zd/video/collection', data: { ContentId: id, }, loading: true, }).then(() => { wx.showToast({ title: '收藏成功', icon: 'none', }); this.setData({ [`list[${index}].IsCollect`]: 1, [`list[${index}].CollectionPeopleNum`]: Number(this.data.list[index].CollectionPeopleNum) + 1, }); }); } }, onReachBottom() { const { page, pages } = this.data.pagination; const { active } = this.data; if (pages > page) { if (active == 0) { this.getInfoList(page + 1); } else { this.getVideoList(page + 1); } } }, tabChange(e) { this.setData({ active: e.detail.index, CateId: '', Search: '', list: [], pagination: { page: 1, pages: 1, count: 1, }, }); this.getList(); }, onShareAppMessage(e: any) { if (e.from === 'button') { const { id, index, type } = e.target.dataset; const { list } = this.data; const { Title, TitlePicLink, ImageUrl } = list[index]; if (type == 'info') { wx.ajax({ method: 'POST', url: '?r=zd/pic-text/share', data: { ContentId: id }, }).then(() => { this.setData({ [`list[${index}].ShareNum`]: Number(this.data.list[index].ShareNum) + 1, }); }); return { title: Title, path: `/patient/pages/repositoryDetail/index?id=${id}`, imageUrl: TitlePicLink, }; } else { wx.ajax({ method: 'POST', url: '?r=zd/video/share', data: { ContentId: id }, }).then(() => { this.setData({ [`list[${index}].ShareNum`]: Number(this.data.list[index].ShareNum) + 1, }); }); return { title: Title, path: `/patient/pages/repository/index?id=${id}&active=1&title=${Title}`, imageUrl: ImageUrl, }; } } else { return { title: '知识库', path: '/patient/pages/repository/index', }; } }, });