hbchen 1 year ago
parent
commit
c03292632c
5 changed files with 94 additions and 3 deletions
  1. 1 1
      index.html
  2. 4 0
      src/api/api.js
  3. 11 2
      src/views/report/reportDetail.vue
  4. 9 0
      src/views/reportEn/detail.vue
  5. 69 0
      src/views/utils/wxShare.js

+ 1 - 1
index.html

@@ -3,7 +3,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover">
-    <title>弘则研报</title>
+    <title>研报</title>
     <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
     <script src="/jquery-3.6.0.min.js"></script>
     <script src="/base_config.js"></script>

+ 4 - 0
src/api/api.js

@@ -16,4 +16,8 @@ export const reportDetail = params => {
  */
 export const reportEnDetail = params => {
   return get('/english_report/share/detail',params)
+}
+
+export const getWxSign = params=>{
+  return get('/wechat/open/getWxSign', params, 1);
 }

+ 11 - 2
src/views/report/reportDetail.vue

@@ -156,7 +156,10 @@ import {
   reportDetail,
 } from "@/api/api.js";
 import _ from 'lodash';
+import wxShare from '../utils/wxShare.js';
+
 import AudioPlay from './audioPlay.vue';
+
 export default {
   components: { AudioPlay },
   data() {
@@ -259,9 +262,14 @@ export default {
 
     async getreportdetail() {
       const { Data,Ret  } = await reportDetail({ ReportCode: this.id });
+        document.title=(Data && Data.H5ShareName) || "研报"
         if (Ret !== 200) return
-        console.log('data',Data)
-
+        // console.log('data',Data)
+        let H5ShareName = Data.H5ShareName
+        let H5ReportShareImg = Data.H5ReportShareImg
+        let wxShareTitle=!!Data.Hz?
+        '【第'+Data.Report.Stage+'期|FICC'+'】'+Data.Report.Title+'('+Data.Report.CreateTime.substring(5,7)+Data.Report.CreateTime.substring(8,10)+')':
+                          Data.Report.Title+'('+Data.Report.CreateTime.substring(5,7)+Data.Report.CreateTime.substring(8,10)+')'
         this.reportInfo = Data.Report;
         this.Disclaimer = Data.Disclaimer||'';
         this.isshow = true;
@@ -280,6 +288,7 @@ export default {
             wx.previewImage({ current: curImageSrc, urls: imgArray });
           }
         });
+        wxShare(document.location.href,H5ShareName || document.title,wxShareTitle,H5ReportShareImg,0);
     },
 
     /*内容分割*/

+ 9 - 0
src/views/reportEn/detail.vue

@@ -112,6 +112,7 @@ import {
   reportEnDetail,
 } from "@/api/api.js";
 import _ from 'lodash';
+import wxShare from '../utils/wxShare.js'
 export default {
   data() {
     return {
@@ -197,7 +198,14 @@ export default {
 
     async getreportdetail() {
       const { Data,Ret  } = await reportEnDetail({ ReportCode: this.id,ShareEmail:Number(this.$route.query.ShareEmail)||0 });
+        document.title=(Data && Data.H5ShareName) || "研报"
         if (Ret !== 200) return
+        // console.log('data',Data)
+        let H5ShareName = Data.H5ShareName
+        let H5ReportShareImg = Data.H5ReportShareImg
+        let wxShareTitle=!!Data.Hz?
+        '【第'+Data.Report.Stage+'期|FICC'+'】'+Data.Report.Title+'('+Data.Report.CreateTime.substring(5,7)+Data.Report.CreateTime.substring(8,10)+')':
+                          Data.Report.Title+'('+Data.Report.CreateTime.substring(5,7)+Data.Report.CreateTime.substring(8,10)+')'
 
         this.reportInfo = Data.Report;
         this.isshow = true;
@@ -216,6 +224,7 @@ export default {
             wx.previewImage({ current: curImageSrc, urls: imgArray });
           }
         });
+        wxShare(document.location.href,H5ShareName || document.title,wxShareTitle,H5ReportShareImg,0);
     },
 
     /*内容分割*/

+ 69 - 0
src/views/utils/wxShare.js

@@ -0,0 +1,69 @@
+import {getWxSign} from '@/api/api';
+// import utils from '@/utils/utils';
+export default function wxShare(shareurl,title,desc,imgurl,hide){
+  getWxSign({
+    // Url: decodeURIComponent(utils.isIos() ? window.entryUrl : window.location.href)
+    Url:window.location.href
+  }).then((res)=>{
+    if( res.Ret===200 ){
+      wx.config({
+        debug:false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
+        appId:res.Data.AppId, // 必填,企业号的唯一标识,此处填写企业号corpid
+        timestamp:res.Data.Timestamp, // 必填,生成签名的时间戳
+        nonceStr:res.Data.NonceStr, // 必填,生成签名的随机串
+        signature:res.Data.Signature,// 必填,签名,见附录1
+        jsApiList:['updateTimelineShareData',//1.4.0的分享接口,注意:使用新版本的分享功能,一定要在该列表加上对应的老版本功能接口,否则新接口不起作用
+        'updateAppMessageShareData',//1.4.0的分享接口,注意:使用新版本的分享功能,一定要在该列表加上对应的老版本功能接口,否则新接口不起作用
+        'onMenuShareAppMessage',//老版本分享接口。
+        'onMenuShareTimeline',
+        'hideOptionMenu',
+        'hideMenuItems']
+      });
+    }else {
+      console.log(res)
+    }
+    if( hide==1 ){
+      wx.ready(function(){
+        wx.hideOptionMenu();
+      });
+    }else{
+      
+      wx.ready(function(){
+        // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
+        wx.onMenuShareTimeline({
+          title:title, // 分享标题
+          link:shareurl, // 分享链接,该链接域名必须与当前企业的可信域名一致
+          imgUrl:imgurl, // 分享图标
+          success: function () {
+            // 用户确认分享后执行的回调函数
+          },
+          cancel: function () {
+            // 用户取消分享后执行的回调函数
+          }
+        });
+        wx.onMenuShareAppMessage({
+          title:title, // 分享标题
+          desc:desc, // 分享描述
+          link:shareurl, // 分享链接,该链接域名必须与当前企业的可信域名一致
+          imgUrl:imgurl, // 分享图标
+          type:'', // 分享类型,music、video或link,不填默认为link
+          dataUrl:'', // 如果type是music或video,则要提供数据链接,默认为空
+          success:function () {
+            // 用户确认分享后执行的回调函数
+            console.log( "当前链接:"+shareurl );
+          },
+          cancel: function () {
+            // 用户取消分享后执行的回调函数
+          }
+        });
+        wx.hideMenuItems({
+          menuList: ['menuItem:share:qq','menuItem:share:weiboApp','menuItem:share:facebook','menuItem:share:QZone','menuItem:openWithSafari','menuItem:share:email'] // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3
+        });
+      });
+      
+      wx.error(function(res){
+        console.log(res);
+      });
+    }
+  });
+}