Browse Source

10.7 静态OK

bding 1 năm trước cách đây
mục cha
commit
a74777cc4b

+ 21 - 3
activityPages/activityDetail/activityDetail.vue

@@ -13,7 +13,11 @@
           </view>
           <!-- 内容部分 -->
           <view class="content">
-            <view v-if="detailData.ActivityName" class="dialog-title brackets-title">{{ detailData.ActivityName }}</view>
+            <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>
+              {{ detailData.ActivityName }}
+            </view>
             <block v-if="detailData.FileType == 1">
               <view class="audio-card" v-if="detailData.VoiceList && detailData.VoiceList.Url">
                 <view class="slider-paly">
@@ -180,8 +184,11 @@
               <view class="network-left">链接参会:</view>
               <view class="network-right network-zoom" style="color: #2c83ff">
                 <view>
-                  <text class="default text_zoom">{{ detailData.LinkParticipants }}</text>
-                  <view> 点击<text class="default copy-link copy-zoom" @click="copyLink(1)">复制链接</text>在手机浏览器打开,并输入会议密码 </view>
+                  <view class="default text_zoom" v-if="!detailData.IsSignup && detailData.ActivityTypeName == '公司调研电话会'">请报名获取 </view>
+                  <blcok v-else>
+                    <text class="default text_zoom">{{ detailData.LinkParticipants }}</text>
+                    <view> 点击<text class="default copy-link copy-zoom" @click="copyLink(1)">复制链接</text>在手机浏览器打开,并输入会议密码 </view>
+                  </blcok>
                 </view>
               </view>
             </view>
@@ -314,6 +321,8 @@
           </view>
         </view>
       </van-popup>
+      <!-- 各种弹框部分 -->
+      <ShowResearchDlg :isResearchModalShow.sync="isResearchModalShow" :jurisdictionList="jurisdictionList" />
     </view>
     <not-have-login v-else />
   </block>
@@ -330,6 +339,7 @@ import IsTrackFollow from "@/components/isTrackFollow.vue";
 import SelectPopup from "@/components/activity/selectPopup";
 import NotHaveLogin from "@/components/notHaveLogin.vue";
 import suspenButton from "@/components/suspen_button.vue";
+import ShowResearchDlg from '@/components/activity/showResearchDlg.vue';
 let app = getApp({ allowDefault: true });
 export default {
   filters: {
@@ -378,6 +388,7 @@ export default {
       isSendWx: "",
       isDlgImg: false,
       showSingInImg: false,
+      isResearchModalShow: true,
     };
   },
   mixins: [manageMixin],
@@ -421,6 +432,7 @@ export default {
     SelectPopup,
     NotHaveLogin,
     suspenButton,
+    ShowResearchDlg,
   },
   watch: {
     haveAuth: {
@@ -819,6 +831,12 @@ export default {
       font-weight: bold;
       margin-bottom: 15rpx;
       color: #000;
+      image {
+        width: 83rpx;
+        height: 33rpx;
+        vertical-align: middle;
+        margin-right: 5rpx;
+      }
     }
     .brackets-title {
       padding-left: 20rpx;

+ 8 - 3
activityPages/components/selectMixins.js

@@ -11,6 +11,7 @@ export default {
       chartPermissionIds: "",
       whichDay: "", //选择今日/明日\本、上周 月
       selectActiveId: "", //专家、分析师的id
+      ResearchExternalAct: "",
       activityTimeList: [
         { Id: 1, IsChoose: false, StatusName: "今日活动" },
         { Id: 2, IsChoose: false, StatusName: "明日活动" },
@@ -25,6 +26,10 @@ export default {
         { Id: 5, IsChoose: false, StatusName: "本月", type: "month" },
         { Id: 6, IsChoose: false, StatusName: "上月", type: "month" },
       ],
+      ResearchExternal: [
+        { Id: 1, IsChoose: false, StatusName: "研选扣点" },
+        { Id: 2, IsChoose: false, StatusName: "外部资源" },
+      ],
     };
   },
   methods: {
@@ -87,7 +92,7 @@ export default {
         }
       } else {
         //已授权未绑定
-        this.$store.dispatch('checkHandle')
+        this.$store.dispatch("checkHandle");
       }
     },
     // 下拉选择的确定事件
@@ -152,8 +157,8 @@ export default {
         this.selectComponent("#industry").toggle(false);
       }
       item.IsChoose = !item.IsChoose;
-      let val = this.obtainSelectId(type == "类型" ? this.activityTypeList : this.activityTimeList);
-      type == "类型" ? (this.selectActiveId = val) : (this.whichDay = val);
+      let val = this.obtainSelectId(type == "类型" ? this.activityTypeList : type == "扣点" ? this.ResearchExternal : this.activityTimeList);
+      type == "类型" ? (this.selectActiveId = val) : type == "扣点" ? (this.ResearchExternalAct = val) : (this.whichDay = val);
       this.getActivityList();
     },
 

+ 40 - 55
activityPages/themeActivity/themeActivity.vue

@@ -7,12 +7,7 @@
           <view :class="['content-title', !contentDetail.IsJump && 'jump-title']" @click="jumpHandler">
             <text class="jump-label">{{ contentDetail.Label }}</text>
             <text v-if="contentDetail.IsJump" class="jump-text"> 查看资源包>></text>
-            <image
-              v-if="contentDetail.IndustryNewLabel"
-              class="new_icon"
-              src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"
-              mode=""
-            ></image>
+            <image v-if="contentDetail.IndustryNewLabel" class="new_icon" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png" mode=""></image>
           </view>
         </view>
         <view :class="['screen-item', (isEndActivity || !type) && 'end-select-item']">
@@ -39,32 +34,17 @@
             </view>
           </block>
           <block v-if="isEndActivity">
-            <text
-              @click="selectMultipleHandler(item, '类型')"
-              v-for="item in activityTypeList"
-              :key="item.Id"
-              :class="['select-item-multiple', item.IsChoose && 'active']"
-              >{{ item.StatusName }}</text
-            >
+            <text @click="selectMultipleHandler(item, '类型')" v-for="item in activityTypeList" :key="item.Id" :class="['select-item-multiple', item.IsChoose && 'active']">{{ item.StatusName }}</text>
           </block>
           <block v-else>
-            <text
-              @click="selectMultipleHandler(item, '日期')"
-              v-for="item in activityTimeList"
-              :key="item.Id"
-              :class="['select-item-multiple', item.IsChoose && 'active']"
-              >{{ item.StatusName }}</text
-            >
+            <text @click="selectMultipleHandler(item, '日期')" v-for="item in activityTimeList" :key="item.Id" :class="['select-item-multiple', item.IsChoose && 'active']">{{ item.StatusName }}</text>
           </block>
         </view>
+        <view class="research-external-item" v-if="!isEndActivity && type">
+          <text @click="selectMultipleHandler(item, '扣点')" v-for="item in ResearchExternal" :key="item.Id" :class="['select-item-multiple', item.IsChoose && 'active']">{{ item.StatusName }}</text>
+        </view>
         <view class="screen-item screen-item-ul" v-if="isEndActivity">
-          <text
-            @click="monthWeekHandler(item)"
-            v-for="item in activityMonthWeekList"
-            :key="item.Id"
-            :class="['text-item', item.IsChoose && 'active']"
-            >{{ item.StatusName }}</text
-          >
+          <text @click="monthWeekHandler(item)" v-for="item in activityMonthWeekList" :key="item.Id" :class="['text-item', item.IsChoose && 'active']">{{ item.StatusName }}</text>
         </view>
       </view>
       <!-- 活动列表 -->
@@ -106,7 +86,11 @@
               </view>
               <view class="item">
                 <view class="item-text" @click="goDetail(item)">
-                  <text class="activity-title"> {{ item.ActivityName }} </text>
+                  <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>
+                    {{ item.ActivityName }}
+                  </view>
                   <text class="text_twoLine" v-if="item.Expert && item.SourceType == 1">专家背景:{{ item.Expert }} </text>
                   <text class="text_twoLine" v-if="item.DistinguishedGuest">嘉宾:{{ item.DistinguishedGuest }} </text>
                   <text class="text_twoLine" v-if="item.Speaker">主讲人:{{ item.Speaker }}</text>
@@ -123,33 +107,23 @@
                         {{ item.City }}
                       </view>
                       <view style="display: flex">
-                        <text v-if="item.IsShowOutboundCall && item.ActivityTypeId == 1" class="button" @click="signupIsAddOfCancel(item, 1)">{{
-                          item.IsSignup == 1 ? "取消外呼" : "预约外呼"
-                        }}</text>
-                        <text v-if="item.IsShowAppointment" @click="summaryIsHandel(item)">{{
-                          item.IsAppointment == 1 ? "取消纪要" : "预约纪要"
-                        }}</text>
+                        <text v-if="item.IsShowOutboundCall && item.ActivityTypeId == 1" class="button" @click="signupIsAddOfCancel(item, 1)">{{ item.IsSignup == 1 ? "取消外呼" : "预约外呼" }}</text>
+                        <text v-if="item.IsShowAppointment" @click="summaryIsHandel(item)">{{ item.IsAppointment == 1 ? "取消纪要" : "预约纪要" }}</text>
                         <text v-if="item.IsShowMeetingReminder" @click="meetingReminderAdd(item.ActivityId, item.IsCancelMeetingReminder)">
                           {{ item.IsCancelMeetingReminder == 0 ? "消息提醒" : "取消提醒" }}
                         </text>
                         <view v-if="item.IsShowHelpSsk" style="width: 130rpx">
                           <text @click="askingGo(item)">帮我带问</text>
                         </view>
-                        <text v-if="item.IsShowOutboundCall && item.ActivityTypeId != 1" class="button" @click="signupIsAddOfCancel(item, 1)">{{
-                          item.IsSignup == 1 ? "取消外呼" : "预约外呼"
-                        }}</text>
+                        <text v-if="item.IsShowOutboundCall && item.ActivityTypeId != 1" class="button" @click="signupIsAddOfCancel(item, 1)">{{ item.IsSignup == 1 ? "取消外呼" : "预约外呼" }}</text>
                         <text v-if="item.IsShowDetails" @click="goDetail(item)" class="button">查看详情</text>
                         <block v-if="item.IsShowSignup">
                           <block v-if="item.IsCClassMeeting && !item.IsYidongConduct">
-                            <text class="button" @click="signupIsAddOfCancel(item, 3, 'CClass')">{{
-                              item.IsSignup == 1 ? "取消报名" : "我要报名"
-                            }}</text>
+                            <text class="button" @click="signupIsAddOfCancel(item, 3, 'CClass')">{{ item.IsSignup == 1 ? "取消报名" : "我要报名" }}</text>
                           </block>
                           <block v-else>
                             <text class="button" v-if="item.IsSignup !== 1" @click="wanttosignup(item)">我要报名</text>
-                            <text class="button" v-else @click="signupIsAddOfCancel(item, 2)">{{
-                              item.SignupType == 1 ? "取消外呼" : "取消报名"
-                            }}</text>
+                            <text class="button" v-else @click="signupIsAddOfCancel(item, 2)">{{ item.SignupType == 1 ? "取消外呼" : "取消报名" }}</text>
                           </block>
                         </block>
                       </view>
@@ -212,6 +186,7 @@
       <videoModule :showVideoPop.sync="showVideoPop" :videoPopList="videoPopList" />
     </view>
     <not-have-login v-else />
+    <ShowResearchDlg :isResearchModalShow.sync="isResearchModalShow" :jurisdictionList="jurisdictionList" />
   </block>
 </template>
 
@@ -228,6 +203,7 @@ import videoModule from "@/components/videoModule/index";
 import SelectPopup from "@/components/activity/selectPopup";
 import NotHaveLogin from "../../components/notHaveLogin.vue";
 
+import ShowResearchDlg from '@/components/activity/showResearchDlg.vue';
 export default {
   mixins: [myActivityMixin, selectMixins, mediaMixins],
   data() {
@@ -250,6 +226,7 @@ export default {
     videoModule,
     SelectPopup,
     NotHaveLogin,
+    ShowResearchDlg,
   },
   methods: {
     // 判断几个按钮
@@ -379,15 +356,7 @@ export default {
   onShareAppMessage: function (res) {
     return {
       title: this.isHorzMobile ? "好友向您推荐此内容,上传名片享查研观向免费月卡!" : this.type || this.label,
-      path:
-        "/activityPages/themeActivity/themeActivity?title=" +
-        this.label +
-        "&permissionIds=" +
-        this.chartPermissionIds +
-        "&whichDay=" +
-        this.whichDay +
-        "&type=" +
-        this.type,
+      path: "/activityPages/themeActivity/themeActivity?title=" + this.label + "&permissionIds=" + this.chartPermissionIds + "&whichDay=" + this.whichDay + "&type=" + this.type,
     };
   },
 };
@@ -440,11 +409,27 @@ export default {
   .collect-ul {
     padding-top: 10rpx;
   }
+  .research-external-item {
+    width: 100%;
+    background-color: #fff;
+    height: 60rpx;
+    padding: 0 34rpx;
+    font-size: 24rpx;
+    margin-top: -15rpx;
+    color: #333;
+    display: flex;
+    align-items: center;
+    .active {
+      background-color: #3385ff !important;
+      color: #fff !important;
+    }
+  }
   .end-select-item {
+    flex-wrap: wrap !important;
     justify-content: flex-start !important;
-    .select-item-multiple {
-      margin-right: 38rpx;
-    }
+  }
+  .select-item-multiple {
+    margin-right: 38rpx;
   }
   @import "../components/selectCss.scss";
   @import "@/components/activity/indexActivity.scss";

+ 74 - 65
components/ItemComponent/activityItem.vue

@@ -2,10 +2,7 @@
   <view class="container-activity-item" @click="goDetail(list)">
     <view class="content-sign">
       <view :class="[list.ActivityType === 0 ? 'is-down' : 'is-up', 'is-up-down']">{{ list.ActivityType === 0 ? "线下" : "线上" }}</view>
-      <view
-        v-if="list.ActiveState == 1 || list.ActiveState == 2"
-        :class="[list.ActiveState == 1 ? 'is-down-state' : 'is-up-state', 'is-up-down', 'state']"
-      >
+      <view v-if="list.ActiveState == 1 || list.ActiveState == 2" :class="[list.ActiveState == 1 ? 'is-down-state' : 'is-up-state', 'is-up-down', 'state']">
         {{ list.ActiveState == 1 ? "未开始" : "进行中" }}
       </view>
       <block v-else>
@@ -14,11 +11,12 @@
     </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>
       {{ list.ActivityName || list.ResearchTheme }}
     </view>
     <view style="display: flex" class="content-text content-min-hight text_twoLine" v-if="list.ActivityTimeText && list.SourceType !== 1">
-      <text style="flex-shrink: 0"> 活动时间:</text>
-      <text> {{ list.ActivityTimeText }}</text>
+      <text> 活动时间:{{ list.ActivityTimeText }}</text>
     </view>
     <view class="content-text text-Line" v-else>
       {{ list.Host ? "主持人:" : list.Expert ? "专家背景:" : list.Speaker ? "主讲人:" : list.DistinguishedGuest ? "嘉宾:" : "" }}
@@ -37,9 +35,7 @@
           <text class="item-btn btn-solid" v-if="list.IsShowOutboundCall && list.ActivityTypeId == 1" @click.stop="signupIsAddOfCancel(list, 1)">{{
             list.IsSignup == 1 ? "取消外呼" : "预约外呼"
           }}</text>
-          <text class="item-btn" v-if="list.IsShowAppointment" @click.stop="summaryIsHandel(list)">{{
-            list.IsAppointment == 1 ? "取消纪要" : "预约纪要"
-          }}</text>
+          <text class="item-btn" v-if="list.IsShowAppointment" @click.stop="summaryIsHandel(list)">{{ list.IsAppointment == 1 ? "取消纪要" : "预约纪要" }}</text>
           <text class="item-btn" v-if="list.IsShowMeetingReminder" @click.stop="meetingReminderAdd(list, list.IsCancelMeetingReminder)">
             {{ list.IsCancelMeetingReminder == 0 ? "消息提醒" : "取消提醒" }}
           </text>
@@ -52,15 +48,11 @@
           <text class="item-btn" v-if="list.IsShowDetails" @click.stop="goDetail(list)">查看详情</text>
           <block v-if="list.IsShowSignup">
             <block v-if="list.IsCClassMeeting && !list.IsYidongConduct">
-              <text class="item-btn btn-solid" @click.stop="signupIsAddOfCancel(list, 3, 'CClass')">{{
-                list.IsSignup == 1 ? "取消报名" : "我要报名"
-              }}</text>
+              <text class="item-btn btn-solid" @click.stop="signupIsAddOfCancel(list, 3, 'CClass')">{{ list.IsSignup == 1 ? "取消报名" : "我要报名" }}</text>
             </block>
             <block v-else>
               <text class="item-btn btn-solid" v-if="list.IsSignup !== 1" @click.stop="wanttosignup(list)">我要报名</text>
-              <text class="item-btn btn-solid" v-else @click.stop="signupIsAddOfCancel(list, 2)">{{
-                list.SignupType == 1 ? "取消外呼" : "取消报名"
-              }}</text>
+              <text class="item-btn btn-solid" v-else @click.stop="signupIsAddOfCancel(list, 2)">{{ list.SignupType == 1 ? "取消外呼" : "取消报名" }}</text>
             </block>
           </block>
         </block>
@@ -71,9 +63,7 @@
           <view class="" style="width: 130rpx"> </view>
           <text class="item-btn" @click.stop="lookImg(list)">行程安排</text>
           <block v-if="list.TripStatus == 2">
-            <text v-if="list.ActiveState == 1" class="item-btn btn-solid" @click.stop="applyOfcancel(list)">{{
-              list.IsTrip == 0 ? "我要报名" : "取消报名"
-            }}</text>
+            <text v-if="list.ActiveState == 1" class="item-btn btn-solid" @click.stop="applyOfcancel(list)">{{ list.IsTrip == 0 ? "我要报名" : "取消报名" }}</text>
           </block>
           <block v-else>
             <text class="item-btn btn-solid" v-if="list.IsSignup !== 1" @click.stop="interest(list)">感兴趣</text>
@@ -123,6 +113,7 @@
       </view>
     </u-modal>
     <SelectPopup :selectShow.sync="selectShow" @signupIsAddOfCancel="signupIsAddOfCancel" :selectYdong="selectYdong" />
+    <ShowResearchDlg :isResearchModalShow.sync="isResearchModalShow" :jurisdictionList="jurisdictionList" />
   </view>
 </template>
 
@@ -130,9 +121,11 @@
 import modalDialog from "../modalDialog.vue";
 import { activity, User } from "@/config/api.js";
 import SelectPopup from "@/components/activity/selectPopup";
+import ShowResearchDlg from "@/components/activity/showResearchDlg.vue";
+
 export default {
   name: "",
-  components: { modalDialog, SelectPopup },
+  components: { modalDialog, SelectPopup, ShowResearchDlg },
   props: {
     list: {
       type: Object,
@@ -180,6 +173,7 @@ export default {
       show_cancel_button: false, // 取消按钮的隐藏显示
       show_confirm_button: false, // 确定按钮的隐藏显示
       itemData: {},
+      isResearchModalShow: false,
     };
   },
   computed: {},
@@ -204,10 +198,7 @@ export default {
       if (item.YidongActivityId) {
         this.goDetail(item);
         return;
-      } else if (
-        (item.IsYidongConduct && item.IsCanOutboundCall) ||
-        (!item.IsYidongConduct && item.IsLimitPeople == 1 && [1, 2, 3].includes(item.ActivityTypeId))
-      ) {
+      } else if ((item.IsYidongConduct && item.IsCanOutboundCall) || (!item.IsYidongConduct && item.IsLimitPeople == 1 && [1, 2, 3].includes(item.ActivityTypeId))) {
         this.selectShow = true;
         this.selectYdong = item.IsYidongConduct;
       } else {
@@ -216,7 +207,7 @@ export default {
       }
     },
 
-    //报名/取消报名
+    //报名 取消报名 预约外呼/取消预约外呼报名
     signupIsAddOfCancel(item, type, valName = "") {
       let id = this.activityIdAdd || item.ActivityId;
       let itemData = item || this.itemData;
@@ -270,48 +261,15 @@ export default {
         clearTimeout(timer);
         this.flag = true;
         this.selectShow = false;
-        activity
-          .signupAdd({
-            ActivityId: id,
-            SignupType: type,
-            PageRouter: this.$store.state.pageRouterActivity,
-          })
-          .then((res) => {
-            if (res.Ret == 200) {
-              this.hasPermission = res.Data.HasPermission;
-              this.jurisdictionList = res.Data;
-              if (this.hasPermission == 1) {
-                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.GoBindEmail) {
-                  this.mailboxBinding = true;
-                  return;
-                }
-                if (res.Data.SignupStatus !== "Success") {
-                  this.isShow = true;
-                } else {
-                  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;
-                  this.parentDataEmit(itemData, "IsSignup", 1);
-                  this.parentDataEmit(itemData, "SignupType", type);
-                }
-              } else if (this.hasPermission == 2) {
-                this.isShowhasPermission = true;
-              } else if (this.hasPermission == 3 || this.hasPermission == 4 || this.hasPermission == 5) {
-                this.applyForIsShow = true;
-              }
-            }
-          });
+        if (1 == 1) {
+          this.researchPointsHandler(id, type, item);
+        } else {
+          this.myIsApplyHandler(id, type);
+          
+        }
         timer = setTimeout(() => {
-          this.flag = false;
-        }, 500);
+            this.flag = false;
+          }, 500);
       }
     },
     // 弹框的初始化
@@ -583,6 +541,51 @@ export default {
       let index = this.$parent.newDataList.findIndex((key) => key.Activity && key.Activity.ActivityId === item.ActivityId);
       this.$parent.newDataList[index].Activity[value] = num;
     },
+    // 我要报名的请求拆分出来了
+    async myIsApplyHandler(id, type) {
+      const res = await activity.signupAdd({
+        ActivityId: id,
+        SignupType: type,
+        PageRouter: this.$store.state.pageRouterActivity,
+      });
+      if (res.Ret == 200) {
+        this.hasPermission = res.Data.HasPermission;
+        this.jurisdictionList = res.Data;
+        if (this.hasPermission == 1) {
+          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.GoBindEmail) {
+            this.mailboxBinding = true;
+            return;
+          }
+          if (res.Data.SignupStatus !== "Success") {
+            this.isShow = true;
+          } else {
+            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;
+            this.parentDataEmit(itemData, "IsSignup", 1);
+            this.parentDataEmit(itemData, "SignupType", type);
+          }
+        } else if (this.hasPermission == 2) {
+          this.isShowhasPermission = true;
+        } else if (this.hasPermission == 3 || this.hasPermission == 4 || this.hasPermission == 5) {
+          this.applyForIsShow = true;
+        }
+      }
+    },
+    // 研选扣点的事件
+    async researchPointsHandler(id, type, item) {
+      console.log(id, type, item);
+      this.isResearchModalShow = true;
+      this.jurisdictionList = item;
+    },
   },
 };
 </script>
@@ -639,6 +642,12 @@ export default {
     font-weight: 400;
     color: #333333;
     line-height: 44rpx;
+    image {
+      width: 83rpx;
+      height: 33rpx;
+      vertical-align: middle;
+      margin-right: 5rpx;
+    }
   }
   .content-text {
     font-size: 28rpx;

+ 53 - 48
components/activity/indexActivity.js

@@ -39,6 +39,7 @@ export default {
       mailboxBinding: false, //是否绑定邮箱
       selectShow: false, // 是否显示选择弹框
       selectYdong: false,
+      isResearchModalShow:false,
     };
   },
   methods: {
@@ -48,10 +49,7 @@ export default {
       if (item.YidongActivityId) {
         this.goDetail(item);
         return;
-      } else if (
-        (item.IsYidongConduct && item.IsCanOutboundCall) ||
-        (!item.IsYidongConduct && item.IsLimitPeople == 1 && [1, 2, 3].includes(item.ActivityTypeId))
-      ) {
+      } else if ((item.IsYidongConduct && item.IsCanOutboundCall) || (!item.IsYidongConduct && item.IsLimitPeople == 1 && [1, 2, 3].includes(item.ActivityTypeId))) {
         this.selectShow = true;
         this.selectYdong = item.IsYidongConduct;
       } else {
@@ -118,50 +116,11 @@ export default {
         clearTimeout(timer);
         this.flag = true;
         this.selectShow = false;
-        activity
-          .signupAdd({
-            ActivityId: id,
-            SignupType: type,
-            PageRouter: this.$store.state.pageRouterActivity,
-          })
-          .then((res) => {
-            if (res.Ret == 200) {
-              this.hasPermission = res.Data.HasPermission;
-              this.jurisdictionList = res.Data;
-              if (this.hasPermission == 1) {
-                const index = this.collectList.findIndex((key) => key.ActivityId == id);
-                this.collectList[index].SignupType = type;
-                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.GoBindEmail) {
-                  this.mailboxBinding = true;
-                  return;
-                }
-                if (res.Data.SignupStatus !== "Success") {
-                  this.isShow = true;
-                } else {
-                  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;
-                  this.collectList.forEach((valueAct) => {
-                    if (valueAct.ActivityId === id) {
-                      valueAct.IsSignup = 1;
-                    }
-                  });
-                }
-              } else if (this.hasPermission == 2) {
-                this.isShowhasPermission = true;
-              } else if (this.hasPermission == 3 || this.hasPermission == 4 || this.hasPermission == 5) {
-                this.applyForIsShow = true;
-              }
-            }
-          });
+        if (1 == 1) {
+          this.researchPointsHandler(id, type, item);
+        } else {
+          this.myIsApplyHandler(id, type);
+        }
         timer = setTimeout(() => {
           this.flag = false;
         }, 500);
@@ -319,5 +278,51 @@ export default {
         uni.navigateTo({ url: "/activityPages/activityDetail/activityDetail?id=" + item.ActivityId });
       }
     },
+
+    // 我要报名的请求拆分出来了
+    async myIsApplyHandler(id, type) {
+      const res = await activity.signupAdd({
+        ActivityId: id,
+        SignupType: type,
+        PageRouter: this.$store.state.pageRouterActivity,
+      });
+      if (res.Ret == 200) {
+        this.hasPermission = res.Data.HasPermission;
+        this.jurisdictionList = res.Data;
+        if (this.hasPermission == 1) {
+          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.GoBindEmail) {
+            this.mailboxBinding = true;
+            return;
+          }
+          if (res.Data.SignupStatus !== "Success") {
+            this.isShow = true;
+          } else {
+            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;
+            this.parentDataEmit(itemData, "IsSignup", 1);
+            this.parentDataEmit(itemData, "SignupType", type);
+          }
+        } else if (this.hasPermission == 2) {
+          this.isShowhasPermission = true;
+        } else if (this.hasPermission == 3 || this.hasPermission == 4 || this.hasPermission == 5) {
+          this.applyForIsShow = true;
+        }
+      }
+    },
+    // 研选扣点的事件
+    async researchPointsHandler(id, type, item) {
+      console.log(id, type, item);
+      this.isResearchModalShow = true;
+      this.jurisdictionList = item;
+    },
   },
 };

+ 10 - 4
components/activity/indexActivity.scss

@@ -108,6 +108,12 @@
           color: #333333;
           font-weight: 700;
           margin-bottom: 20rpx;
+          image {
+            width: 83rpx;
+            height: 33rpx;
+            vertical-align: middle;
+            margin-right: 5rpx;
+          }
         }
       }
     }
@@ -120,14 +126,14 @@
       display: flex;
       justify-content: flex-end;
       align-items: center;
-      color: #3385FF;
+      color: #3385ff;
       overflow: hidden;
       overflow-x: auto;
 
       text {
         display: flex;
         align-items: center;
-        justify-content:center;
+        justify-content: center;
         width: 113rpx;
         height: 42rpx;
         background: #ffffff;
@@ -159,7 +165,7 @@
       .city-img {
         display: flex;
         align-items: center;
-       flex-shrink: 0;
+        flex-shrink: 0;
       }
     }
   }
@@ -220,4 +226,4 @@
       padding: 10rpx 10rpx 20rpx 20rpx;
     }
   }
-}
+}

+ 117 - 0
components/activity/showResearchDlg.vue

@@ -0,0 +1,117 @@
+<template>
+  <view class="show_Research_Dlg">
+    <u-modal
+      ref="modalResearch"
+      async-close
+      v-model="isResearchModalShow"
+      :content-style="{ fontSize: '32rpx' }"
+      @confirm="confirmModal"
+      :show-cancel-button="type == 1"
+      :confirm-text="type == 1 ? '知道了' : '确定'"
+      cancel-text="取消"
+      @cancel="cancelModal"
+      :show-title="false"
+      :cancel-style="{ borderRight: '1rpx solid #EBEBEB' }"
+      :confirm-style="{ fontWeight: '700' }"
+    >
+      <view class="slot-content">
+        <block v-if="type == 1">
+          <text class="title-box">确定报名参加吗?</text>
+          <view class="content-box">
+            <text>当前剩余点数:</text>
+            <text>0</text>
+          </view>
+          <view class="content-box">
+            <text>本次会议扣除点数:</text>
+            <text>0</text>
+          </view>
+        </block>
+        <block v-else-if="type == 3">
+          <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>
+      </view>
+    </u-modal>
+  </view>
+</template>
+
+<script>
+import { User, activity, FreeButton } from "@/config/api.js";
+export default {
+  data() {
+    return {
+      content: "该活动已截止报名若想参加,请联系对口销售",
+      type: 3,
+      inputVal: "",
+    };
+  },
+  props: {
+    isResearchModalShow: {
+      default: false,
+      type: false,
+    },
+  },
+  watch: {},
+  computed: {},
+  methods: {
+    cancelModal() {},
+    confirmModal() {
+      this.$emit("update:isResearchModalShow", false);
+      console.log(this.inputVal);
+    },
+  },
+};
+</script>
+
+<style lang="scss">
+.show_Research_Dlg {
+  .title-box {
+    color: #333333;
+    font-weight: 600;
+    font-size: 32rpx;
+    line-height: 44rpx;
+    margin-bottom: 35rpx;
+  }
+  .content-box {
+    font-weight: 400;
+    font-size: 28rpx;
+    line-height: 44rpx;
+    color: #333333;
+    display: flex;
+    justify-content: center;
+    text:nth-child(2) {
+      color: #3385ff;
+    }
+  }
+  .content-input {
+    display: flex;
+    input {
+      width: 100%;
+      height: 78rpx;
+      line-height: 78rpx;
+      background: #f7f7f7;
+      text-align: left;
+      padding-left: 30rpx;
+    }
+  }
+}
+.slot-content {
+  width: 100%;
+  padding: 50rpx;
+  text-align: center;
+  font-size: 32rpx;
+  color: #0f1826;
+  line-height: 48rpx;
+}
+
+.seller-mobile {
+  display: inline-block;
+  color: #2979ff;
+}
+.u-model__footer__button.data-v-3626fcec {
+  border-right: 1rpx solid #333;
+}
+</style>

+ 4 - 0
pageMy/mySchedulepage/mySchedulepage.vue

@@ -128,6 +128,7 @@
       <audioModule :showAudioPop.sync="showAudioPop" />
     </view>
     <videoModule :showVideoPop.sync="showVideoPop" :videoPopList="videoPopList" />
+    <ShowResearchDlg :isResearchModalShow.sync="isResearchModalShow" :jurisdictionList="jurisdictionList" />
   </view>
 </template>
 
@@ -141,6 +142,7 @@ import audioModule from "@/components/audioModule/index";
 import mediaMixins from "@/components/activity/mediaMixins";
 import videoModule from "@/components/videoModule/index";
 import SelectPopup from "@/components/activity/selectPopup";
+import ShowResearchDlg from "@/components/activity/showResearchDlg.vue";
 
 let app = getApp();
 export default {
@@ -151,6 +153,7 @@ export default {
     audioModule,
     videoModule,
     SelectPopup,
+    ShowResearchDlg,
   },
   data() {
     return {
@@ -164,6 +167,7 @@ export default {
       listChartPermission: [],
       listChartPermissionInit: [],
       collectTypeList: [],
+      isResearchModalShow: true,
     };
   },
   methods: {

+ 4 - 0
pages-search/components/activityBack.vue

@@ -145,6 +145,7 @@
         <rich-text v-else :nodes="specialAccounts"></rich-text>
       </view>
     </u-modal>
+    <ShowResearchDlg :isResearchModalShow.sync="isResearchModalShow" :jurisdictionList="jurisdictionList" />
   </view>
 </template>
 
@@ -158,6 +159,8 @@ import audioModule from "@/components/audioModule/index";
 import videoModule from "@/components/videoModule/index";
 import { activity } from "@/config/api";
 import SelectPopup from "@/components/activity/selectPopup";
+import ShowResearchDlg from "@/components/activity/showResearchDlg.vue";
+
 export default {
   props: {
     collectLists: {
@@ -194,6 +197,7 @@ export default {
     audioModule,
     videoModule,
     SelectPopup,
+    ShowResearchDlg,
   },
   watch: {
     collectLists: {

+ 27 - 54
pages/activity/activity.vue

@@ -32,9 +32,7 @@
             </van-dropdown-item>
           </van-dropdown-menu>
         </view>
-        <text v-for="item in activityTimeList" :key="item.Id" :class="item.IsChoose ? 'active' : ''" @click="isActivityDate(item.Id)">{{
-          item.StatusName
-        }}</text>
+        <text v-for="item in activityTimeList" :key="item.Id" :class="item.IsChoose ? 'active' : ''" @click="isActivityDate(item.Id)">{{ item.StatusName }}</text>
       </view>
     </view>
 
@@ -51,26 +49,18 @@
                 <view class="content">
                   <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="val.IsNew"
-                        class="item-image"
-                        lazy-load
-                        src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"
-                      ></image>
-                      <image
-                        style="width: 73rpx; right: -6rpx"
-                        v-if="val.IsExternalLabel"
-                        class="item-image"
-                        lazy-load
-                        src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"
-                      ></image>
+                    <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>
+                      <block v-else>
+                        <image
+                          style="width: 73rpx; right: -6rpx"
+                          v-if="val.IsExternalLabel"
+                          class="item-image"
+                          lazy-load
+                          src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"
+                        ></image>
+                        <image v-if="val.IsNew" class="item-image" lazy-load src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"></image>
+                      </block>
                       <text class="text_oneLine"> {{ val.KeyWord }}</text>
                       <view class="item-trip" v-if="val.TripStatus == 2">确定行程</view>
                       <view class="item-trip item-city" v-if="val.City.length == 2">{{ val.City }}</view>
@@ -87,26 +77,18 @@
                 <view class="content">
                   <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="val.IsNew"
-                        class="item-image"
-                        lazy-load
-                        src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png"
-                      ></image>
-                      <image
-                        style="width: 73rpx; right: -6rpx"
-                        v-if="val.IsExternalLabel"
-                        class="item-image"
-                        lazy-load
-                        src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"
-                      ></image>
+                    <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>
+                      <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
+                          style="width: 73rpx; right: -6rpx"
+                          v-if="val.IsExternalLabel"
+                          class="item-image"
+                          lazy-load
+                          src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/activity_external.png"
+                        ></image>
+                      </block>
                       <text class="text_oneLine"> {{ val.KeyWord }}</text>
                       <view class="item-trip" v-if="val.TripStatus == 2">确定行程</view>
                       <view class="item-trip item-city" v-if="val.City.length == 2">{{ val.City }}</view>
@@ -331,10 +313,7 @@ export default {
         let key = item.ActivityTypeId || item.KeyWord;
         let id = typeof key == "string" ? item.ActivityId : "";
         let str = type ? "&permissionIds=" + this.chartPermissionIds + "&showJurisdiction=" + (this.isShowJurisdiction ? "show" : "") : "";
-        this.$store.dispatch(
-          "checkHandle",
-          "/activityPages/themeActivity/themeActivity?title=" + key + "&type=" + type + "&id=" + id + "&whichDay=" + this.whichDay + str
-        );
+        this.$store.dispatch("checkHandle", "/activityPages/themeActivity/themeActivity?title=" + key + "&type=" + type + "&id=" + id + "&whichDay=" + this.whichDay + str);
       } else {
         if (key) {
           uni.navigateTo({ url: "/activityPages/specialDetail/specialDetail?id=" + item.ActivityId });
@@ -374,13 +353,7 @@ export default {
   onShareAppMessage: function (res) {
     return {
       title: this.isHorzMobile ? "好友向您推荐此内容,上传名片享查研观向免费月卡!" : this.messageTitle,
-      path:
-        "/pages/activity/activity?whichDay=" +
-        this.whichDay +
-        "&chartPermissionIds=" +
-        this.chartPermissionIds +
-        "&isGetJurisdiction=" +
-        this.isGetJurisdiction,
+      path: "/pages/activity/activity?whichDay=" + this.whichDay + "&chartPermissionIds=" + this.chartPermissionIds + "&isGetJurisdiction=" + this.isGetJurisdiction,
     };
   },
   /* 下拉刷新 */