bding 1 year ago
parent
commit
979834ea66

+ 5 - 4
activityPages/activityDetail/activityDetail.vue

@@ -14,8 +14,8 @@
           <!-- 内容部分 -->
           <view class="content">
             <view v-if="detailData.ActivityName" class="dialog-title brackets-title">
-              <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
-              <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"></image>
+              <image v-if="detailData.IsResearchPoints" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
+              <image v-if="!detailData.IsResearchPoints && detailData.TemporaryLabel" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"></image>
               {{ detailData.ActivityName }}
             </view>
             <block v-if="detailData.FileType == 1">
@@ -322,7 +322,7 @@
         </view>
       </van-popup>
       <!-- 各种弹框部分 -->
-      <ShowResearchDlg :isResearchModalShow.sync="isResearchModalShow" :jurisdictionList="jurisdictionList" />
+      <ShowResearchDlg :isResearchModalShow.sync="isResearchModalShow" :jurisdictionList="jurisdictionList" :checkResearchList.sync="checkResearchList"/>
     </view>
     <not-have-login v-else />
   </block>
@@ -388,7 +388,8 @@ export default {
       isSendWx: "",
       isDlgImg: false,
       showSingInImg: false,
-      isResearchModalShow: true,
+      isResearchModalShow: false,
+      checkResearchList:{}
     };
   },
   mixins: [manageMixin],

+ 55 - 32
activityPages/activityDetail/manageMixin.js

@@ -47,38 +47,11 @@ export default {
         clearTimeout(timer);
         this.flag = true;
         this.selectShow = false;
-        activity
-          .signupAdd({
-            ActivityId: this.detailData.ActivityId,
-            SignupType: type,
-            PageRouter: this.$store.state.pageRouterActivity,
-          })
-          .then((res) => {
-            if (res.Ret == 200) {
-              this.hasPermission = res.Data.HasPermission;
-              this.jurisdictionList = res.Data;
-              this.signupType = valName == "CClass" ? "CClass" : res.Data.SignupType;
-              this.countryCode = res.Data.CountryCode;
-              this.mobileEdit = res.Data.Mobile;
-              this.goOnNextStep = res.Data.GoFollow;
-              this.idTypeCancel = {
-                cutId: res.Data.ActivityId,
-                state: 1,
-              };
-              if (res.Data.SignupStatus !== "Success") {
-                this.isShow = true;
-              } else {
-                this.detailData.IsSignup = 1;
-                this.detailData.SignupNum += 1;
-                this.detailData.SignupType = type;
-                this.synchronization();
-                if (res.Data.GoBindEmail) this.mailboxBinding = true;
-                if (res.Data.GoOutboundMobile) this.editIsShow = true;
-                else if (res.Data.GoFollow) this.goFollow = res.Data.GoFollow;
-                else if (res.Data.SignupStatus == "Success") this.isShow = true;
-              }
-            }
-          });
+        if (this.detailData.IsResearchPoints) {
+          this.researchPointsHandler(this.detailData.ActivityId, type, this.detailData);
+        } else {
+          this.myIsApplyHandler(this.detailData.ActivityId, type, this.detailData);
+        }
         timer = setTimeout(() => {
           this.flag = false;
         }, 500);
@@ -188,5 +161,55 @@ export default {
         url: "/activityPages/generationAsk/generationAsk?id=" + this.id + "&type=" + type,
       });
     },
+
+    // 研选扣点的事件
+    async researchPointsHandler(id, type, item) {
+      const res = await activity.activityCheck({
+        ActivityId: id,
+      });
+      if (res.Ret === 200) {
+        let { Data } = res;
+        this.checkResearchList = Data;
+        this.checkResearchList.childrenType = type;
+        this.jurisdictionList = item;
+        this.isResearchModalShow = true;
+      }
+    },
+
+    // 报名拆分出来
+    myIsApplyHandler(id, type) {
+      activity
+        .signupAdd({
+          ActivityId: this.detailData.ActivityId,
+          SignupType: type,
+          PageRouter: this.$store.state.pageRouterActivity,
+        })
+        .then((res) => {
+          if (res.Ret == 200) {
+            this.hasPermission = res.Data.HasPermission;
+            this.jurisdictionList = res.Data;
+            this.signupType = valName == "CClass" ? "CClass" : res.Data.SignupType;
+            this.countryCode = res.Data.CountryCode;
+            this.mobileEdit = res.Data.Mobile;
+            this.goOnNextStep = res.Data.GoFollow;
+            this.idTypeCancel = {
+              cutId: res.Data.ActivityId,
+              state: 1,
+            };
+            if (res.Data.SignupStatus !== "Success") {
+              this.isShow = true;
+            } else {
+              this.detailData.IsSignup = 1;
+              this.detailData.SignupNum += 1;
+              this.detailData.SignupType = type;
+              this.synchronization();
+              if (res.Data.GoBindEmail) this.mailboxBinding = true;
+              if (res.Data.GoOutboundMobile) this.editIsShow = true;
+              else if (res.Data.GoFollow) this.goFollow = res.Data.GoFollow;
+              else if (res.Data.SignupStatus == "Success") this.isShow = true;
+            }
+          }
+        });
+    },
   },
 };

+ 3 - 3
activityPages/themeActivity/themeActivity.vue

@@ -87,8 +87,8 @@
               <view class="item">
                 <view class="item-text" @click="goDetail(item)">
                   <view class="activity-title text_twoLine">
-                    <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
-                    <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"></image>
+                    <image v-if="item.IsResearchPoints" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
+                    <image v-if="!item.IsResearchPoints && item.TemporaryLabel" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"></image>
                     {{ item.ActivityName }}
                   </view>
                   <text class="text_twoLine" v-if="item.Expert && item.SourceType == 1">专家背景:{{ item.Expert }} </text>
@@ -186,7 +186,7 @@
       <videoModule :showVideoPop.sync="showVideoPop" :videoPopList="videoPopList" />
     </view>
     <not-have-login v-else />
-    <ShowResearchDlg :isResearchModalShow.sync="isResearchModalShow" :jurisdictionList="jurisdictionList" />
+    <ShowResearchDlg :isResearchModalShow.sync="isResearchModalShow" :jurisdictionList="jurisdictionList" :checkResearchList.sync="checkResearchList" />
   </block>
 </template>
 

+ 17 - 10
components/ItemComponent/activityItem.vue

@@ -11,8 +11,8 @@
     </view>
     <view class="content-type"> {{ list.ActivityTypeName || "专项产业调研" }}</view>
     <view :class="['content-title', 'text-Line', list.ResearchTheme && 'content-min-hight']" v-if="list.ActivityName || list.ResearchTheme">
-      <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
-      <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"></image>
+      <image v-if="list.IsResearchPoints" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
+      <image v-if="!list.IsResearchPoints && list.IsResearchPoints" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"></image>
       {{ list.ActivityName || list.ResearchTheme }}
     </view>
     <view style="display: flex" class="content-text content-min-hight text_twoLine" v-if="list.ActivityTimeText && list.SourceType !== 1">
@@ -113,7 +113,7 @@
       </view>
     </u-modal>
     <SelectPopup :selectShow.sync="selectShow" @signupIsAddOfCancel="signupIsAddOfCancel" :selectYdong="selectYdong" />
-    <ShowResearchDlg :isResearchModalShow.sync="isResearchModalShow" :jurisdictionList="jurisdictionList" />
+    <ShowResearchDlg :isResearchModalShow.sync="isResearchModalShow" :jurisdictionList="jurisdictionList" :checkResearchList.sync="checkResearchList" />
   </view>
 </template>
 
@@ -174,6 +174,7 @@ export default {
       show_confirm_button: false, // 确定按钮的隐藏显示
       itemData: {},
       isResearchModalShow: false,
+      checkResearchList: {},
     };
   },
   computed: {},
@@ -261,15 +262,14 @@ export default {
         clearTimeout(timer);
         this.flag = true;
         this.selectShow = false;
-        if (1 == 1) {
+         if (itemData.IsResearchPoints) {
           this.researchPointsHandler(id, type, item);
         } else {
           this.myIsApplyHandler(id, type);
-          
         }
         timer = setTimeout(() => {
-            this.flag = false;
-          }, 500);
+          this.flag = false;
+        }, 500);
       }
     },
     // 弹框的初始化
@@ -582,9 +582,16 @@ export default {
     },
     // 研选扣点的事件
     async researchPointsHandler(id, type, item) {
-      console.log(id, type, item);
-      this.isResearchModalShow = true;
-      this.jurisdictionList = item;
+     const res = await activity.activityCheck({
+        ActivityId: id,
+      });
+      if (res.Ret === 200) {
+        let { Data } = res;
+        this.checkResearchList = Data;
+        this.checkResearchList.childrenType = type;
+        this.jurisdictionList = item;
+        this.isResearchModalShow = true;
+      }
     },
   },
 };

+ 13 - 5
components/activity/indexActivity.js

@@ -39,7 +39,8 @@ export default {
       mailboxBinding: false, //是否绑定邮箱
       selectShow: false, // 是否显示选择弹框
       selectYdong: false,
-      isResearchModalShow:false,
+      isResearchModalShow: false,
+      checkResearchList: {},
     };
   },
   methods: {
@@ -116,7 +117,7 @@ export default {
         clearTimeout(timer);
         this.flag = true;
         this.selectShow = false;
-        if (1 == 1) {
+        if (itemData.IsResearchPoints) {
           this.researchPointsHandler(id, type, item);
         } else {
           this.myIsApplyHandler(id, type);
@@ -320,9 +321,16 @@ export default {
     },
     // 研选扣点的事件
     async researchPointsHandler(id, type, item) {
-      console.log(id, type, item);
-      this.isResearchModalShow = true;
-      this.jurisdictionList = item;
+      const res = await activity.activityCheck({
+        ActivityId: id,
+      });
+      if (res.Ret === 200) {
+        let { Data } = res;
+        this.checkResearchList = Data;
+        this.checkResearchList.childrenType = type;
+        this.jurisdictionList = item;
+        this.isResearchModalShow = true;
+      }
     },
   },
 };

+ 96 - 15
components/activity/showResearchDlg.vue

@@ -6,8 +6,8 @@
       v-model="isResearchModalShow"
       :content-style="{ fontSize: '32rpx' }"
       @confirm="confirmModal"
-      :show-cancel-button="type == 1"
-      :confirm-text="type == 1 ? '知道了' : '确定'"
+      :show-cancel-button="!isShowView"
+      :confirm-text="isShowView ? '知道了' : '确定'"
       cancel-text="取消"
       @cancel="cancelModal"
       :show-title="false"
@@ -15,24 +15,51 @@
       :confirm-style="{ fontWeight: '700' }"
     >
       <view class="slot-content">
-        <block v-if="type == 1">
-          <text class="title-box">确定报名参加吗?</text>
+        <block v-if="!checkResearchList.CheckPermission"> 签约买方研选套餐才可参与此活动,请联系对口销售 </block>
+        <block v-else-if="!checkResearchList.CheckTime"> <rich-text :nodes="content"></rich-text></block>
+        <block v-else-if="!checkResearchList.CheckPoints">
+          <view class="title-box txt-check">
+            点数不足,若想报名,<br />请联系对口销售
+            <text style="display: inline-block; color: #3385ff" @click="promptTextHandler">升级套餐</text>
+          </view>
           <view class="content-box">
             <text>当前剩余点数:</text>
-            <text>0</text>
+            <text>{{ checkResearchList.CompanyPoints }}</text>
           </view>
           <view class="content-box">
             <text>本次会议扣除点数:</text>
-            <text>0</text>
+            <text>{{ checkResearchList.ActivityPoints }}</text>
           </view>
         </block>
-        <block v-else-if="type == 3">
+        <block v-else-if="!checkResearchList.CheckEmail">
           <text class="title-box">应上市公司要求,该会议报名需 提供邮箱,请填写您的工作邮箱</text>
           <view class="content-input">
             <input v-model="inputVal" type="text" placeholder="请输入正确的邮箱地址" />
           </view>
         </block>
-        <rich-text v-else :nodes="content"></rich-text>
+        <block v-else-if="checkResearchList.CheckPoints">
+          <view class="title-box"> 确定报名参加吗? </view>
+          <view class="content-box">
+            <text>当前剩余点数:</text>
+            <text>{{ checkResearchList.CompanyPoints }}</text>
+          </view>
+          <view class="content-box">
+            <text>本次会议扣除点数:</text>
+            <text>{{ checkResearchList.ActivityPoints }}</text>
+          </view>
+        </block>
+      </view>
+    </u-modal>
+    <u-modal
+      v-model="show"
+      :show-title="false"
+      confirm-text="知道了"
+      :content-style="{ fontSize: '32rpx' }"
+      :cancel-style="{ borderRight: '1rpx solid #EBEBEB' }"
+      :confirm-style="{ fontWeight: '700' }"
+    >
+      <view class="slot-content slot-content-text">
+        <rich-text :nodes="TextContent"></rich-text>
       </view>
     </u-modal>
   </view>
@@ -43,24 +70,71 @@ import { User, activity, FreeButton } from "@/config/api.js";
 export default {
   data() {
     return {
-      content: "该活动已截止报名若想参加,请联系对口销售",
+      content: "该活动已截止报名<br />若想参加,请联系对口销售",
       type: 3,
       inputVal: "",
+      show: false,
+      TextContent:
+        "5万/年含无限量调研纪要查阅以及15次公开专家访谈或30次重点公司、专家小范围交流;<br /><br />10万/年含无限量调研纪要查阅以及40次公开专家访谈或80次重点公司、专家小范围交流或20次私享专家一对一",
     };
   },
   props: {
     isResearchModalShow: {
       default: false,
-      type: false,
+      type: Boolean,
+    },
+    checkResearchList: {
+      default: {},
+      type: Object,
+    },
+    jurisdictionList: {
+      default: {},
+      type: Object,
     },
   },
   watch: {},
-  computed: {},
+  computed: {
+    isShowView() {
+      let list = this.checkResearchList;
+      let isNum = !list.CheckPermission || !list.CheckPoints ? true : false;
+      return isNum;
+    },
+  },
   methods: {
-    cancelModal() {},
-    confirmModal() {
+    cancelModal() {
       this.$emit("update:isResearchModalShow", false);
-      console.log(this.inputVal);
+      this.$emit("update:checkResearchList", {});
+    },
+    promptTextHandler() {
+      this.cancelModal();
+      this.$nextTick(() => {
+        this.show = true;
+      });
+    },
+    async confirmModal() {
+      if (!this.checkResearchList.CheckPermission || !this.checkResearchList.CheckTime || !this.checkResearchList.CheckPoints || !this.checkResearchList.CheckEmail) {
+        this.cancelModal();
+        return;
+      } else if (!this.checkResearchList.CheckEmail) {
+        if (!this.inputVal)
+          return uni.showToast({
+            title: "邮箱不能为空",
+            icon: "none",
+            duration: 2000,
+          });
+        const res = activity.activityEmailBinding({
+          Email: this.inputVal,
+        });
+        if (res.Ret === 200) {
+          this.$emit("myIsApplyHandler", this.jurisdictionList, this.checkResearchList.childrenType);
+        }
+        this.cancelModal();
+        return;
+      } else if (this.checkResearchList.CheckPoints) {
+        this.$emit("myIsApplyHandler", this.jurisdictionList, this.checkResearchList.childrenType);
+        this.cancelModal();
+        return;
+      }
     },
   },
 };
@@ -97,6 +171,11 @@ export default {
       padding-left: 30rpx;
     }
   }
+  .txt-check {
+    text {
+      margin-left: 8rpx;
+    }
+  }
 }
 .slot-content {
   width: 100%;
@@ -106,7 +185,9 @@ export default {
   color: #0f1826;
   line-height: 48rpx;
 }
-
+.slot-content-text {
+  text-align: left;
+}
 .seller-mobile {
   display: inline-block;
   color: #2979ff;

+ 9 - 1
config/modules/activity.js

@@ -106,5 +106,13 @@ export const activity = {
     activityOverActivityList: (params) => {
       return getHttp("/activity/overActivityList", params, 0);
     },
-    
+    // 活动报名之前的校验(权限、时间、点数、邮箱)
+    activityCheck: (params) => {
+      return postHttp("/activity/check", params, 0);
+    },
+    // 更改绑定邮箱
+    activityEmailBinding: (params) => {
+      return postHttp("/user/email/binding", params, 0);
+    },
+   
   };

+ 2 - 1
pageMy/mySchedulepage/mySchedulepage.vue

@@ -128,7 +128,7 @@
       <audioModule :showAudioPop.sync="showAudioPop" />
     </view>
     <videoModule :showVideoPop.sync="showVideoPop" :videoPopList="videoPopList" />
-    <ShowResearchDlg :isResearchModalShow.sync="isResearchModalShow" :jurisdictionList="jurisdictionList" />
+    <ShowResearchDlg :isResearchModalShow.sync="isResearchModalShow" :jurisdictionList="jurisdictionList" :checkResearchList.sync="checkResearchList" />
   </view>
 </template>
 
@@ -168,6 +168,7 @@ export default {
       listChartPermissionInit: [],
       collectTypeList: [],
       isResearchModalShow: true,
+      checkResearchList: {},
     };
   },
   methods: {

+ 1 - 1
pages-search/components/activityBack.vue

@@ -145,7 +145,7 @@
         <rich-text v-else :nodes="specialAccounts"></rich-text>
       </view>
     </u-modal>
-    <ShowResearchDlg :isResearchModalShow.sync="isResearchModalShow" :jurisdictionList="jurisdictionList" />
+    <ShowResearchDlg :isResearchModalShow.sync="isResearchModalShow" :jurisdictionList="jurisdictionList" :checkResearchList.sync="checkResearchList" />
   </view>
 </template>
 

+ 2 - 2
pages/activity/activity.vue

@@ -50,7 +50,7 @@
                   <view class="item-img" @click="goDetails(item)"> </view>
                   <view :style="{ 'background-image': 'url(' + item.ImgUrlBg + ')' }" class="activity-ui">
                     <view class="activity-li" :style="{ 'background-image': 'url(' + val.ImgUrlBg + ')' }" v-for="val in item.List" :key="val.ActivityId" @click="goDetails(val, item.Resource)">
-                      <image v-if="1 == 1" style="width: 83rpx; right: -6rpx" class="item-image" lazy-load src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
+                      <image v-if="val.IsResearchPoints" style="width: 83rpx; right: -6rpx" class="item-image" lazy-load src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
                       <block v-else>
                         <image
                           style="width: 73rpx; right: -6rpx"
@@ -78,7 +78,7 @@
                   <view class="item-img" @click="goDetails(item)"> </view>
                   <view :style="{ 'background-image': 'url(' + item.ImgUrlBg + ')' }" class="activity-ui">
                     <view class="activity-li" :style="{ 'background-image': 'url(' + val.ImgUrlBg + ')' }" v-for="val in item.List" :key="val.ActivityId" @click="goDetails(val, item.Resource)">
-                      <image v-if="1 == 1" style="width: 83rpx; right: -6rpx" class="item-image" lazy-load src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
+                      <image v-if="val.IsResearchPoints" style="width: 83rpx; right: -6rpx" class="item-image" lazy-load src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/Research_Points.png"></image>
                       <block v-else>
                         <image v-if="val.IsNew" class="item-image" lazy-load src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"></image>
                         <image