Procházet zdrojové kódy

!126 分享相关完善
Merge pull request !126 from puhui999/master

芋道源码 před 8 měsíci
rodič
revize
9616e660a6

+ 2 - 2
pages/chat/components/messageListItem.vue

@@ -241,7 +241,7 @@
     padding: 20rpx;
     color: #fff;
     background: linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient));
-    margin-top: 18px;
+    margin-top: 3px;
     margin-bottom: 9px;
     border-top-left-radius: 10px;
     border-bottom-right-radius: 10px;
@@ -249,7 +249,7 @@
     &.admin {
       background: #fff;
       color: #333;
-      margin-top: 18px;
+      margin-top: 3px;
       margin-bottom: 9px;
       border-radius: 0 10px 10px 10px;
     }

+ 7 - 8
pages/commission/goods.vue

@@ -76,13 +76,12 @@
     shareInfo: {},
   });
 
-  // TODO @puhui999:【分享】接入
   function onShareGoods(goodsInfo) {
     state.shareInfo = $share.getShareInfo(
       {
-        title: goodsInfo.title,
-        image: sheep.$url.cdn(goodsInfo.image),
-        desc: goodsInfo.subtitle,
+        title: goodsInfo.name,
+        image: sheep.$url.cdn(goodsInfo.picUrl),
+        desc: goodsInfo.introduction,
         params: {
           page: '2',
           query: goodsInfo.id,
@@ -90,10 +89,10 @@
       },
       {
         type: 'goods', // 商品海报
-        title: goodsInfo.title, // 商品标题
-        image: sheep.$url.cdn(goodsInfo.image), // 商品主图
-        price: goodsInfo.price[0], // 商品价格
-        original_price: goodsInfo.original_price, // 商品原价
+        title: goodsInfo.name, // 商品名称
+        image: sheep.$url.cdn(goodsInfo.picUrl), // 商品主图
+        price: fen2yuan(goodsInfo.price), // 商品价格
+        original_price: fen2yuan(goodsInfo.marketPrice), // 商品原价
       },
     );
     showShareModal();

+ 3 - 1
pages/commission/withdraw.vue

@@ -78,6 +78,7 @@
             limit="1"
             mode="grid"
             :imageStyles="{ width: '168rpx', height: '168rpx' }"
+            @success="(payload) => state.accountInfo.accountQrCodeUrl = payload.tempFilePaths[0]"
           />
         </view>
       </view>
@@ -161,13 +162,14 @@
 </template>
 
 <script setup>
-  import { computed, reactive, onBeforeMount } from 'vue';
+  import { computed, onBeforeMount, reactive } from 'vue';
   import sheep from '@/sheep';
   import accountTypeSelect from './components/account-type-select.vue';
   import { fen2yuan } from '@/sheep/hooks/useGoods';
   import TradeConfigApi from '@/sheep/api/trade/config';
   import BrokerageApi from '@/sheep/api/trade/brokerage';
   import DictApi from '@/sheep/api/system/dict';
+  import SLayout from '@/sheep/components/s-layout/s-layout.vue';
 
   const headerBg = sheep.$url.css('/static/img/shop/user/withdraw_bg.png');
   const statusBarHeight = sheep.$platform.device.statusBarHeight * 2;

+ 2 - 2
pages/goods/comment/add.vue

@@ -71,7 +71,7 @@
 <script setup>
   import sheep from '@/sheep';
   import { onLoad } from '@dcloudio/uni-app';
-  import { reactive, ref } from 'vue';
+  import { reactive } from 'vue';
   import OrderApi from '@/sheep/api/trade/order';
 
   const state = reactive({
@@ -111,7 +111,7 @@
    * @param commentIndex  当前评论的下标
    */
   function uploadSuccess(payload, commentIndex) {
-    state.commentList[commentIndex].picUrls = state.commentList[commentIndex].images;
+    state.commentList[commentIndex].picUrls = payload.tempFilePaths;
   }
 
   onLoad(async (options) => {

+ 3 - 4
pages/goods/point.vue

@@ -171,7 +171,6 @@
   }
 
   // 分享信息
-  // TODO puhui999: 下次 fix
   const shareInfo = computed(() => {
     if (isEmpty(unref(activity))) return {};
     return sheep.$platform.share.getShareInfo(
@@ -179,7 +178,7 @@
         title: activity.value.name,
         image: sheep.$url.cdn(state.goodsInfo.picUrl),
         params: {
-          page: '4',
+          page: '6',
           query: activity.value.id,
         },
       },
@@ -187,8 +186,8 @@
         type: 'goods', // 商品海报
         title: activity.value.name, // 商品标题
         image: sheep.$url.cdn(state.goodsInfo.picUrl), // 商品主图
-        price: state.goodsInfo.price, // 商品价格
-        marketPrice: state.goodsInfo.marketPrice, // 商品原价
+        price: (getShowPrice.value.price || 0) + ` + ${getShowPrice.value.point} 积分`, // 积分价格
+        marketPrice: fen2yuan(state.goodsInfo.marketPrice), // 商品原价
       },
     );
   });

+ 4 - 4
pages/goods/seckill.vue

@@ -137,11 +137,11 @@
 </template>
 
 <script setup>
-  import { reactive, computed, ref, unref } from 'vue';
+  import { computed, reactive, ref, unref } from 'vue';
   import { onLoad, onPageScroll } from '@dcloudio/uni-app';
   import sheep from '@/sheep';
   import { isEmpty, min } from 'lodash-es';
-  import { useDurationTime, formatGoodsSwiper, fen2yuan } from '@/sheep/hooks/useGoods';
+  import { fen2yuan, formatGoodsSwiper, useDurationTime } from '@/sheep/hooks/useGoods';
   import detailNavbar from './components/detail/detail-navbar.vue';
   import detailCellSku from './components/detail/detail-cell-sku.vue';
   import detailTabbar from './components/detail/detail-tabbar.vue';
@@ -214,8 +214,8 @@
         type: 'goods', // 商品海报
         title: activity.value.name, // 商品标题
         image: sheep.$url.cdn(state.goodsInfo.picUrl), // 商品主图
-        price: state.goodsInfo.price, // 商品价格
-        marketPrice: state.goodsInfo.marketPrice, // 商品原价
+        price: fen2yuan(state.goodsInfo.price), // 商品价格
+        marketPrice: fen2yuan(state.goodsInfo.marketPrice), // 商品原价
       },
     );
   });

+ 15 - 4
sheep/components/s-layout/s-layout.vue

@@ -60,12 +60,11 @@
   /**
    * 模板组件 - 提供页面公共组件,属性,方法
    */
-  import { computed, reactive, ref } from 'vue';
+  import { computed } from 'vue';
   import sheep from '@/sheep';
   import { isEmpty } from 'lodash-es';
-  import { onShow } from '@dcloudio/uni-app';
   // #ifdef MP-WEIXIN
-  import { onShareAppMessage } from '@dcloudio/uni-app';
+  import { onShareAppMessage, onShareTimeline, onShow } from '@dcloudio/uni-app';
   // #endif
 
   const props = defineProps({
@@ -191,7 +190,11 @@
   });
 
   // #ifdef MP-WEIXIN
-  // 微信小程序分享
+  uni.showShareMenu({
+    withShareTicket: true,
+    menus: ['shareAppMessage', 'shareTimeline'],
+  });
+  // 微信小程序分享好友
   onShareAppMessage(() => {
     return {
       title: shareInfo.value.title,
@@ -199,6 +202,14 @@
       imageUrl: shareInfo.value.image,
     };
   });
+  // 微信小程序分享朋友圈
+  onShareTimeline(() => {
+    return {
+      title: shareInfo.value.title,
+      query: shareInfo.value.path,
+      imageUrl: shareInfo.value.image,
+    };
+  });
   // #endif
 
   onShow(() => {

+ 12 - 6
sheep/platform/share.js

@@ -47,19 +47,18 @@ const getShareInfo = (
   // 配置分享链接地址
   shareInfo.link = buildSpmLink(query, shareConfig.linkAddress);
   // 配置页面地址带参数
-  shareInfo.path = buildSpmPath(query);
+  shareInfo.path = buildSpmPath();
 
   // 配置转发参数
   if (shareConfig.methods.includes('forward')) {
-    // TODO puhui999: forward 这块有点问题
     if (shareConfig.forwardInfo.title === '' || shareConfig.forwardInfo.image === '') {
-      console.log('请在平台设置中配置转发信息');
+      console.log('请在平台设置中配置默认转发信息');
     }
     // 设置自定义分享信息
     shareInfo.title = scene.title || shareConfig.forwardInfo.title;
     shareInfo.image = $url.cdn(scene.image || shareConfig.forwardInfo.image);
     shareInfo.desc = scene.desc || shareConfig.forwardInfo.subtitle;
-    shareInfo.path = buildSpmPath(scene.path, query);
+    shareInfo.path = buildSpmPath(query);
   }
 
   return shareInfo;
@@ -100,7 +99,7 @@ const buildSpmQuery = (params) => {
 const buildSpmPath = (query) => {
   // 默认是主页,页面 page,例如 pages/index/index,根路径前不要填加 /,
   // 不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面。scancode_time为系统保留参数,不允许配置
-  return `pages/index/index`;
+  return typeof query === 'undefined' ? `pages/index/index` : `pages/index/index?${query}`;
 };
 
 // 构造分享链接
@@ -148,7 +147,7 @@ const decryptSpm = (spm) => {
       shareParams.page = '/pages/goods/seckill';
       query = shareParamsArray[2].split(',');
       shareParams.query = {
-        id: query[1],
+        id: query[0],
       };
       break;
     case '5':
@@ -158,6 +157,13 @@ const decryptSpm = (spm) => {
         id: shareParamsArray[2],
       };
       break;
+    case '6':
+      // 积分商品
+      shareParams.page = '/pages/goods/point';
+      shareParams.query = {
+        id: shareParamsArray[2],
+      };
+      break;
   }
   shareParams.platform = platformMap[shareParamsArray[3] - 1];
   shareParams.from = fromMap[shareParamsArray[4] - 1];

+ 6 - 1
sheep/store/app.js

@@ -71,13 +71,18 @@ const app = defineStore({
         };
         this.platform = {
           share: {
-            methods: ['poster', 'link'],
+            methods: ['forward', 'poster', 'link'],
             linkAddress: 'http://127.0.0.1:3000', // TODO 芋艿:可以考虑改到 .env 那
             posterInfo: {
               user_bg: '/static/img/shop/config/user-poster-bg.png',
               goods_bg: '/static/img/shop/config/goods-poster-bg.png',
               groupon_bg: '/static/img/shop/config/groupon-poster-bg.png',
             },
+            forwardInfo: {
+              title: '',
+              image: '',
+              desc: '',
+            },
           },
           bind_mobile: 0,
         };