123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296 |
- // 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(/\<span class="fontSizeMax"/gi, '<span"');
- break;
- case '中':
- temp.DOCHTMLCON = temp.DOCHTMLCON.replace(/\<span class="fontSize"/gi, '<span');
- break;
- case '小':
- temp.DOCHTMLCON = temp.DOCHTMLCON.replace(/\<span class="fontSizeSmall"/gi, '<span');
- break;
- }
- switch (e.currentTarget.dataset.size) {
- case '大':
- temp.DOCHTMLCON = temp.DOCHTMLCON.replace(/\<span/gi, '<span class="fontSizeMax"');
- break;
- case '中':
- temp.DOCHTMLCON = temp.DOCHTMLCON.replace(/\<span/gi, '<span class="fontSize"');
- break;
- case '小':
- temp.DOCHTMLCON = temp.DOCHTMLCON.replace(/\<span/gi, '<span class="fontSizeSmall"');
- break;
- }
- this.setData({
- fontSize: e.currentTarget.dataset.size,
- articles: temp
- })
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad(options) {
- this.setData({
- windowsWidth: wx.getSystemInfoSync().windowWidth * 0.85 + 'px'
- })
- // 是否显示附件下载
- if (options.isFile == 'false') {
- this.setData({
- isFile: false
- })
- }
- // 图文解读
- if (options.isPic) {
- wx.request({
- url: 'https://data.cqna.gov.cn/mini/hlw/info?channelId=' + options.channelId + '&docId=' + options.docId,
- method: 'GET',
- success: res => {
- res.data.data.DOCPUBTIME = res.data.data.DOCPUBTIME.split(" ")[0];
- res.data.data.DOCHTMLCON = res.data.data.DOCHTMLCON.replace(/\<span/gi, '<span class="fontSize"');
- // 存在多个隐藏图片,取最后一张图片
- if (res.data.data.THUMBFILES.indexOf(",") >= 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(/\<span/gi, '<span class="fontSize"');
- // let text = res1.data.data.DOCHTMLCON.replace(/<[^>]+>/g, "");
- res1.data.data.DOCHTMLCON = res1.data.data.DOCHTMLCON.replace(/<img [^>]*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(/\<span/gi, '<span class="fontSize"');
- res.data.data.DOCHTMLCON = res.data.data.DOCHTMLCON.replace(/<img [^>]*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 = /<a[^>]*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(){
- }
- })
|