// pages/publics/governmentArticlesDetail/governmentArticlesDetail.js import { imgUrl } from "../../api/request" Page({ /** * 页面的初始数据 */ data: { // 屏幕宽度 windowsWidth: '', // 图片前缀 imgUrl: imgUrl, // 文章内容 articles: '', // 文本字号大小 fontSize: '中', // 是否播放语音 isPlay: false, // 是否存在文件 isFile: true, // 文件路径前缀 fileUrlPrefix: '', // 文件列表 fileList: [], zcyw: [], }, chooseFontSize(e) { let temp = this.data.articles; switch (this.data.fontSize) { case '大': temp.DOCHTMLCON = temp.DOCHTMLCON.replace(/\ { res.data.data.DOCPUBTIME = res.data.data.DOCPUBTIME.split(" ")[0]; res.data.data.DOCHTMLCON = res.data.data.DOCHTMLCON.replace(/\= 0) { let index = res.data.data.THUMBFILES.lastIndexOf(",") res.data.data.THUMBFILES = res.data.data.THUMBFILES.substring(index + 1) } // 替换图片路径 res.data.data.DOCHTMLCON = res.data.data.DOCHTMLCON.replace(/src="[^"]+"/gi, 'style="width:' + this.data.windowsWidth + '" src="' + options.url + res.data.data.THUMBFILES + '"'); // 替换特定图片宽度样式 res.data.data.DOCHTMLCON = res.data.data.DOCHTMLCON.replace('style="width:600px;"', 'style="width:' + this.data.windowsWidth + '"') console.log(res.data.data); this.setData({ fileUrlPrefix: options.url, articles: res.data.data, fileList: res.data.data.DOCATTACHFILEFIELD, zcyw:res.data.data.ZCYW }) } }) return } if (!options.docId) { wx.request({ url: 'https://data.cqna.gov.cn/mini/hlw/send?page=1&limit=1&channelId=' + options.channelId, method: 'GET', success: res => { let url = res.data.data.DATA[0].DOCPUBURL.substring(0, res.data.data.DATA[0].DOCPUBURL.lastIndexOf("/") + 1) wx.request({ url: 'https://data.cqna.gov.cn/mini/hlw/info?channelId=' + res.data.data.DATA[0].CHNLID + '&docId=' + res.data.data.DATA[0].DOCID, method: 'GET', success: res1 => { if (res1.data.data.DOCHTMLCON == undefined) { res1.data.data.DOCHTMLCON = res1.data.data.CONTENT; res1.data.data.DOCTITLE = res1.data.data.TITLE; res1.data.data.DOCSOURCENAME = res1.data.data.ORGANCAT_DISP; } res1.data.data.DOCPUBTIME = res1.data.data.DOCPUBTIME.split(" ")[0]; res1.data.data.DOCHTMLCON = res1.data.data.DOCHTMLCON.replace(/\]+>/g, ""); res1.data.data.DOCHTMLCON = res1.data.data.DOCHTMLCON.replace(/]*src="([^'"]+)[^>]*>/gi, function (match, capture) { // 替换小图片地址 if (capture.split("/").length > 1) { return match.replace(/src=['"]([^'"]+)[^>]/gi, 'src="' + 'https://www.cqna.gov.cn' + capture + '"'); } return match.replace(/src=['"]([^'"]+)[^>]/gi, 'src="' + url + capture + '"'); }); if (res1.data.data.DOCATTACHFILEFIELD.length > 0) { this.setData({ fileList: res1.data.data.DOCATTACHFILEFIELD }) } else { this.getAhrefs(res1.data.data.DOCHTMLCON); } console.log(res1.data.data); this.setData({ fileUrlPrefix: url, articles: res1.data.data, zcyw:res1.data.data.ZCYW }) } }) } }) } else { wx.request({ url: 'https://data.cqna.gov.cn/mini/hlw/info?channelId=' + options.channelId + '&docId=' + options.docId, method: 'GET', success: res => { res.data.data.DOCTITLE = res.data.data.DOCTITLE ? res.data.data.DOCTITLE : res.data.data.TITLE; res.data.data.DOCPUBTIME = res.data.data.DOCPUBTIME.split(" ")[0]; res.data.data.DOCHTMLCON = res.data.data.DOCHTMLCON?res.data.data.DOCHTMLCON:res.data.data.CONTENT; res.data.data.DOCHTMLCON = res.data.data.DOCHTMLCON.replace(/\]*src="([^'"]+)[^>]*>/gi, function (match, capture) { // 替换小图片地址 if (capture.split("/").length > 1) { return match.replace(/src=['"]([^'"]+)[^>]/gi, 'src="' + 'https://www.cqna.gov.cn' + capture + '"'); } return match.replace(/src=['"]([^'"]+)[^>]/gi, 'src="' + options.url + capture + '"'); }); if (res.data.data.DOCATTACHFILEFIELD.length > 0) { this.setData({ fileList: res.data.data.DOCATTACHFILEFIELD }) } else { this.getAhrefs(res.data.data.DOCHTMLCON); } console.log(res.data.data); this.setData({ fileUrlPrefix: options.url, articles: res.data.data, zcyw:res.data.data.ZCYW }) } }) } }, audioPlay() { if (!this.data.isPlay) { let that = this; that.innerAudioContext = wx.createInnerAudioContext({ useWebAudioImplement: false }) that.innerAudioContext.src = 'https://www.cqna.gov.cn/voice_assistant/2022-11-28/a05-60ff109e2a32_10281519.mp3'; that.innerAudioContext.play() } else { this.innerAudioContext.pause(); } this.setData({ isPlay: !this.data.isPlay }) }, downloadFile(e) { wx.downloadFile({ url: this.data.fileUrlPrefix + e.currentTarget.dataset.url, success: function (res) { if (res.statusCode === 200) { let filename = res.tempFilePath; let fileType = filename.split('.').pop(); wx.openDocument({ filePath: res.tempFilePath, fileType: fileType, showMenu: true, // 关键,这里开启预览页面的右上角菜单,才能另存为 }); } else { wx.showToast({ title: '失败', }); } }, }); }, getAhrefs(content) { let fileTemp = []; let temp; let regex = /]*href=['"]([^"]*)['"][^>]*>(.*?)<\/a>/g; while (regex.exec(content) != null) { temp = { APPDESC: RegExp.$2, APPFILE: RegExp.$1.substring(RegExp.$1.lastIndexOf('/') + 1, RegExp.$1.length) } } fileTemp.push(temp); this.setData({ fileList: fileTemp }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { if (this.innerAudioContext) { this.innerAudioContext.stop(); //暂停音频 } }, /** * 生命周期函数--监听页面卸载 */ onUnload() { if (this.innerAudioContext) { this.innerAudioContext.stop(); //暂停音频 } }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { return { title: this.data.articles.DOCTITLE }; }, goDetail(){ } })