shenxin 4 年 前
コミット
da32e5db0e

+ 5 - 0
package-lock.json

@@ -1166,6 +1166,11 @@
         "vue-template-compiler": "^2.6.10"
       }
     },
+    "@dcloudio/uni-ui": {
+      "version": "1.2.12",
+      "resolved": "https://registry.npmjs.org/@dcloudio/uni-ui/-/uni-ui-1.2.12.tgz",
+      "integrity": "sha512-zRYDEJTbeGPg5yE3ktX0JGkVEMbXaICnGT8LHAb3KugkNPHWKTh3FH3u/NESxXdKB6w+tYBVlhqAtQLYgE6Y4Q=="
+    },
     "@dcloudio/vue-cli-plugin-hbuilderx": {
       "version": "2.0.0-30520210106003",
       "resolved": "https://registry.npmjs.org/@dcloudio/vue-cli-plugin-hbuilderx/-/vue-cli-plugin-hbuilderx-2.0.0-30520210106003.tgz",

+ 1 - 0
package.json

@@ -56,6 +56,7 @@
     "@dcloudio/uni-quickapp-native": "^2.0.0-29820201110001",
     "@dcloudio/uni-quickapp-webview": "^2.0.0-29820201110001",
     "@dcloudio/uni-stat": "^2.0.0-29820201110001",
+    "@dcloudio/uni-ui": "^1.2.12",
     "@vue/shared": "^3.0.0",
     "core-js": "^3.6.5",
     "flyio": "^0.6.2",

+ 1 - 1
src/App.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2021-01-25 11:32:04
- * @LastEditTime: 2021-03-29 14:46:24
+ * @LastEditTime: 2021-04-01 14:08:44
  * @LastEditors: Please set LastEditors
  * @Description: In User Settings Edit
  * @FilePath: \rebatedine-mini\src\App.vue

+ 3 - 3
src/api/request.js

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2021-01-25 11:32:04
- * @LastEditTime: 2021-03-29 14:54:29
+ * @LastEditTime: 2021-04-01 15:56:04
  * @LastEditors: Please set LastEditors
  * @Description: In User Settings Edit
  * @FilePath: \rebatedine-mini\src\api\request.js
@@ -14,9 +14,9 @@ import { USER_TOKEN } from '../store/storageKeys'
 
 export default {
   config: {
-    // baseUrl: 'http://localhost:18333/',
+    // baseUrl: 'http://192.168.12.138:18333/',
     baseUrl:
-      process.env.NODE_ENV === 'development1'
+      process.env.NODE_ENV === 'development'
         ? 'https://apitest.topboom0912.com/bwc/'
         : 'https://api.qcbwc.cn/',
     data: '',

+ 8 - 1
src/api/userApi.js

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2021-01-25 11:32:04
- * @LastEditTime: 2021-03-18 16:16:43
+ * @LastEditTime: 2021-04-01 15:09:34
  * @LastEditors: Please set LastEditors
  * @Description: In User Settings Edit
  * @FilePath: \rebatedine-mini\src\api\userApi.js
@@ -52,3 +52,10 @@ export const getOrderList = data => {
     data
   })
 }
+
+export const getUserActivityRecord = data => {
+  return ajax.get({
+    url: 'mobile/user/activity/record',
+    data
+  })
+}

+ 1 - 1
src/components/activityCard.vue

@@ -33,7 +33,7 @@
           <block v-if="status * 1 === 1">
             <view class="u-primary-color u-text-center u-font-20 line-28">剩余{{value.join_count - value.join_number}}</view>
             <button class="join-btn u-m-t-2 u-font-22 line-32"
-                    @click.stop="signUp">参与报名</button>
+                    @click.stop="signUp">我要报名</button>
           </block>
           <block v-if="status * 1 === 2">
             <image class="already-img"

+ 19 - 4
src/components/activityFlow.vue

@@ -1,6 +1,16 @@
+<!--
+ * @Author: your name
+ * @Date: 2021-01-26 15:45:31
+ * @LastEditTime: 2021-04-01 13:50:26
+ * @LastEditors: Please set LastEditors
+ * @Description: In User Settings Edit
+ * @FilePath: \rebatedine-mini\src\components\activityFlow.vue
+-->
 <template>
   <view class="activity-flow-main">
-    <view class="u-main-color bold u-font-34">活动流程</view>
+    <image src="@/static/common/activity-flow.png"
+           mode="widthFix" />
+    <!-- <view class="u-main-color bold u-font-34">活动流程</view>
     <view class="flow-body u-flex u-m-t-18 u-m-l-14">
       <view class="flow-item u-flex">
         <image class="flow-image" src="../static/common/icon_numbei_1.png"/>
@@ -38,14 +48,19 @@
       <text class="u-content-color">提示:返利金额将在</text>
       <text class="u-primary-color">提交活动资料后的1天内</text>
       <text class="u-content-color">到账</text>
-    </view>
+    </view> -->
   </view>
 </template>
 
 <style lang="scss" scoped>
 .activity-flow-main {
-  padding: 40px 40px 20px 28px;
+  padding: 40rpx 0 40rpx 0;
+  display: flex;
+  justify-content: center;
   background-color: #fff;
+  image {
+    width: 694rpx;
+  }
   .flow-item {
     .flow-image {
       margin-right: 4px;
@@ -53,7 +68,7 @@
       height: 86px;
     }
     .flow-text {
-      @include lineHeight(13px)
+      @include lineHeight(13px);
     }
   }
   .flow-line {

+ 198 - 0
src/components/activityJoinDialog.vue

@@ -0,0 +1,198 @@
+<!--
+ * @Author: your name
+ * @Date: 2021-04-01 08:47:52
+ * @LastEditTime: 2021-04-01 14:18:50
+ * @LastEditors: Please set LastEditors
+ * @Description: In User Settings Edit
+ * @FilePath: \rebatedine-mini\src\components\activityJoinDialog.vue
+-->
+<template>
+  <view class="dialog"
+        catchtouchmove>
+    <view class="container">
+      <text class="title">{{title}}</text>
+      <view :class="'content '  + platClassName">
+        <text>{{shopName}}</text>
+        <view class="content-steps">
+          <view class="steps-item"
+                v-for="(text,index) in steps"
+                :key="index">
+            <view class="item-content">
+              <view :class="'point ' + platClassName"></view>
+              <text class="text">{{text}}</text>
+            </view>
+            <view :class="index === 0 ? 'line line-top' : (index === steps.length -1 ? 'line line-bottom' : 'line line-middle')"></view>
+          </view>
+        </view>
+      </view>
+      <view :class="'button ' + platClassName"
+            @click="$emit('onOpen')">
+        <image />
+        <text>{{buttonText}}</text>
+      </view>
+    </view>
+    <image src="@/static/common/icon-close.png"
+           mode="scaleToFill"
+           class="dialog-close"
+           @click="onClose" />
+  </view>
+</template>
+<script>
+export default {
+  props: {
+    shopName: {
+      default: '慕玛披萨(高新店)'
+    },
+    title: {
+      default: '标题'
+    },
+    steps: {
+      default: ['前往饿了么小程序或APP', '前往饿了么小程序或APP', '前往饿了么小程序或APP']
+    },
+    platType: {
+      default: 9
+    }
+  },
+  components: {
+  },
+  methods: {
+    onClose () {
+      this.$emit('onClose')
+    }
+  },
+  computed: {
+    platClassName () {
+      return this.platType === 8 ? 'ele' : 'mt'
+    },
+    buttonText () {
+      return this.platType === 8 ? '去饿了么搜索进店' : '去美团搜索进店'
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.dialog {
+  position: fixed;
+  width: 100%;
+  height: 100%;
+  z-index: 101;
+  background: rgba(0, 0, 0, 0.75);
+  box-shadow: 0px 4px 10px 0px rgba(51, 51, 51, 0.2);
+  top: 0;
+  padding: 56rpx;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  .container {
+    background: #ffffff;
+    border-radius: 8px;
+    padding: 32rpx;
+    width: 100%;
+    .title {
+      width: 100%;
+      display: block;
+      text-align: center;
+      font-size: 36rpx;
+      font-weight: 600;
+    }
+    .content.ele {
+      background: #f1f5f6;
+    }
+    .content.mt {
+      background: #f6f5ee;
+    }
+    .content {
+      margin-top: 32rpx;
+      border-radius: 4px;
+      padding: 20rpx 32rpx 0 32rpx;
+      .content-steps {
+        margin-top: 28rpx;
+        .steps-item {
+          position: relative;
+          .item-content {
+            display: flex;
+            align-items: flex-start;
+            padding-bottom: 32rpx;
+            .mt {
+              background: #fed34e;
+            }
+            .ele {
+              background: #1f9afd;
+            }
+            .point {
+              border-radius: 8px;
+              width: 16rpx;
+              height: 16rpx;
+              margin-top: 16rpx;
+              z-index: 99;
+            }
+            .text {
+              margin-left: 16rpx;
+              font-size: 34rpx;
+              font-weight: 400;
+              color: #212121;
+            }
+          }
+          .line-top {
+            top: 16rpx;
+            bottom: 0;
+          }
+          .line-middle {
+            top: 0;
+            bottom: 0;
+          }
+          .line-bottom {
+            top: 0;
+            height: 16rpx;
+          }
+          .line {
+            position: absolute;
+            width: 4rpx;
+            left: 6rpx;
+            background-color: #cccccc;
+          }
+        }
+      }
+    }
+    .button.ele {
+      background: #1f9afd;
+      color: #ffffff;
+      image {
+        background-image: url('@/static/common/icon-ele.png');
+        background-size: 100%;
+      }
+    }
+    .button.mt {
+      background: #fed34e;
+      color: #212121;
+      image {
+        background-image: url('@/static/common/icon-mt.png');
+        background-size: 100%;
+      }
+    }
+    .button {
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      margin-top: 30rpx;
+      height: 96rpx;
+      border-radius: 48px;
+      font-size: 34rpx;
+      font-weight: 400;
+      image {
+        width: 32rpx;
+        height: 32rpx;
+        margin-right: 16rpx;
+      }
+    }
+  }
+  .dialog-close {
+    display: block;
+    margin-top: 64rpx;
+    width: 64rpx;
+    height: 64rpx;
+  }
+}
+</style>

+ 32 - 1
src/main.js

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2021-01-25 11:32:04
- * @LastEditTime: 2021-03-19 09:40:02
+ * @LastEditTime: 2021-04-01 08:41:05
  * @LastEditors: Please set LastEditors
  * @Description: In User Settings Edit
  * @FilePath: \rebatedine-mini\src\main.js
@@ -43,6 +43,37 @@ Vue.mixin({
     }
   },
   methods: {
+    dealJumpInfo (banner) {
+      switch (banner.jump_type * 1) {
+        case 1:
+          uni.navigateTo({
+            url: `/pagesSub/other/webView?url=${banner.jump_content}`
+          })
+          break
+        case 2:
+          this.$store.dispatch('toOtherApplte', banner.jump_content)
+          break
+        case 3:
+          uni.navigateTo({
+            url: `/pagesSub/activity/activityDetail?id=${banner.jump_content}`
+          })
+          break
+        case 4:
+          console.log('jump_content', banner.jump_content)
+          this.$store.commit('changeCateId', banner.jump_content)
+          uni.switchTab({
+            url: '/pages/classification'
+          })
+          break
+        case 5:
+          this.$store.commit('changeCateId', banner.jump_content)
+          uni.navigateTo({
+            url: '/pagesSub/other/noviceStrategy'
+          })
+          break
+        default:
+      }
+    },
     dealOptions (options) {
       let option = options
       if (Object.prototype.hasOwnProperty.call(option, 'scene')) {

+ 1 - 0
src/pages.json

@@ -1,5 +1,6 @@
 {
   "easycom": {
+    "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue",
     "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
   },
   "pages": [

+ 55 - 49
src/pages/index.vue

@@ -22,10 +22,18 @@
           </u-swiper>
         </view>
       </view>
-      <view class="activity-flow">
+      <view class="activity-flow"
+            :style="{
+                paddingTop: `${logoTop}rpx`
+              }">
         <activity-flow></activity-flow>
       </view>
-      <view class="activity-top">
+      <view class="activity-top"
+            v-if="homeMiniPro.length > 0">
+        <view class="u-flex banner-title">
+          <text class="title">天天抢红包</text>
+          <text class="tips">先领券再参与活动</text>
+        </view>
         <image v-for="(item,index) in homeMiniPro"
                :src="item.img"
                :key="index"
@@ -33,7 +41,7 @@
                @click="dealJumpInfo(item)" />
       </view>
     </view>
-    <view class="index-body u-m-t-56">
+    <view class="index-body u-m-t-16">
       <u-sticky :enable="enable"
                 offset-top="0"
                 h5-nav-height="0"
@@ -52,8 +60,10 @@
             }">
             首页
           </view>
-          <view class="index-tabs u-flex u-col-bottom u-row-between">
-            <u-tabs :is-scroll="false"
+          <view class="index-tabs u-flex u-col-bottom">
+            <text class="title">全城返利餐</text>
+            <text class="tips">每门店单平台每天只能报名1次</text>
+            <!-- <u-tabs :is-scroll="false"
                     :list="tabList"
                     :current="currentTab"
                     height="44"
@@ -73,7 +83,7 @@
               }"
                     @change="tabsChange">
             </u-tabs>
-            <view class="u-font-22 u-content-color">每门店单平台每天只能报名1次</view>
+            <view class="u-font-22 u-content-color">每门店单平台每天只能报名1次</view> -->
           </view>
         </view>
       </u-sticky>
@@ -125,7 +135,7 @@ export default {
       isLocation: false,
       enable: true,
       isSticky: false,
-      firstHeight: 568,
+      firstHeight: 576,
       navTitleStyle: {
         paddingTop: 0,
         paddingBottom: 0,
@@ -152,9 +162,6 @@ export default {
     homeMiniPro () {
       return this.$store.state.home_minipro
     },
-    navHeight () {
-      return ((uni.getMenuButtonBoundingClientRect().top) + (uni.getMenuButtonBoundingClientRect().height - 22) / 2)
-    },
     logoTop () {
       return ((uni.getMenuButtonBoundingClientRect().top) + (uni.getMenuButtonBoundingClientRect().height - 22) / 2) * 2
     }
@@ -270,7 +277,6 @@ export default {
     },
     unStickyFixed () {
       this.isSticky = false
-      // this.firstHeight = 568
       this.navTitleStyle = {
         paddingTop: 0,
         paddingBottom: 0,
@@ -290,42 +296,11 @@ export default {
       const banner = this.bannerList[index]
       this.dealJumpInfo(banner)
     },
-    dealJumpInfo (banner) {
-      switch (banner.jump_type * 1) {
-        case 1:
-          uni.navigateTo({
-            url: `/pagesSub/other/webView?url=${banner.jump_content}`
-          })
-          break
-        case 2:
-          this.$store.dispatch('toOtherApplte', banner.jump_content)
-          break
-        case 3:
-          uni.navigateTo({
-            url: `/pagesSub/activity/activityDetail?id=${banner.jump_content}`
-          })
-          break
-        case 4:
-          console.log('jump_content', banner.jump_content)
-          this.$store.commit('changeCateId', banner.jump_content)
-          uni.switchTab({
-            url: '/pages/classification'
-          })
-          break
-        case 5:
-          this.$store.commit('changeCateId', banner.jump_content)
-          uni.navigateTo({
-            url: '/pagesSub/other/noviceStrategy'
-          })
-          break
-        default:
-      }
-    },
     updateHeightIfNeeded () {
-      let height = 568
+      let height = (102 + 133) * 2 + this.logoTop
       const count = this.$store.state.home_minipro.length
       if (count > 0) {
-        height += 186 * count + (count - 1) * 16 + 64
+        height += 178 * count + (count - 1) * 16 + 158 + 16
       }
       if (this.firstHeight !== height) {
         this.firstHeight = height
@@ -361,7 +336,7 @@ export default {
     opacity: 0;
   }
   .index-header {
-    height: 314px;
+    // height: 314px;
     background: url('~@/static/common/bg_sy.png') no-repeat center top;
     background-size: cover;
     transition: height 2s;
@@ -372,7 +347,7 @@ export default {
       transition: width 2s;
       .index-logo {
         margin-bottom: 40px;
-        padding-top: 6px;
+        // padding-top: 6px;
         text-align: center;
         image {
           width: 88px;
@@ -384,22 +359,53 @@ export default {
     }
   }
   .activity-flow {
-    padding-top: 36px;
     background-color: #fff;
   }
   .activity-top {
-    margin: 36rpx 0 0 0;
+    margin-top: 16rpx;
+    padding: 36rpx 32rpx 0 32rpx;
+    background-color: white;
+    .banner-title {
+      display: flex;
+      align-items: flex-end;
+      padding: 0 0 32rpx 0;
+      .title {
+        font-size: 34rpx;
+        font-weight: 600;
+        color: #111111;
+      }
+      .tips {
+        font-size: 22rpx;
+        font-weight: 400;
+        color: #767778;
+        margin-left: 16rpx;
+      }
+    }
+
     image:last-child {
       width: 100%;
       margin-bottom: 36rpx;
     }
     image {
       width: 100%;
+      border-radius: 24rpx;
+      box-shadow: 0px 4rpx 16px 0px rgba(0, 0, 0, 0.1);
       margin-bottom: 16rpx;
     }
   }
   .index-tabs {
-    padding: 24px 28px 16px;
+    padding: 32rpx 28rpx 0px 28rpx;
+    .title {
+      font-size: 34rpx;
+      font-weight: 600;
+      color: #111111;
+    }
+    .tips {
+      font-size: 22rpx;
+      font-weight: 400;
+      color: #767778;
+      margin-left: 16rpx;
+    }
   }
   .index-body {
     background-color: #fff;

+ 60 - 31
src/pagesSub/activity/activityDetail.vue

@@ -22,11 +22,16 @@
           <text class="u-primary-color u-font-24 line-34">{{detail.join_count - detail.join_number}}</text>
           <text class="u-content-color u-font-24 line-34">剩余名额</text>
         </view>
-        <view class="u-flex u-row-between u-p-t-22 line-34">
+        <view class="u-flex u-row-between u-p-t-22">
           <text class="u-content-color">{{detail.join_number}}已参与</text>
           <button class="share-btn u-primary-color u-font-24 line-34"
                   open-type="share">分享活动</button>
         </view>
+        <image v-if="platBanner"
+               :src="platBanner.img"
+               class="detail-banner  line-34 u-m-t-32"
+               mode="widthFix"
+               @click="dealJumpInfo(platBanner)"></image>
       </view>
     </view>
     <view class="shop-info u-m-t-16">
@@ -44,14 +49,14 @@
         <view class="divider-right"></view>
         <block v-if="detail.plat_type === 8">
           <view class="to-btn u-p-l-28"
-                @click="openOtherApplte()">
+                @click="copyShopName()">
             <view class="icon-mt-wh icon-elm"></view>
             <view class="u-m-t-2 u-font-22 u-content-color line-32">打开饿了么</view>
           </view>
         </block>
         <block v-if="detail.plat_type === 9">
           <view class="to-btn u-p-l-40"
-                @click="openOtherApplte()">
+                @click="copyShopName()">
             <view class="icon-mt-wh icon-mt"></view>
             <view class="u-m-t-2 u-font-22 u-content-color line-32">打开美团</view>
           </view>
@@ -118,7 +123,7 @@
                         @click="cancelJoin"
                         v-show="!isExpire">取消报名</button>
                 <button :class="isExpire ? 'sign-up-btn u-font-28 line-40 u-m-l-16' : 'submit-btn u-font-28 line-40 u-m-l-16'"
-                        @click="toSubmiteOrder">提交结果</button>
+                        @click="toSubmiteOrder">提交订单</button>
               </view>
             </block>
           </block>
@@ -135,7 +140,7 @@
             </view>
             <block v-if="status * 1 === 1 && !isExpire">
               <button :class="isStart ? 'sign-up-btn u-font-30 bold line-42' : 'sign-up-btn u-font-30 bold line-42'"
-                      @click="join">{{isStart ? '我要报名' : '即将开始'}}</button>
+                      @click="join">{{isStart ? '免费报名' : '即将开始'}}</button>
             </block>
           </block>
           <block v-if="status * 1 === 3 || status * 1 === 4">
@@ -183,7 +188,15 @@
               @click.stop="copyShopName">复制店名</view>
       </view>
     </view>
+    <activity-join-dialog @onClose="isDialog = false"
+                          @onOpen="onDialogOpen()"
+                          :title="dlgTitle"
+                          :shopName="detail.shop_name"
+                          :platType="detail.plat_type*1"
+                          :steps="detail.steps"
+                          v-if="isDialog"></activity-join-dialog>
   </view>
+
 </template>
 
 <script>
@@ -191,10 +204,12 @@ import fixedBottom from '@/components/fixedBottom'
 import imgText from '@/components/imgText'
 import { getActivityDetail } from '@/api/activityApi'
 import { editJoinActivity, cancelJoinActivity } from '@/api/userApi'
+import activityJoinDialog from '@/components/activityJoinDialog'
 export default {
-  components: { fixedBottom, imgText },
+  components: { fixedBottom, imgText, activityJoinDialog },
   data () {
     return {
+      isDialog: false,
       showErr: false,
       errMsg: '',
       nowTime: '',
@@ -203,6 +218,8 @@ export default {
       currentTab: 0,
       activityId: '',
       recordId: '',
+      dlgTitle: '复制成功',
+      dlgType: 1,
       detail: {
         imgs: '',
         activity_type: '',
@@ -222,6 +239,21 @@ export default {
     }
   },
   computed: {
+    platBanner () {
+      if (this.detail) {
+        const list = this.$store.state.home_minipro
+        const mapList = list.filter((item) => {
+          return item.plat_type === this.detail.plat_type
+        })
+        if (mapList.length > 0) {
+          return mapList[0]
+        } else {
+          return null
+        }
+      } else {
+        return null
+      }
+    },
     isCommissionEnable () {
       return this.$store.state.enable_commission * 1 === 1
     },
@@ -353,6 +385,14 @@ export default {
     }
   },
   methods: {
+    onDialogOpen () {
+      uni.setClipboardData({
+        data: this.detail.search_key ? this.detail.search_key : this.detail.shop_name
+      })
+      this.isDialog = false
+      this.getDetailData()
+      this.openOtherApplte()
+    },
     onClickShare () {
       uni.navigateTo({ url: '/pagesSub/commission/invite' })
     },
@@ -426,9 +466,11 @@ export default {
       const { code, msg } = type === 1 ? await editJoinActivity(params) : await cancelJoinActivity(params)
       if (code === 200) {
         if (type === 1) {
-          uni.navigateTo({
-            url: `/pagesSub/activity/signUpOutcome?endTime=${this.detail.end_time}&platType=${this.detail.plat_type}`
-          })
+          this.isDialog = true
+          this.dlgTitle = '报名成功'
+          // uni.navigateTo({
+          //   url: `/pagesSub/activity/signUpOutcome?endTime=${this.detail.end_time}&platType=${this.detail.plat_type}`
+          // })
         } else {
           this.getDetailData()
         }
@@ -463,19 +505,7 @@ export default {
       uni.requestSubscribeMessage({
         tmplIds: this.$store.state.joinTemplateIds,
         complete: () => {
-          if (this.detail.tips) {
-            uni.showModal({
-              title: '提示',
-              content: this.detail.tips,
-              success: (res) => {
-                if (res.confirm) {
-                  this.joinActivity(1)
-                }
-              }
-            })
-          } else {
-            this.joinActivity(1)
-          }
+          this.joinActivity(1)
         }
       })
     },
@@ -512,15 +542,8 @@ export default {
       })
     },
     copyShopName () {
-      uni.setClipboardData({
-        data: this.detail.search_key,
-        success: () => {
-          uni.showToast({
-            icon: 'none',
-            title: '搜索关键字复制成功'
-          })
-        }
-      })
+      this.isDialog = true
+      this.dlgTitle = '复制成功'
     },
     copyWx () {
       uni.setClipboardData({
@@ -595,6 +618,12 @@ export default {
     .detail-over {
       padding: 24px 40px 28px;
       background-color: #fff;
+      margin-top: 16rpx;
+      .detail-banner {
+        width: 100%;
+        border-radius: 24rpx;
+        box-shadow: 0px 4rpx 16px 0px rgba(0, 0, 0, 0.1);
+      }
     }
     .detail-title {
       max-width: 670px;

+ 4 - 4
src/pagesSub/my/kefu.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2021-01-27 12:27:59
- * @LastEditTime: 2021-03-08 19:40:25
+ * @LastEditTime: 2021-04-01 11:16:02
  * @LastEditors: Please set LastEditors
  * @Description: In User Settings Edit
  * @FilePath: \rebatedine-mini\src\pagesSub\my\about.vue
@@ -13,12 +13,12 @@
       <image src="~@/static/common/logo_gywm.png"></image>
     </view>
     <view class="info u-font-32 line-32">
-      趣吃客服微信号:zqbl2021
+      趣吃客服微信号:wxid_ros4v7937w3y12
     </view>
     <view class="copy"
           @click="copyKf">点击复制</view>
     <view class="kefu">
-      <image src="~@/static/icon/wechat-logo.png"
+      <image src="~@/static/icon/wechat-logo.jpg"
              class="avatar"></image>
     </view>
     <view class="info u-font-32">趣吃客服微信二维码</view>
@@ -34,7 +34,7 @@ export default {
   methods: {
     copyKf () {
       uni.setClipboardData({
-        data: 'zqbl2021',
+        data: 'wxid_ros4v7937w3y12',
         success: () => {
           uni.showToast({
             icon: 'none',

+ 106 - 8
src/pagesSub/order/submitOrder.vue

@@ -1,9 +1,29 @@
 <template>
   <view>
     <network-error />
-    <u-notice-bar mode="horizontal"
-                  :list="['虚假填写信息将被列入黑名单,永久不得参加活动']"></u-notice-bar>
+    <!-- <u-notice-bar mode="horizontal"
+                  :list="['虚假填写信息将被列入黑名单,永久不得参加活动']"></u-notice-bar> -->
     <view class="main">
+      <text class="title">上传外卖订单截图拿返利</text>
+      <view class="tips-container">
+        <image class="tips"
+               src="@/static/common/icon-commit-tips.png"
+               mode="widthFix" />
+      </view>
+      <text class="title">提交外卖订单截图</text>
+      <view class="tips-content"
+            @click="jumpToMiniProgram">
+        <text class="shop-name">{{detail.shop_name}}</text>
+        <view class="icon-content">
+          <image class="plat-icon"
+                 :src="detail.plat_type*1 === 8 ? '/static/common/icon-ele-circle.png' : '/static/common/icon-mt-circle.png'"
+                 mode="scaleToFill" />
+          <text>前往截图</text>
+          <image class="arrow-icon"
+                 src="@/static/common/icon-arrow-white.png"
+                 mode="scaleToFill" />
+        </view>
+      </view>
       <view class="item u-flex u-row-left u-border-bottom">
         <view class="label u-flex label-w">
           <view class="icon-bt"></view>
@@ -119,7 +139,8 @@
       </view>
       <view class="item u-border-bottom">
         <view class="label u-flex">
-          <view class="icon-bt"></view>
+          <view class="icon-bt"
+                v-if="false"></view>
           <view>浏览轨迹<span class="u-content-color u-font-30 line-42">(门店列表截图)</span>
             <span class="rule u-m-l-32"
                   @click="showExample(3)">查看案例</span>
@@ -141,6 +162,10 @@
         </view>
       </view>
     </view>
+    <image src="@/static/common/icon-kf.png"
+           mode="widthFix"
+           class="button-kf"
+           @click="copyKf" />
     <button class="sub u-m-t-12"
             :disabled="disabledBtn"
             @click="submit">提交</button>
@@ -150,11 +175,12 @@
 <script>
 import upload from '@/utils/uploadImg'
 import dealImgUrl from '@/utils/dealImgUrl'
-import { submitOrderInfo } from '@/api/userApi'
+import { submitOrderInfo, getUserActivityRecord } from '@/api/userApi'
 export default {
   data () {
     return {
       activityId: '',
+      detail: {},
       form: {
         id: '',
         ordersn: '',
@@ -170,13 +196,10 @@ export default {
   },
   computed: {
     userInfo () {
-      console.log(this.$store.state.userInfo)
       return this.$store.state.userInfo
     },
     disabledBtn () {
-      if (!this.imgList4.length) {
-        return true
-      } else if (!this.imgList3.length) {
+      if (!this.imgList3.length) {
         return true
       } else if (!this.imgList2.length) {
         return true
@@ -194,10 +217,33 @@ export default {
     }
   },
   onLoad (options) {
+    console.log(options)
     this.activityId = options.activityId
     this.form.id = options.userActivityId
+    getUserActivityRecord({ id: this.form.id }).then(({ code, data, msg }) => {
+      if (code === 200) {
+        this.detail = data
+      }
+    })
   },
   methods: {
+    jumpToMiniProgram () {
+      uni.navigateToMiniProgram({
+        appId: this.detail.app_info.appid,
+        path: this.detail.app_info.path
+      })
+    },
+    copyKf () {
+      uni.setClipboardData({
+        data: 'wxid_ros4v7937w3y12',
+        success: () => {
+          uni.showToast({
+            icon: 'none',
+            title: '已复制客服微信号,请添加客服反馈'
+          })
+        }
+      })
+    },
     showExample (index) {
       uni.previewImage({
         urls: ['https://image.qcbwc.cn/example/example_' + index + '.png'],
@@ -295,6 +341,52 @@ export default {
 <style lang="scss" scoped>
 .main {
   background-color: #fff;
+  .title {
+    font-size: 34rpx;
+    font-weight: 600;
+    color: #111111;
+    padding: 32rpx;
+    width: 100%;
+    display: inline-block;
+    background: #f4f5f9;
+  }
+  .tips-container {
+    padding: 56rpx 48rpx;
+    .tips {
+      width: 100%;
+    }
+  }
+  .tips-content {
+    background: #577195;
+    padding: 24rpx 32rpx;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    .shop-name {
+      font-size: 30rpx;
+      font-weight: 500;
+      color: #ffffff;
+    }
+    .icon-content {
+      display: flex;
+      align-items: center;
+      .plat-icon {
+        width: 36rpx;
+        height: 36rpx;
+      }
+      text {
+        font-size: 24rpx;
+        font-weight: 400;
+        color: #ffffff;
+        margin-left: 8rpx;
+        margin-right: 4rpx;
+      }
+      .arrow-icon {
+        width: 10rpx;
+        height: 16rpx;
+      }
+    }
+  }
 }
 .icon-bt {
   width: 14px;
@@ -313,6 +405,12 @@ export default {
   width: 200px;
   margin-right: 78px;
 }
+.button-kf {
+  position: fixed;
+  bottom: 222rpx;
+  right: 0;
+  width: 268rpx;
+}
 .sub {
   display: flex;
   justify-content: center;

BIN
src/static/common/activity-flow.png


BIN
src/static/common/icon-arrow-white.png


BIN
src/static/common/icon-close.png


BIN
src/static/common/icon-commit-tips.png


BIN
src/static/common/icon-ele-circle.png


BIN
src/static/common/icon-ele.png


BIN
src/static/common/icon-kf.png


BIN
src/static/common/icon-mt-circle.png


BIN
src/static/common/icon-mt.png


BIN
src/static/icon/wechat-logo.jpg


BIN
src/static/icon/wechat-logo.png